diff --git a/content/html/_downloads/0434e3ab992f6eea8e1df4ae553aa93d/cmake-tools-kits.json b/content/html/_downloads/0434e3ab992f6eea8e1df4ae553aa93d/cmake-tools-kits.json index 7da223eeb289629553594052621c86749d87d811..096e358a955f2aa61e3a8d54e5c9df6a3bf5c0e1 100644 --- a/content/html/_downloads/0434e3ab992f6eea8e1df4ae553aa93d/cmake-tools-kits.json +++ b/content/html/_downloads/0434e3ab992f6eea8e1df4ae553aa93d/cmake-tools-kits.json @@ -1,15 +1,15 @@ -[ - { - "name": "MinGW64", - "preferredGenerator": { - "name": "MSYS Makefiles" - }, - "environmentVariables": { "PATH": "${command:mingw64.path}" }, - "compilers": { - "C": "${command:mingw64.cc.exe}", - "CXX": "${command:mingw64.cxx.exe}", - "Fortran": "${command:mingw64.fc.exe}" - }, - "keep": true - } -] +[ + { + "name": "MinGW64", + "preferredGenerator": { + "name": "MSYS Makefiles" + }, + "environmentVariables": { "PATH": "${command:mingw64.path}" }, + "compilers": { + "C": "${command:mingw64.cc.exe}", + "CXX": "${command:mingw64.cxx.exe}", + "Fortran": "${command:mingw64.fc.exe}" + }, + "keep": true + } +] diff --git a/content/html/_downloads/13db75188596730e5b909e7eb9b658b0/PrepareDocCustom.cmake b/content/html/_downloads/13db75188596730e5b909e7eb9b658b0/PrepareDocCustom.cmake index a9f10e0e51418fc1e2cfb8b8673045581ff427ea..12c0acf7d5194fe9a64a503ef12e8069bf1c26b5 100644 --- a/content/html/_downloads/13db75188596730e5b909e7eb9b658b0/PrepareDocCustom.cmake +++ b/content/html/_downloads/13db75188596730e5b909e7eb9b658b0/PrepareDocCustom.cmake @@ -1,59 +1,59 @@ -################################################################################ -# Copyright (c) 2021 in-tech GmbH -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License 2.0 which is available at -# http://www.eclipse.org/legal/epl-2.0. -# -# SPDX-License-Identifier: EPL-2.0 -################################################################################ - -# The rst files of the sphinx documentation contain PLACEHOLDERS for referencing -# files outside the source folder of the documentation. This makes references -# into the repository "as a whole" easier, but also introduces a step for -# resolving these references before building. To prevent changes in the original -# documentation source, the this file copies the original source folder ${SRC} -# into a new ${DST} folder. After that, the PLACEHOLDERS are updated w.r.t -# to the the new origin. -# -# Currently supported PLACEHOLDERS -# - @OP_REL_ROOT@ => relative path to root of the openpass repository -# - @OP_REL_SIM@ => resolves to @OP_REL_ROOT@/sim -# - @CUSTOM_REL_SIM@ => relative path to the "custom" root (.) - -macro(copy_documentation source destination) - message(VERBOSE "Copy ${source} to ${destination}") - file(COPY ${source} DESTINATION ${destination}) -endmacro() - -macro(update_placeholder source destination) - message(VERBOSE "Updating ${source} to ${destination}") - file(RELATIVE_PATH target ${destination} ${source}/../..) - - # Remove potential trailing "/" - string(REGEX REPLACE "(.*)/$" "\\1" target ${target}) - - # Placeholder for conf.py: no initial '/' => real relative paths - set(OP_REL_ROOT ../${target}/deps/os) # relative path to the openPASS open source code, with prefix '../${target}' pointing to the custom repository root if this file is located at <root>/doc - set(OP_REL_SIM ${OP_REL_ROOT}/sim) # relative path to simulation root - set(CUSTOM_REL_SIM ../${target}) # relative path to the custom repository root (here, equal to custom sim root) - - configure_file(${destination}/source/conf.py - ${destination}/source/conf.py @ONLY) - - # Placeholder for RST files: use initial '/' => sphinx style for "from source" - # Override old one, because we want to use the same placeholder in both contexts - set(OP_REL_ROOT /${OP_REL_ROOT}) - set(OP_REL_SIM /${OP_REL_SIM}) - set(CUSTOM_REL_SIM /${CUSTOM_REL_SIM}) - - file(GLOB_RECURSE rstFiles LIST_DIRECTORIES false ${destination}/*.rst) - - foreach(rstFile IN LISTS rstFiles) - message(DEBUG "Replacing placeholders in ${rstFile}") - configure_file(${rstFile} ${rstFile} @ONLY) - endforeach() -endmacro() - -copy_documentation(${SRC} ${DST}) -update_placeholder(${SRC} ${DST}) +################################################################################ +# Copyright (c) 2021 in-tech GmbH +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0. +# +# SPDX-License-Identifier: EPL-2.0 +################################################################################ + +# The rst files of the sphinx documentation contain PLACEHOLDERS for referencing +# files outside the source folder of the documentation. This makes references +# into the repository "as a whole" easier, but also introduces a step for +# resolving these references before building. To prevent changes in the original +# documentation source, the this file copies the original source folder ${SRC} +# into a new ${DST} folder. After that, the PLACEHOLDERS are updated w.r.t +# to the the new origin. +# +# Currently supported PLACEHOLDERS +# - @OP_REL_ROOT@ => relative path to root of the openpass repository +# - @OP_REL_SIM@ => resolves to @OP_REL_ROOT@/sim +# - @CUSTOM_REL_SIM@ => relative path to the "custom" root (.) + +macro(copy_documentation source destination) + message(VERBOSE "Copy ${source} to ${destination}") + file(COPY ${source} DESTINATION ${destination}) +endmacro() + +macro(update_placeholder source destination) + message(VERBOSE "Updating ${source} to ${destination}") + file(RELATIVE_PATH target ${destination} ${source}/../..) + + # Remove potential trailing "/" + string(REGEX REPLACE "(.*)/$" "\\1" target ${target}) + + # Placeholder for conf.py: no initial '/' => real relative paths + set(OP_REL_ROOT ../${target}/deps/os) # relative path to the openPASS open source code, with prefix '../${target}' pointing to the custom repository root if this file is located at <root>/doc + set(OP_REL_SIM ${OP_REL_ROOT}/sim) # relative path to simulation root + set(CUSTOM_REL_SIM ../${target}) # relative path to the custom repository root (here, equal to custom sim root) + + configure_file(${destination}/source/conf.py + ${destination}/source/conf.py @ONLY) + + # Placeholder for RST files: use initial '/' => sphinx style for "from source" + # Override old one, because we want to use the same placeholder in both contexts + set(OP_REL_ROOT /${OP_REL_ROOT}) + set(OP_REL_SIM /${OP_REL_SIM}) + set(CUSTOM_REL_SIM /${CUSTOM_REL_SIM}) + + file(GLOB_RECURSE rstFiles LIST_DIRECTORIES false ${destination}/*.rst) + + foreach(rstFile IN LISTS rstFiles) + message(DEBUG "Replacing placeholders in ${rstFile}") + configure_file(${rstFile} ${rstFile} @ONLY) + endforeach() +endmacro() + +copy_documentation(${SRC} ${DST}) +update_placeholder(${SRC} ${DST}) diff --git a/content/html/_downloads/29dd021e0bdb423fc1a0b9b1d8df02f7/launch.json b/content/html/_downloads/29dd021e0bdb423fc1a0b9b1d8df02f7/launch.json index c5960a62f9006d803c1efb94385d862b4d4d889e..3f064ba729bb4b5d44aa15148b36fc853d2c33c3 100644 --- a/content/html/_downloads/29dd021e0bdb423fc1a0b9b1d8df02f7/launch.json +++ b/content/html/_downloads/29dd021e0bdb423fc1a0b9b1d8df02f7/launch.json @@ -1,57 +1,57 @@ -{ - "version": "0.2.0", - "configurations": [ - { - // FOR TESTMATE (SELECTED TEST) AND CMAKE (DEBUG CMAKE TARGET) - "name": "CMake Target", - "type": "cppdbg", - "request": "launch", - "program": "${command:cmake.launchTargetPath}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [ - { - "name": "PATH", - "value": "$PATH:${command:msys2.root}\\bin;${command:mingw64.root}\\x86_64-w64-mingw32\\lib${command:cmake.buildkit.launch.path}" - } - ], - "externalConsole": false, - "MIMode": "gdb", - "miDebuggerPath": "${command:cmake.buildkit.gdb.exe}", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ] - }, - { - // FOR DEBUGGING opSimulation (DON'T FORGET TO CALL make install) - "name": "opsimulation", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}\\bin\\core\\opSimulation.exe", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}\\bin\\core", - "environment": [ - { - "name": "PATH", - "value": "$PATH:${command:msys2.root}\\bin;${command:mingw64.root}\\x86_64-w64-mingw32\\lib${command:cmake.buildkit.launch.path}" - } - ], - "externalConsole": false, - "MIMode": "gdb", - "miDebuggerPath": "${command:cmake.buildkit.gdb.exe}", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ] - } - ] -} +{ + "version": "0.2.0", + "configurations": [ + { + // FOR TESTMATE (SELECTED TEST) AND CMAKE (DEBUG CMAKE TARGET) + "name": "CMake Target", + "type": "cppdbg", + "request": "launch", + "program": "${command:cmake.launchTargetPath}", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [ + { + "name": "PATH", + "value": "$PATH:${command:msys2.root}\\bin;${command:mingw64.root}\\x86_64-w64-mingw32\\lib${command:cmake.buildkit.launch.path}" + } + ], + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerPath": "${command:cmake.buildkit.gdb.exe}", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + // FOR DEBUGGING opSimulation (DON'T FORGET TO CALL make install) + "name": "opsimulation", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}\\bin\\core\\opSimulation.exe", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}\\bin\\core", + "environment": [ + { + "name": "PATH", + "value": "$PATH:${command:msys2.root}\\bin;${command:mingw64.root}\\x86_64-w64-mingw32\\lib${command:cmake.buildkit.launch.path}" + } + ], + "externalConsole": false, + "MIMode": "gdb", + "miDebuggerPath": "${command:cmake.buildkit.gdb.exe}", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] +} diff --git a/content/html/_downloads/631d97fb2e9fb8f8491268ef3e6ec616/settings.json b/content/html/_downloads/631d97fb2e9fb8f8491268ef3e6ec616/settings.json index 9fab4b4f5b49c2f8dc9c15008e558b6202c01fb4..6b65773aaadde949b237470865db3c480ca90a87 100644 --- a/content/html/_downloads/631d97fb2e9fb8f8491268ef3e6ec616/settings.json +++ b/content/html/_downloads/631d97fb2e9fb8f8491268ef3e6ec616/settings.json @@ -1,61 +1,60 @@ -{ - // - // CMAKE - // - // Optional: Adjust to your needs - "cmake.parallelJobs": 4, - // See openPASS documentation for individual WITH_* settings - "cmake.configureSettings": { - // Adjust paths depending on your system - "CMAKE_PREFIX_PATH": [ - "/usr/lib/qt5/bin", - "${workspaceFolder}/deps/thirdParty/linux64/Yase", - "${workspaceFolder}/deps/scmThirdParty/linux64/stochastics", - "${workspaceFolder}/deps/thirdParty/linux64/MantleAPI", - "${workspaceFolder}/deps/thirdParty/linux64/FMILibrary", - "${workspaceFolder}/deps/thirdParty/linux64/protobuf", - "${workspaceFolder}/deps/thirdParty/linux64/protobuf-shared", - "${workspaceFolder}/deps/thirdParty/linux64/googletest", - "${workspaceFolder}/deps/thirdParty/linux64/minizip", - "${workspaceFolder}/deps/thirdParty/linux64/openscenario_api", - "${workspaceFolder}/deps/thirdParty/linux64/openscenario_engine/release", - "${workspaceFolder}/deps/thirdParty/linux64/open-simulation-interface", - "${workspaceFolder}/deps/thirdParty/linux64/zlib", - "${workspaceFolder}/deps/thirdParty/linux64/units" - ], - "CMAKE_INSTALL_PREFIX": "/usr/local/openPASS/bin/core", - "CMAKE_BUILD_TYPE": "Debug", - "USE_CCACHE": true, - "WITH_DEBUG_POSTFIX": false, - "OPENPASS_ADJUST_OUTPUT": false, - "INSTALL_EXTRA_RUNTIME_DEPS": true, - "WITH_API_DOC": false, - "WITH_DOC": false, - "WITH_TESTS": true, - // For integration with IntelliSense (see c_cpp_properties.json) - "CMAKE_EXPORT_COMPILE_COMMANDS": true - }, - // - // TESTMATE - // - // Optional: Adjust to your needs - "testMate.cpp.test.parallelExecutionLimit": 4, - "testMate.cpp.test.parallelExecutionOfExecutableLimit": 2, - // Optional: Set, if you like to debug test discovery and test start issues - "testMate.cpp.log.logfile": "/tmp/cpp.testmate.log", - // - // VSCODE - // - // Enforce usage of .clang-format of modified code - "editor.formatOnSave": true, - "editor.formatOnSaveMode": "modifications", - // EOL and whitespace enforcement - "editor.detectIndentation": true, - "editor.insertSpaces": true, - "editor.renderFinalNewline": "dimmed", - "editor.renderWhitespace": "all", - "editor.trimAutoWhitespace": true, - "files.insertFinalNewline": true, - "files.trimFinalNewlines": true, - "files.trimTrailingWhitespace": true -} +{ + // + // CMAKE + // + // Optional: Adjust to your needs + "cmake.parallelJobs": 4, + // See openPASS documentation for individual WITH_* settings + "cmake.configureSettings": { + // Adjust paths depending on your system + "CMAKE_PREFIX_PATH": [ + "${workspaceFolder}/deps/thirdParty/linux64/Yase", + "${workspaceFolder}/deps/scmThirdParty/linux64/stochastics", + "${workspaceFolder}/deps/thirdParty/linux64/MantleAPI", + "${workspaceFolder}/deps/thirdParty/linux64/FMILibrary", + "${workspaceFolder}/deps/thirdParty/linux64/protobuf", + "${workspaceFolder}/deps/thirdParty/linux64/protobuf-shared", + "${workspaceFolder}/deps/thirdParty/linux64/googletest", + "${workspaceFolder}/deps/thirdParty/linux64/minizip", + "${workspaceFolder}/deps/thirdParty/linux64/openscenario_api", + "${workspaceFolder}/deps/thirdParty/linux64/openscenario_engine/release", + "${workspaceFolder}/deps/thirdParty/linux64/open-simulation-interface", + "${workspaceFolder}/deps/thirdParty/linux64/zlib", + "${workspaceFolder}/deps/thirdParty/linux64/units" + ], + "CMAKE_INSTALL_PREFIX": "/usr/local/openPASS/bin/core", + "CMAKE_BUILD_TYPE": "Debug", + "USE_CCACHE": true, + "WITH_DEBUG_POSTFIX": false, + "OPENPASS_ADJUST_OUTPUT": false, + "INSTALL_EXTRA_RUNTIME_DEPS": true, + "WITH_API_DOC": false, + "WITH_DOC": false, + "WITH_TESTS": true, + // For integration with IntelliSense (see c_cpp_properties.json) + "CMAKE_EXPORT_COMPILE_COMMANDS": true + }, + // + // TESTMATE + // + // Optional: Adjust to your needs + "testMate.cpp.test.parallelExecutionLimit": 4, + "testMate.cpp.test.parallelExecutionOfExecutableLimit": 2, + // Optional: Set, if you like to debug test discovery and test start issues + "testMate.cpp.log.logfile": "/tmp/cpp.testmate.log", + // + // VSCODE + // + // Enforce usage of .clang-format of modified code + "editor.formatOnSave": true, + "editor.formatOnSaveMode": "modifications", + // EOL and whitespace enforcement + "editor.detectIndentation": true, + "editor.insertSpaces": true, + "editor.renderFinalNewline": "dimmed", + "editor.renderWhitespace": "all", + "editor.trimAutoWhitespace": true, + "files.insertFinalNewline": true, + "files.trimFinalNewlines": true, + "files.trimTrailingWhitespace": true +} diff --git a/content/html/_downloads/6a57e453fd078015624636244721a982/.clang-tidy b/content/html/_downloads/6a57e453fd078015624636244721a982/.clang-tidy index 0a87ee3fb9192b103f58a399cad3daa9aee31b48..0589bb5ad01fe3f3734915b30bd048b4400455ec 100644 --- a/content/html/_downloads/6a57e453fd078015624636244721a982/.clang-tidy +++ b/content/html/_downloads/6a57e453fd078015624636244721a982/.clang-tidy @@ -1,65 +1,65 @@ ---- -Checks: > - -*, - boost-*, - bugprone-*, - -bugprone-easily-swappable-parameters, - cppcoreguidelines-*, - -cppcoreguidelines-non-private-member-variables-in-classes, - -cppcoreguidelines-special-member-functions, - -cppcoreguidelines-avoid-magic-numbers, - misc-*, - -misc-non-private-member-variables-in-classes, - llvm-*, - google-*, - -google-build-using-namespace, - -google-default-arguments, - -google-readability-todo, - modernize-*, - -modernize-use-trailing-return-type, - performance-*, - -readability-*, - -readability-magic-numbers, - -readability-implicit-bool-conversion -FormatStyle: file -CheckOptions: - - key: readability-identifier-naming.ClassCase - value: CamelCase - - key: readability-identifier-naming.ClassMemberCase - value: camelBack - - key: readability-identifier-naming.ClassMethodCase - value: CamelCase - - key: readability-identifier-naming.GlobalConstantCase - value: UPPER_CASE - - key: readability-identifier-naming.ConstantCase - value: camelBack - - key: readability-identifier-naming.ConstexprVariableCase - value: UPPER_CASE - - key: readability-identifier-naming.EnumCase - value: CamelCase - - key: readability-identifier-naming.EnumConstantCase - value: CamelCase - - key: readability-identifier-naming.FunctionCase - value: CamelCase - - key: readability-identifier-naming.FunctionIgnoredRegexp - value: 'OpenPASS_GetVersion|OpenPASS_CreateInstance|OpenPASS_DestroyInstance|OpenPASS_UpdateInput|OpenPASS_UpdateOutput|OpenPASS_Trigger|OpenPASS_OpSimulationManagerPreHook|OpenPASS_OpSimulationManagerPostHook|OpenPASS_OpSimulationPreHook|OpenPASS_OpSimulationPreRunHook|OpenPASS_OpSimulationUpdateHook|OpenPASS_OpSimulationPostRunHook|OpenPASS_OpSimulationPostHook|OpenPASS_OpSimulationResultFile' - - key: readability-identifier-naming.GlobalVariableCase - value: camelBack - - key: readability-identifier-naming.GlobalVariablePrefix - value: g_ - - key: readability-identifier-naming.NamespaceCase - value: lower_case - - key: readability-identifier-naming.ParameterCase - value: camelBack - - key: readability-identifier-naming.StaticConstantCase - value: camelBack - - key: readability-identifier-naming.StructCase - value: CamelCase - - key: readability-identifier-naming.TemplateParameterCase - value: CamelCase - - key: readability-identifier-naming.VariableCase - value: camelBack - - key: readability-identifier-length.IgnoredVariableNames - value: "^(i|j|k|x|y|z|u|v|s|t|id)$" - - key: readability-identifier-length.IgnoredParameterNames - value: "^(os|x|y|z|u|v|s|id)$" +--- +Checks: > + -*, + boost-*, + bugprone-*, + -bugprone-easily-swappable-parameters, + cppcoreguidelines-*, + -cppcoreguidelines-non-private-member-variables-in-classes, + -cppcoreguidelines-special-member-functions, + -cppcoreguidelines-avoid-magic-numbers, + misc-*, + -misc-non-private-member-variables-in-classes, + llvm-*, + google-*, + -google-build-using-namespace, + -google-default-arguments, + -google-readability-todo, + modernize-*, + -modernize-use-trailing-return-type, + performance-*, + -readability-*, + -readability-magic-numbers, + -readability-implicit-bool-conversion +FormatStyle: file +CheckOptions: + - key: readability-identifier-naming.ClassCase + value: CamelCase + - key: readability-identifier-naming.ClassMemberCase + value: camelBack + - key: readability-identifier-naming.ClassMethodCase + value: CamelCase + - key: readability-identifier-naming.GlobalConstantCase + value: UPPER_CASE + - key: readability-identifier-naming.ConstantCase + value: camelBack + - key: readability-identifier-naming.ConstexprVariableCase + value: UPPER_CASE + - key: readability-identifier-naming.EnumCase + value: CamelCase + - key: readability-identifier-naming.EnumConstantCase + value: CamelCase + - key: readability-identifier-naming.FunctionCase + value: CamelCase + - key: readability-identifier-naming.FunctionIgnoredRegexp + value: 'OpenPASS_GetVersion|OpenPASS_CreateInstance|OpenPASS_DestroyInstance|OpenPASS_UpdateInput|OpenPASS_UpdateOutput|OpenPASS_Trigger|OpenPASS_OpSimulationPreHook|OpenPASS_OpSimulationPreRunHook|OpenPASS_OpSimulationUpdateHook|OpenPASS_OpSimulationPostRunHook|OpenPASS_OpSimulationPostHook' + - key: readability-identifier-naming.GlobalVariableCase + value: camelBack + - key: readability-identifier-naming.GlobalVariablePrefix + value: g_ + - key: readability-identifier-naming.NamespaceCase + value: lower_case + - key: readability-identifier-naming.ParameterCase + value: camelBack + - key: readability-identifier-naming.StaticConstantCase + value: camelBack + - key: readability-identifier-naming.StructCase + value: CamelCase + - key: readability-identifier-naming.TemplateParameterCase + value: CamelCase + - key: readability-identifier-naming.VariableCase + value: camelBack + - key: readability-identifier-length.IgnoredVariableNames + value: "^(i|j|k|x|y|z|u|v|s|t|id)$" + - key: readability-identifier-length.IgnoredParameterNames + value: "^(os|x|y|z|u|v|s|id)$" diff --git a/content/html/_downloads/8789748ec2bbe8f70ec8c0763329bc98/VehicleModelsCatalog.xosc b/content/html/_downloads/8789748ec2bbe8f70ec8c0763329bc98/VehicleModelsCatalog.xosc index 154b1671baf02b50f4129cd3532204f60c63785f..c15f14f44f98d128ce2c63b1a0497f00b7107fed 100644 --- a/content/html/_downloads/8789748ec2bbe8f70ec8c0763329bc98/VehicleModelsCatalog.xosc +++ b/content/html/_downloads/8789748ec2bbe8f70ec8c0763329bc98/VehicleModelsCatalog.xosc @@ -1,618 +1,618 @@ -<?xml version='1.0' encoding='UTF-8'?> -<OpenSCENARIO> - <FileHeader revMajor="1" revMinor="0" date="2020-06-26T00:17:00" description="openPASS vehicle models" author="in-tech GmbH"/> - <Catalog name="VehicleCatalog"> - <Vehicle model3d="car_bmw_i3" mass="1320.0" name="car_bmw_i3" vehicleCategory="car"> - <Properties> - <Property name="AirDragCoefficient" value="0.3"/> - <Property name="AxleRatio" value="1.0"/> - <Property name="DecelerationFromPowertrainDrag" value="0.5"/> - <Property name="FrictionCoefficient" value="1.0"/> - <Property name="FrontSurface" value="2.38"/> - <Property name="GearRatio1" value="9.665"/> - <Property name="MaximumEngineSpeed" value="6000.0"/> - <Property name="MaximumEngineTorque" value="250.0"/> - <Property name="MinimumEngineSpeed" value="900.0"/> - <Property name="MinimumEngineTorque" value="-54.0"/> - <Property name="MomentInertiaPitch" value="0.0"/> - <Property name="MomentInertiaRoll" value="0.0"/> - <Property name="MomentInertiaYaw" value="0.0"/> - <Property name="NumberOfGears" value="1"/> - <Property name="SensorPosition/FrontCenter/Height" value="0.66"/> - <Property name="SensorPosition/FrontCenter/Lateral" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Longitudinal" value="3.26"/> - <Property name="SensorPosition/FrontCenter/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Roll" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Yaw" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Height" value="0.82"/> - <Property name="SensorPosition/FrontLeft/Lateral" value="0.68"/> - <Property name="SensorPosition/FrontLeft/Longitudinal" value="2.98"/> - <Property name="SensorPosition/FrontLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Roll" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Yaw" value="1.134464"/> - <Property name="SensorPosition/FrontRight/Height" value="0.82"/> - <Property name="SensorPosition/FrontRight/Lateral" value="-0.68"/> - <Property name="SensorPosition/FrontRight/Longitudinal" value="2.98"/> - <Property name="SensorPosition/FrontRight/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontRight/Roll" value="0.0"/> - <Property name="SensorPosition/FrontRight/Yaw" value="-1.134464"/> - <Property name="SensorPosition/FrontWindow/Height" value="1.45"/> - <Property name="SensorPosition/FrontWindow/Lateral" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Longitudinal" value="1.9"/> - <Property name="SensorPosition/FrontWindow/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Roll" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Yaw" value="0.0"/> - <Property name="SensorPosition/RearLeft/Height" value="0.64"/> - <Property name="SensorPosition/RearLeft/Lateral" value="0.64"/> - <Property name="SensorPosition/RearLeft/Longitudinal" value="-0.49"/> - <Property name="SensorPosition/RearLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/RearLeft/Roll" value="0.0"/> - <Property name="SensorPosition/RearLeft/Yaw" value="2.146755"/> - <Property name="SensorPosition/RearRight/Height" value="0.64"/> - <Property name="SensorPosition/RearRight/Lateral" value="-0.64"/> - <Property name="SensorPosition/RearRight/Longitudinal" value="-0.49"/> - <Property name="SensorPosition/RearRight/Pitch" value="0.0"/> - <Property name="SensorPosition/RearRight/Roll" value="0.0"/> - <Property name="SensorPosition/RearRight/Yaw" value="-2.146755"/> - <Property name="SensorPosition/RearWindow/Height" value="1.39"/> - <Property name="SensorPosition/RearWindow/Lateral" value="0.0"/> - <Property name="SensorPosition/RearWindow/Longitudinal" value="-0.21"/> - <Property name="SensorPosition/RearWindow/Pitch" value="0.0"/> - <Property name="SensorPosition/RearWindow/Roll" value="0.0"/> - <Property name="SensorPosition/RearWindow/Yaw" value="3.141592"/> - <Property name="SensorPosition/SideLeft/Height" value="0.3"/> - <Property name="SensorPosition/SideLeft/Lateral" value="0.8"/> - <Property name="SensorPosition/SideLeft/Longitudinal" value="1.2"/> - <Property name="SensorPosition/SideLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/SideLeft/Roll" value="0.0"/> - <Property name="SensorPosition/SideLeft/Yaw" value="1.570796"/> - <Property name="SensorPosition/SideRight/Height" value="0.3"/> - <Property name="SensorPosition/SideRight/Lateral" value="-0.8"/> - <Property name="SensorPosition/SideRight/Longitudinal" value="1.2"/> - <Property name="SensorPosition/SideRight/Pitch" value="0.0"/> - <Property name="SensorPosition/SideRight/Roll" value="0.0"/> - <Property name="SensorPosition/SideRight/Yaw" value="-1.570796"/> - <Property name="SteeringRatio" value="10.7"/> - </Properties> - <BoundingBox> - <Center x="1.25" y="0.0" z="0.84"/> - <Dimensions width="2.04" length="3.96" height="1.68"/> - </BoundingBox> - <Performance maxSpeed="41.67" maxAcceleration="9.80665" maxDeceleration="9.80665"/> - <Axles> - <FrontAxle maxSteering="0.5282" wheelDiameter="0.682" trackWidth="1.8" positionX="2.52" positionZ="0.341"/> - <RearAxle maxSteering="0.0" wheelDiameter="0.682" trackWidth="1.8" positionX="0.0" positionZ="0.341"/> - </Axles> - </Vehicle> - <Vehicle model3d="car_bmw_3" mass="1525.0" name="car_bmw_3" vehicleCategory="car"> - <Properties> - <Property name="AirDragCoefficient" value="0.3"/> - <Property name="AxleRatio" value="2.813"/> - <Property name="DecelerationFromPowertrainDrag" value="0.5"/> - <Property name="FrictionCoefficient" value="1.0"/> - <Property name="FrontSurface" value="2.2"/> - <Property name="GearRatio1" value="5.0"/> - <Property name="GearRatio2" value="3.2"/> - <Property name="GearRatio3" value="2.143"/> - <Property name="GearRatio4" value="1.72"/> - <Property name="GearRatio5" value="1.314"/> - <Property name="GearRatio6" value="1.0"/> - <Property name="GearRatio7" value="0.822"/> - <Property name="GearRatio8" value="0.64"/> - <Property name="MaximumEngineSpeed" value="6000.0"/> - <Property name="MaximumEngineTorque" value="270.0"/> - <Property name="MinimumEngineSpeed" value="900.0"/> - <Property name="MinimumEngineTorque" value="-54.0"/> - <Property name="MomentInertiaPitch" value="0.0"/> - <Property name="MomentInertiaRoll" value="0.0"/> - <Property name="MomentInertiaYaw" value="0.0"/> - <Property name="NumberOfGears" value="8"/> - <Property name="SensorPosition/FrontCenter/Height" value="0.56"/> - <Property name="SensorPosition/FrontCenter/Lateral" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Longitudinal" value="3.71"/> - <Property name="SensorPosition/FrontCenter/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Roll" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Yaw" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Height" value="0.68"/> - <Property name="SensorPosition/FrontLeft/Lateral" value="0.78"/> - <Property name="SensorPosition/FrontLeft/Longitudinal" value="3.33"/> - <Property name="SensorPosition/FrontLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Roll" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Yaw" value="1.134464"/> - <Property name="SensorPosition/FrontRight/Height" value="0.68"/> - <Property name="SensorPosition/FrontRight/Lateral" value="-0.78"/> - <Property name="SensorPosition/FrontRight/Longitudinal" value="3.33"/> - <Property name="SensorPosition/FrontRight/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontRight/Roll" value="0.0"/> - <Property name="SensorPosition/FrontRight/Yaw" value="-1.134464"/> - <Property name="SensorPosition/FrontWindow/Height" value="1.27"/> - <Property name="SensorPosition/FrontWindow/Lateral" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Longitudinal" value="1.82"/> - <Property name="SensorPosition/FrontWindow/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Roll" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Yaw" value="0.0"/> - <Property name="SensorPosition/RearLeft/Height" value="0.65"/> - <Property name="SensorPosition/RearLeft/Lateral" value="0.675"/> - <Property name="SensorPosition/RearLeft/Longitudinal" value="-0.65"/> - <Property name="SensorPosition/RearLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/RearLeft/Roll" value="0.0"/> - <Property name="SensorPosition/RearLeft/Yaw" value="2.146755"/> - <Property name="SensorPosition/RearRight/Height" value="0.65"/> - <Property name="SensorPosition/RearRight/Lateral" value="-0.75"/> - <Property name="SensorPosition/RearRight/Longitudinal" value="-0.65"/> - <Property name="SensorPosition/RearRight/Pitch" value="0.0"/> - <Property name="SensorPosition/RearRight/Roll" value="0.0"/> - <Property name="SensorPosition/RearRight/Yaw" value="-2.146755"/> - <Property name="SensorPosition/RearWindow/Height" value="1.31"/> - <Property name="SensorPosition/RearWindow/Lateral" value="0.0"/> - <Property name="SensorPosition/RearWindow/Longitudinal" value="0.16"/> - <Property name="SensorPosition/RearWindow/Pitch" value="0.0"/> - <Property name="SensorPosition/RearWindow/Roll" value="0.0"/> - <Property name="SensorPosition/RearWindow/Yaw" value="3.141592"/> - <Property name="SensorPosition/SideLeft/Height" value="0.21"/> - <Property name="SensorPosition/SideLeft/Lateral" value="0.81"/> - <Property name="SensorPosition/SideLeft/Longitudinal" value="1.21"/> - <Property name="SensorPosition/SideLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/SideLeft/Roll" value="0.0"/> - <Property name="SensorPosition/SideLeft/Yaw" value="1.570796"/> - <Property name="SensorPosition/SideRight/Height" value="0.21"/> - <Property name="SensorPosition/SideRight/Lateral" value="-0.81"/> - <Property name="SensorPosition/SideRight/Longitudinal" value="1.21"/> - <Property name="SensorPosition/SideRight/Pitch" value="0.0"/> - <Property name="SensorPosition/SideRight/Roll" value="0.0"/> - <Property name="SensorPosition/SideRight/Yaw" value="-1.570796"/> - <Property name="SteeringRatio" value="10.7"/> - </Properties> - <BoundingBox> - <Center x="1.285" y="0.0" z="0.72"/> - <Dimensions width="1.96" length="4.63" height="1.44"/> - </BoundingBox> - <Performance maxSpeed="69.44" maxAcceleration="9.80665" maxDeceleration="9.80665"/> - <Axles> - <FrontAxle maxSteering="0.5012" wheelDiameter="0.634" trackWidth="1.8" positionX="2.81" positionZ="0.317"/> - <RearAxle maxSteering="0.0" wheelDiameter="0.634" trackWidth="1.8" positionX="0.0" positionZ="0.317"/> - </Axles> - </Vehicle> - <Vehicle model3d="car_bmw_7_1" mass="1845.0" name="car_bmw_7_1" vehicleCategory="car"> - <Properties> - <Property name="AirDragCoefficient" value="0.3"/> - <Property name="AxleRatio" value="3.077"/> - <Property name="DecelerationFromPowertrainDrag" value="0.5"/> - <Property name="FrictionCoefficient" value="1.0"/> - <Property name="FrontSurface" value="2.42"/> - <Property name="GearRatio1" value="5.0"/> - <Property name="GearRatio2" value="3.2"/> - <Property name="GearRatio3" value="2.143"/> - <Property name="GearRatio4" value="1.72"/> - <Property name="GearRatio5" value="1.314"/> - <Property name="GearRatio6" value="1.0"/> - <Property name="GearRatio7" value="0.822"/> - <Property name="GearRatio8" value="0.64"/> - <Property name="MaximumEngineSpeed" value="6000.0"/> - <Property name="MaximumEngineTorque" value="450.0"/> - <Property name="MinimumEngineSpeed" value="900.0"/> - <Property name="MinimumEngineTorque" value="-54.0"/> - <Property name="MaximumEnginePower" value="200000.0"/> - <Property name="MomentInertiaPitch" value="0.0"/> - <Property name="MomentInertiaRoll" value="0.0"/> - <Property name="MomentInertiaYaw" value="0.0"/> - <Property name="NumberOfGears" value="8"/> - <Property name="SensorPosition/FrontCenter/Height" value="0.6"/> - <Property name="SensorPosition/FrontCenter/Lateral" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Longitudinal" value="4.16"/> - <Property name="SensorPosition/FrontCenter/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Roll" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Yaw" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Height" value="0.77"/> - <Property name="SensorPosition/FrontLeft/Lateral" value="0.84"/> - <Property name="SensorPosition/FrontLeft/Longitudinal" value="3.75"/> - <Property name="SensorPosition/FrontLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Roll" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Yaw" value="1.134464"/> - <Property name="SensorPosition/FrontRight/Height" value="0.77"/> - <Property name="SensorPosition/FrontRight/Lateral" value="-0.84"/> - <Property name="SensorPosition/FrontRight/Longitudinal" value="3.75"/> - <Property name="SensorPosition/FrontRight/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontRight/Roll" value="0.0"/> - <Property name="SensorPosition/FrontRight/Yaw" value="-1.134464"/> - <Property name="SensorPosition/FrontWindow/Height" value="1.36"/> - <Property name="SensorPosition/FrontWindow/Lateral" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Longitudinal" value="2.05"/> - <Property name="SensorPosition/FrontWindow/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Roll" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Yaw" value="0.0"/> - <Property name="SensorPosition/RearLeft/Height" value="0.73"/> - <Property name="SensorPosition/RearLeft/Lateral" value="0.84"/> - <Property name="SensorPosition/RearLeft/Longitudinal" value="-0.75"/> - <Property name="SensorPosition/RearLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/RearLeft/Roll" value="0.0"/> - <Property name="SensorPosition/RearLeft/Yaw" value="2.146755"/> - <Property name="SensorPosition/RearRight/Height" value="0.73"/> - <Property name="SensorPosition/RearRight/Lateral" value="-0.84"/> - <Property name="SensorPosition/RearRight/Longitudinal" value="-0.475"/> - <Property name="SensorPosition/RearRight/Pitch" value="0.0"/> - <Property name="SensorPosition/RearRight/Roll" value="0.0"/> - <Property name="SensorPosition/RearRight/Yaw" value="-2.146755"/> - <Property name="SensorPosition/RearWindow/Height" value="1.41"/> - <Property name="SensorPosition/RearWindow/Lateral" value="0.0"/> - <Property name="SensorPosition/RearWindow/Longitudinal" value="0.26"/> - <Property name="SensorPosition/RearWindow/Pitch" value="0.0"/> - <Property name="SensorPosition/RearWindow/Roll" value="0.0"/> - <Property name="SensorPosition/RearWindow/Yaw" value="3.141592"/> - <Property name="SensorPosition/SideLeft/Height" value="0.23"/> - <Property name="SensorPosition/SideLeft/Lateral" value="0.9"/> - <Property name="SensorPosition/SideLeft/Longitudinal" value="1.34"/> - <Property name="SensorPosition/SideLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/SideLeft/Roll" value="0.0"/> - <Property name="SensorPosition/SideLeft/Yaw" value="1.570796"/> - <Property name="SensorPosition/SideRight/Height" value="0.23"/> - <Property name="SensorPosition/SideRight/Lateral" value="-0.9"/> - <Property name="SensorPosition/SideRight/Longitudinal" value="1.34"/> - <Property name="SensorPosition/SideRight/Pitch" value="0.0"/> - <Property name="SensorPosition/SideRight/Roll" value="0.0"/> - <Property name="SensorPosition/SideRight/Yaw" value="-1.570796"/> - <Property name="SteeringRatio" value="10.7"/> - </Properties> - <BoundingBox> - <Center x="1.46" y="0.0" z="0.755"/> - <Dimensions width="2.18" length="5.26" height="1.51"/> - </BoundingBox> - <Performance maxSpeed="69.44" maxAcceleration="9.80665" maxDeceleration="9.80665"/> - <Axles> - <FrontAxle maxSteering="0.5226" wheelDiameter="0.682" trackWidth="1.8" positionX="3.22" positionZ="0.341"/> - <RearAxle maxSteering="0.0" wheelDiameter="0.682" trackWidth="1.8" positionX="0.0" positionZ="0.341"/> - </Axles> - </Vehicle> - <Vehicle model3d="car_bmw_7_2" mass="1900.0" name="car_bmw_7_2" vehicleCategory="car"> - <Properties> - <Property name="AirDragCoefficient" value="0.3"/> - <Property name="AxleRatio" value="3.077"/> - <Property name="DecelerationFromPowertrainDrag" value="0.5"/> - <Property name="FrictionCoefficient" value="1.0"/> - <Property name="FrontSurface" value="2.42"/> - <Property name="GearRatio1" value="4.714"/> - <Property name="GearRatio2" value="3.143"/> - <Property name="GearRatio3" value="2.106"/> - <Property name="GearRatio4" value="1.667"/> - <Property name="GearRatio5" value="1.285"/> - <Property name="GearRatio6" value="1.0"/> - <Property name="GearRatio7" value="0.839"/> - <Property name="GearRatio8" value="0.667"/> - <Property name="MaximumEngineSpeed" value="6000.0"/> - <Property name="MaximumEngineTorque" value="450.0"/> - <Property name="MinimumEngineSpeed" value="900.0"/> - <Property name="MinimumEngineTorque" value="-54.0"/> - <Property name="MaximumEnginePower" value="200000.0"/> - <Property name="MomentInertiaPitch" value="0.0"/> - <Property name="MomentInertiaRoll" value="0.0"/> - <Property name="MomentInertiaYaw" value="1300.0"/> - <Property name="NumberOfGears" value="8"/> - <Property name="SensorPosition/FrontCenter/Height" value="0.55"/> - <Property name="SensorPosition/FrontCenter/Lateral" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Longitudinal" value="4.2"/> - <Property name="SensorPosition/FrontCenter/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Roll" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Yaw" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Height" value="0.75"/> - <Property name="SensorPosition/FrontLeft/Lateral" value="0.86"/> - <Property name="SensorPosition/FrontLeft/Longitudinal" value="3.84"/> - <Property name="SensorPosition/FrontLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Roll" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Yaw" value="1.134464"/> - <Property name="SensorPosition/FrontRight/Height" value="0.75"/> - <Property name="SensorPosition/FrontRight/Lateral" value="-0.86"/> - <Property name="SensorPosition/FrontRight/Longitudinal" value="3.84"/> - <Property name="SensorPosition/FrontRight/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontRight/Roll" value="0.0"/> - <Property name="SensorPosition/FrontRight/Yaw" value="-1.134464"/> - <Property name="SensorPosition/FrontWindow/Height" value="1.34"/> - <Property name="SensorPosition/FrontWindow/Lateral" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Longitudinal" value="2.09"/> - <Property name="SensorPosition/FrontWindow/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Roll" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Yaw" value="0.0"/> - <Property name="SensorPosition/RearLeft/Height" value="0.69"/> - <Property name="SensorPosition/RearLeft/Lateral" value="0.79"/> - <Property name="SensorPosition/RearLeft/Longitudinal" value="-0.84"/> - <Property name="SensorPosition/RearLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/RearLeft/Roll" value="0.0"/> - <Property name="SensorPosition/RearLeft/Yaw" value="2.146755"/> - <Property name="SensorPosition/RearRight/Height" value="0.69"/> - <Property name="SensorPosition/RearRight/Lateral" value="-0.79"/> - <Property name="SensorPosition/RearRight/Longitudinal" value="-0.84"/> - <Property name="SensorPosition/RearRight/Pitch" value="0.0"/> - <Property name="SensorPosition/RearRight/Roll" value="0.0"/> - <Property name="SensorPosition/RearRight/Yaw" value="-2.146755"/> - <Property name="SensorPosition/RearWindow/Height" value="1.38"/> - <Property name="SensorPosition/RearWindow/Lateral" value="0.0"/> - <Property name="SensorPosition/RearWindow/Longitudinal" value="0.28"/> - <Property name="SensorPosition/RearWindow/Pitch" value="0.0"/> - <Property name="SensorPosition/RearWindow/Roll" value="0.0"/> - <Property name="SensorPosition/RearWindow/Yaw" value="3.141592"/> - <Property name="SensorPosition/SideLeft/Height" value="0.24"/> - <Property name="SensorPosition/SideLeft/Lateral" value="0.91"/> - <Property name="SensorPosition/SideLeft/Longitudinal" value="1.46"/> - <Property name="SensorPosition/SideLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/SideLeft/Roll" value="0.0"/> - <Property name="SensorPosition/SideLeft/Yaw" value="1.570796"/> - <Property name="SensorPosition/SideRight/Height" value="0.24"/> - <Property name="SensorPosition/SideRight/Lateral" value="-0.91"/> - <Property name="SensorPosition/SideRight/Longitudinal" value="1.46"/> - <Property name="SensorPosition/SideRight/Pitch" value="0.0"/> - <Property name="SensorPosition/SideRight/Roll" value="0.0"/> - <Property name="SensorPosition/SideRight/Yaw" value="-1.570796"/> - <Property name="SteeringRatio" value="10.7"/> - </Properties> - <BoundingBox> - <Center x="1.485" y="0.0" z="0.745"/> - <Dimensions width="2.16" length="5.27" height="1.49"/> - </BoundingBox> - <Performance maxSpeed="69.44" maxAcceleration="9.80665" maxDeceleration="9.80665"/> - <Axles> - <FrontAxle maxSteering="0.5279" wheelDiameter="0.682" trackWidth="1.8" positionX="3.25" positionZ="0.341"/> - <RearAxle maxSteering="0.0" wheelDiameter="0.682" trackWidth="1.8" positionX="0.0" positionZ="0.341"/> - </Axles> - </Vehicle> - <Vehicle model3d="car_mini_cooper" mass="1235.0" name="car_mini_cooper" vehicleCategory="car"> - <Properties> - <Property name="AirDragCoefficient" value="0.3"/> - <Property name="AxleRatio" value="3.789"/> - <Property name="DecelerationFromPowertrainDrag" value="0.5"/> - <Property name="FrictionCoefficient" value="1.0"/> - <Property name="FrontSurface" value="2.07"/> - <Property name="GearRatio1" value="4.154"/> - <Property name="GearRatio2" value="2.45"/> - <Property name="GearRatio3" value="1.557"/> - <Property name="GearRatio4" value="1.09"/> - <Property name="GearRatio5" value="0.843"/> - <Property name="GearRatio6" value="0.675"/> - <Property name="GearRatio7" value="0.547"/> - <Property name="MaximumEngineSpeed" value="6000.0"/> - <Property name="MaximumEngineTorque" value="220.0"/> - <Property name="MinimumEngineSpeed" value="900.0"/> - <Property name="MinimumEngineTorque" value="-54.0"/> - <Property name="MomentInertiaPitch" value="0.0"/> - <Property name="MomentInertiaRoll" value="0.0"/> - <Property name="MomentInertiaYaw" value="0.0"/> - <Property name="NumberOfGears" value="7"/> - <Property name="SensorPosition/FrontCenter/Height" value="0.57"/> - <Property name="SensorPosition/FrontCenter/Lateral" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Longitudinal" value="3.22"/> - <Property name="SensorPosition/FrontCenter/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Roll" value="0.0"/> - <Property name="SensorPosition/FrontCenter/Yaw" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Height" value="0.65"/> - <Property name="SensorPosition/FrontLeft/Lateral" value="0.65"/> - <Property name="SensorPosition/FrontLeft/Longitudinal" value="3.05"/> - <Property name="SensorPosition/FrontLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Roll" value="0.0"/> - <Property name="SensorPosition/FrontLeft/Yaw" value="1.134464"/> - <Property name="SensorPosition/FrontRight/Height" value="0.65"/> - <Property name="SensorPosition/FrontRight/Lateral" value="-0.65"/> - <Property name="SensorPosition/FrontRight/Longitudinal" value="3.05"/> - <Property name="SensorPosition/FrontRight/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontRight/Roll" value="0.0"/> - <Property name="SensorPosition/FrontRight/Yaw" value="-1.134464"/> - <Property name="SensorPosition/FrontWindow/Height" value="1.28"/> - <Property name="SensorPosition/FrontWindow/Lateral" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Longitudinal" value="1.83"/> - <Property name="SensorPosition/FrontWindow/Pitch" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Roll" value="0.0"/> - <Property name="SensorPosition/FrontWindow/Yaw" value="0.0"/> - <Property name="SensorPosition/RearLeft/Height" value="0.6"/> - <Property name="SensorPosition/RearLeft/Lateral" value="0.7"/> - <Property name="SensorPosition/RearLeft/Longitudinal" value="-0.35"/> - <Property name="SensorPosition/RearLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/RearLeft/Roll" value="0.0"/> - <Property name="SensorPosition/RearLeft/Yaw" value="2.146755"/> - <Property name="SensorPosition/RearRight/Height" value="0.6"/> - <Property name="SensorPosition/RearRight/Lateral" value="-0.7"/> - <Property name="SensorPosition/RearRight/Longitudinal" value="-0.35"/> - <Property name="SensorPosition/RearRight/Pitch" value="0.0"/> - <Property name="SensorPosition/RearRight/Roll" value="0.0"/> - <Property name="SensorPosition/RearRight/Yaw" value="-2.146755"/> - <Property name="SensorPosition/RearWindow/Height" value="1.33"/> - <Property name="SensorPosition/RearWindow/Lateral" value="0.0"/> - <Property name="SensorPosition/RearWindow/Longitudinal" value="-0.08"/> - <Property name="SensorPosition/RearWindow/Pitch" value="0.0"/> - <Property name="SensorPosition/RearWindow/Roll" value="0.0"/> - <Property name="SensorPosition/RearWindow/Yaw" value="3.141592"/> - <Property name="SensorPosition/SideLeft/Height" value="0.26"/> - <Property name="SensorPosition/SideLeft/Lateral" value="0.81"/> - <Property name="SensorPosition/SideLeft/Longitudinal" value="1.06"/> - <Property name="SensorPosition/SideLeft/Pitch" value="0.0"/> - <Property name="SensorPosition/SideLeft/Roll" value="0.0"/> - <Property name="SensorPosition/SideLeft/Yaw" value="1.570796"/> - <Property name="SensorPosition/SideRight/Height" value="0.26"/> - <Property name="SensorPosition/SideRight/Lateral" value="-0.81"/> - <Property name="SensorPosition/SideRight/Longitudinal" value="1.06"/> - <Property name="SensorPosition/SideRight/Pitch" value="0.0"/> - <Property name="SensorPosition/SideRight/Roll" value="0.0"/> - <Property name="SensorPosition/SideRight/Yaw" value="-1.570796"/> - <Property name="SteeringRatio" value="10.7"/> - </Properties> - <BoundingBox> - <Center x="1.35" y="0.0" z="0.71"/> - <Dimensions width="1.89" length="3.8" height="1.42"/> - </BoundingBox> - <Performance maxSpeed="58.33" maxAcceleration="9.80665" maxDeceleration="9.80665"/> - <Axles> - <FrontAxle maxSteering="0.4766" wheelDiameter="0.59" trackWidth="1.8" positionX="2.48" positionZ="0.295"/> - <RearAxle maxSteering="0.0" wheelDiameter="0.59" trackWidth="1.8" positionX="0.0" positionZ="0.295"/> - </Axles> - </Vehicle> - <Vehicle model3d="car_oldtimer" mass="1525.0" name="car_oldtimer" vehicleCategory="car"> - <Properties> - <Property name="AirDragCoefficient" value="0.3"/> - <Property name="AxleRatio" value="2.813"/> - <Property name="DecelerationFromPowertrainDrag" value="0.5"/> - <Property name="FrictionCoefficient" value="1.0"/> - <Property name="FrontSurface" value="2.2"/> - <Property name="GearRatio1" value="5.0"/> - <Property name="GearRatio2" value="3.2"/> - <Property name="GearRatio3" value="2.143"/> - <Property name="GearRatio4" value="1.72"/> - <Property name="GearRatio5" value="1.314"/> - <Property name="GearRatio6" value="1.0"/> - <Property name="GearRatio7" value="0.822"/> - <Property name="GearRatio8" value="0.64"/> - <Property name="MaximumEngineSpeed" value="6000.0"/> - <Property name="MaximumEngineTorque" value="270.0"/> - <Property name="MinimumEngineSpeed" value="900.0"/> - <Property name="MinimumEngineTorque" value="-54.0"/> - <Property name="MomentInertiaPitch" value="0.0"/> - <Property name="MomentInertiaRoll" value="0.0"/> - <Property name="MomentInertiaYaw" value="0.0"/> - <Property name="NumberOfGears" value="8"/> - <Property name="SteeringRatio" value="10.7"/> - </Properties> - <BoundingBox> - <Center x="1.2" y="0.0" z="0.675"/> - <Dimensions width="1.68" length="3.89" height="1.35"/> - </BoundingBox> - <Performance maxSpeed="40.0" maxAcceleration="9.80665" maxDeceleration="9.80665"/> - <Axles> - <FrontAxle maxSteering="0.5012" wheelDiameter="0.634" trackWidth="1.4" positionX="2.81" positionZ="0.317"/> - <RearAxle maxSteering="0.0" wheelDiameter="0.634" trackWidth="1.4" positionX="0.0" positionZ="0.317"/> - </Axles> - </Vehicle> - <Vehicle model3d="bus" mass="25000.0" name="bus" vehicleCategory="truck"> - <Properties> - <Property name="AirDragCoefficient" value="0.8"/> - <Property name="AxleRatio" value="4.0"/> - <Property name="DecelerationFromPowertrainDrag" value="1.0"/> - <Property name="FrictionCoefficient" value="1.0"/> - <Property name="FrontSurface" value="9.0"/> - <Property name="GearRatio1" value="6.316"/> - <Property name="GearRatio2" value="4.554"/> - <Property name="GearRatio3" value="3.269"/> - <Property name="GearRatio4" value="2.352"/> - <Property name="GearRatio5" value="1.692"/> - <Property name="GearRatio6" value="1.217"/> - <Property name="GearRatio7" value="0.876"/> - <Property name="GearRatio8" value="0.630"/> - <Property name="MaximumEngineSpeed" value="2500.0"/> - <Property name="MaximumEngineTorque" value="1400.0"/> - <Property name="MinimumEngineSpeed" value="600.0"/> - <Property name="MinimumEngineTorque" value="-140.0"/> - <Property name="MomentInertiaPitch" value="0.0"/> - <Property name="MomentInertiaRoll" value="0.0"/> - <Property name="MomentInertiaYaw" value="0.0"/> - <Property name="NumberOfGears" value="8"/> - <Property name="SteeringRatio" value="15.0"/> - </Properties> - <BoundingBox> - <Center x="2.815" y="0.0" z="1.92"/> - <Dimensions width="2.91" length="13.23" height="3.84"/> - </BoundingBox> - <Performance maxSpeed="33.33" maxAcceleration="9.80665" maxDeceleration="9.80665"/> - <Axles> - <FrontAxle maxSteering="0.6972" wheelDiameter="0.808" trackWidth="1.8" positionX="6.64" positionZ="0.404"/> - <RearAxle maxSteering="0.0" wheelDiameter="0.808" trackWidth="1.8" positionX="0.0" positionZ="0.404"/> - </Axles> - </Vehicle> - <Vehicle model3d="truck" mass="30000.0" name="truck" vehicleCategory="truck"> - <Properties> - <Property name="AirDragCoefficient" value="0.8"/> - <Property name="AxleRatio" value="4.0"/> - <Property name="DecelerationFromPowertrainDrag" value="1.0"/> - <Property name="FrictionCoefficient" value="1.0"/> - <Property name="FrontSurface" value="9.0"/> - <Property name="GearRatio1" value="6.316"/> - <Property name="GearRatio2" value="4.554"/> - <Property name="GearRatio3" value="3.269"/> - <Property name="GearRatio4" value="2.352"/> - <Property name="GearRatio5" value="1.692"/> - <Property name="GearRatio6" value="1.217"/> - <Property name="GearRatio7" value="0.876"/> - <Property name="GearRatio8" value="0.630"/> - <Property name="MaximumEngineSpeed" value="2500.0"/> - <Property name="MaximumEngineTorque" value="1400.0"/> - <Property name="MinimumEngineSpeed" value="600.0"/> - <Property name="MinimumEngineTorque" value="-140.0"/> - <Property name="MomentInertiaPitch" value="0.0"/> - <Property name="MomentInertiaRoll" value="0.0"/> - <Property name="MomentInertiaYaw" value="0.0"/> - <Property name="NumberOfGears" value="8"/> - <Property name="SteeringRatio" value="15.0"/> - </Properties> - <BoundingBox> - <Center x="2.685" y="0.0" z="1.74"/> - <Dimensions width="3.16" length="8.83" height="3.48"/> - </BoundingBox> - <Performance maxSpeed="25.0" maxAcceleration="9.80665" maxDeceleration="9.80665"/> - <Axles> - <FrontAxle maxSteering="0.4352" wheelDiameter="0.808" trackWidth="1.8" positionX="4.36" positionZ="0.404"/> - <RearAxle maxSteering="0.0" wheelDiameter="0.808" trackWidth="1.8" positionX="0.0" positionZ="0.404"/> - </Axles> - </Vehicle> - <Vehicle model3d="truck_lorry" mass="30000.0" name="truck_lorry" vehicleCategory="truck"> - <Properties> - <Property name="AirDragCoefficient" value="0.8"/> - <Property name="AxleRatio" value="4.0"/> - <Property name="DecelerationFromPowertrainDrag" value="1.0"/> - <Property name="FrictionCoefficient" value="1.0"/> - <Property name="FrontSurface" value="9.0"/> - <Property name="GearRatio1" value="6.316"/> - <Property name="GearRatio2" value="4.554"/> - <Property name="GearRatio3" value="3.269"/> - <Property name="GearRatio4" value="2.352"/> - <Property name="GearRatio5" value="1.692"/> - <Property name="GearRatio6" value="1.217"/> - <Property name="GearRatio7" value="0.876"/> - <Property name="GearRatio8" value="0.630"/> - <Property name="MaximumEngineSpeed" value="2500.0"/> - <Property name="MaximumEngineTorque" value="1400.0"/> - <Property name="MinimumEngineSpeed" value="600.0"/> - <Property name="MinimumEngineTorque" value="-140.0"/> - <Property name="MomentInertiaPitch" value="0.0"/> - <Property name="MomentInertiaRoll" value="0.0"/> - <Property name="MomentInertiaYaw" value="0.0"/> - <Property name="NumberOfGears" value="8"/> - <Property name="SteeringRatio" value="15.0"/> - </Properties> - <BoundingBox> - <Center x="2.11" y="0.0" z="1.7"/> - <Dimensions width="2.93" length="8.47" height="3.4"/> - </BoundingBox> - <Performance maxSpeed="25.0" maxAcceleration="9.80665" maxDeceleration="9.80665"/> - <Axles> - <FrontAxle maxSteering="0.4352" wheelDiameter="0.808" trackWidth="1.8" positionX="4.36" positionZ="0.404"/> - <RearAxle maxSteering="0.0" wheelDiameter="0.808" trackWidth="1.8" positionX="0.0" positionZ="0.404"/> - </Axles> - </Vehicle> - <Vehicle model3d="bicycle" mass="90.0" name="bicycle" vehicleCategory="bicycle"> - <Properties> - <Property name="AirDragCoefficient" value="0.3"/> - <Property name="AxleRatio" value="3.0"/> - <Property name="DecelerationFromPowertrainDrag" value="0.5"/> - <Property name="FrictionCoefficient" value="1.0"/> - <Property name="FrontSurface" value="1.9"/> - <Property name="GearRatio1" value="4.350"/> - <Property name="GearRatio2" value="2.496"/> - <Property name="GearRatio3" value="1.665"/> - <Property name="GearRatio4" value="1.230"/> - <Property name="GearRatio5" value="1.0"/> - <Property name="GearRatio6" value="0.851"/> - <Property name="MaximumEngineSpeed" value="6000.0"/> - <Property name="MaximumEngineTorque" value="540.0"/> - <Property name="MinimumEngineSpeed" value="900.0"/> - <Property name="MinimumEngineTorque" value="-54.0"/> - <Property name="MomentInertiaPitch" value="0.0"/> - <Property name="MomentInertiaRoll" value="0.0"/> - <Property name="MomentInertiaYaw" value="0.0"/> - <Property name="NumberOfGears" value="6"/> - <Property name="SteeringRatio" value="10.7"/> - </Properties> - <BoundingBox> - <Center x="0.175" y="0.0" z="0.9325"/> - <Dimensions width="0.5" length="1.89" height="1.865"/> - </BoundingBox> - <Performance maxSpeed="10.0" maxAcceleration="9.80665" maxDeceleration="9.80665"/> - <Axles> - <FrontAxle maxSteering="1.5708" wheelDiameter="0.636" trackWidth="0.1" positionX="1.04" positionZ="0.318"/> - <RearAxle maxSteering="0.0" wheelDiameter="0.636" trackWidth="0.1" positionX="0.0" positionZ="0.318"/> - </Axles> - </Vehicle> - </Catalog> -</OpenSCENARIO> +<?xml version='1.0' encoding='UTF-8'?> +<OpenSCENARIO> + <FileHeader revMajor="1" revMinor="0" date="2020-06-26T00:17:00" description="openPASS vehicle models" author="in-tech GmbH"/> + <Catalog name="VehicleCatalog"> + <Vehicle model3d="car_bmw_i3" mass="1320.0" name="car_bmw_i3" vehicleCategory="car"> + <Properties> + <Property name="AirDragCoefficient" value="0.3"/> + <Property name="AxleRatio" value="1.0"/> + <Property name="DecelerationFromPowertrainDrag" value="0.5"/> + <Property name="FrictionCoefficient" value="1.0"/> + <Property name="FrontSurface" value="2.38"/> + <Property name="GearRatio1" value="9.665"/> + <Property name="MaximumEngineSpeed" value="6000.0"/> + <Property name="MaximumEngineTorque" value="250.0"/> + <Property name="MinimumEngineSpeed" value="900.0"/> + <Property name="MinimumEngineTorque" value="-54.0"/> + <Property name="MomentInertiaPitch" value="0.0"/> + <Property name="MomentInertiaRoll" value="0.0"/> + <Property name="MomentInertiaYaw" value="0.0"/> + <Property name="NumberOfGears" value="1"/> + <Property name="SensorPosition/FrontCenter/Height" value="0.66"/> + <Property name="SensorPosition/FrontCenter/Lateral" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Longitudinal" value="3.26"/> + <Property name="SensorPosition/FrontCenter/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Roll" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Yaw" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Height" value="0.82"/> + <Property name="SensorPosition/FrontLeft/Lateral" value="0.68"/> + <Property name="SensorPosition/FrontLeft/Longitudinal" value="2.98"/> + <Property name="SensorPosition/FrontLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Roll" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Yaw" value="1.134464"/> + <Property name="SensorPosition/FrontRight/Height" value="0.82"/> + <Property name="SensorPosition/FrontRight/Lateral" value="-0.68"/> + <Property name="SensorPosition/FrontRight/Longitudinal" value="2.98"/> + <Property name="SensorPosition/FrontRight/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontRight/Roll" value="0.0"/> + <Property name="SensorPosition/FrontRight/Yaw" value="-1.134464"/> + <Property name="SensorPosition/FrontWindow/Height" value="1.45"/> + <Property name="SensorPosition/FrontWindow/Lateral" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Longitudinal" value="1.9"/> + <Property name="SensorPosition/FrontWindow/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Roll" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Yaw" value="0.0"/> + <Property name="SensorPosition/RearLeft/Height" value="0.64"/> + <Property name="SensorPosition/RearLeft/Lateral" value="0.64"/> + <Property name="SensorPosition/RearLeft/Longitudinal" value="-0.49"/> + <Property name="SensorPosition/RearLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/RearLeft/Roll" value="0.0"/> + <Property name="SensorPosition/RearLeft/Yaw" value="2.146755"/> + <Property name="SensorPosition/RearRight/Height" value="0.64"/> + <Property name="SensorPosition/RearRight/Lateral" value="-0.64"/> + <Property name="SensorPosition/RearRight/Longitudinal" value="-0.49"/> + <Property name="SensorPosition/RearRight/Pitch" value="0.0"/> + <Property name="SensorPosition/RearRight/Roll" value="0.0"/> + <Property name="SensorPosition/RearRight/Yaw" value="-2.146755"/> + <Property name="SensorPosition/RearWindow/Height" value="1.39"/> + <Property name="SensorPosition/RearWindow/Lateral" value="0.0"/> + <Property name="SensorPosition/RearWindow/Longitudinal" value="-0.21"/> + <Property name="SensorPosition/RearWindow/Pitch" value="0.0"/> + <Property name="SensorPosition/RearWindow/Roll" value="0.0"/> + <Property name="SensorPosition/RearWindow/Yaw" value="3.141592"/> + <Property name="SensorPosition/SideLeft/Height" value="0.3"/> + <Property name="SensorPosition/SideLeft/Lateral" value="0.8"/> + <Property name="SensorPosition/SideLeft/Longitudinal" value="1.2"/> + <Property name="SensorPosition/SideLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/SideLeft/Roll" value="0.0"/> + <Property name="SensorPosition/SideLeft/Yaw" value="1.570796"/> + <Property name="SensorPosition/SideRight/Height" value="0.3"/> + <Property name="SensorPosition/SideRight/Lateral" value="-0.8"/> + <Property name="SensorPosition/SideRight/Longitudinal" value="1.2"/> + <Property name="SensorPosition/SideRight/Pitch" value="0.0"/> + <Property name="SensorPosition/SideRight/Roll" value="0.0"/> + <Property name="SensorPosition/SideRight/Yaw" value="-1.570796"/> + <Property name="SteeringRatio" value="10.7"/> + </Properties> + <BoundingBox> + <Center x="1.25" y="0.0" z="0.84"/> + <Dimensions width="2.04" length="3.96" height="1.68"/> + </BoundingBox> + <Performance maxSpeed="41.67" maxAcceleration="9.80665" maxDeceleration="9.80665"/> + <Axles> + <FrontAxle maxSteering="0.5282" wheelDiameter="0.682" trackWidth="1.8" positionX="2.52" positionZ="0.341"/> + <RearAxle maxSteering="0.0" wheelDiameter="0.682" trackWidth="1.8" positionX="0.0" positionZ="0.341"/> + </Axles> + </Vehicle> + <Vehicle model3d="car_bmw_3" mass="1525.0" name="car_bmw_3" vehicleCategory="car"> + <Properties> + <Property name="AirDragCoefficient" value="0.3"/> + <Property name="AxleRatio" value="2.813"/> + <Property name="DecelerationFromPowertrainDrag" value="0.5"/> + <Property name="FrictionCoefficient" value="1.0"/> + <Property name="FrontSurface" value="2.2"/> + <Property name="GearRatio1" value="5.0"/> + <Property name="GearRatio2" value="3.2"/> + <Property name="GearRatio3" value="2.143"/> + <Property name="GearRatio4" value="1.72"/> + <Property name="GearRatio5" value="1.314"/> + <Property name="GearRatio6" value="1.0"/> + <Property name="GearRatio7" value="0.822"/> + <Property name="GearRatio8" value="0.64"/> + <Property name="MaximumEngineSpeed" value="6000.0"/> + <Property name="MaximumEngineTorque" value="270.0"/> + <Property name="MinimumEngineSpeed" value="900.0"/> + <Property name="MinimumEngineTorque" value="-54.0"/> + <Property name="MomentInertiaPitch" value="0.0"/> + <Property name="MomentInertiaRoll" value="0.0"/> + <Property name="MomentInertiaYaw" value="0.0"/> + <Property name="NumberOfGears" value="8"/> + <Property name="SensorPosition/FrontCenter/Height" value="0.56"/> + <Property name="SensorPosition/FrontCenter/Lateral" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Longitudinal" value="3.71"/> + <Property name="SensorPosition/FrontCenter/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Roll" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Yaw" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Height" value="0.68"/> + <Property name="SensorPosition/FrontLeft/Lateral" value="0.78"/> + <Property name="SensorPosition/FrontLeft/Longitudinal" value="3.33"/> + <Property name="SensorPosition/FrontLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Roll" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Yaw" value="1.134464"/> + <Property name="SensorPosition/FrontRight/Height" value="0.68"/> + <Property name="SensorPosition/FrontRight/Lateral" value="-0.78"/> + <Property name="SensorPosition/FrontRight/Longitudinal" value="3.33"/> + <Property name="SensorPosition/FrontRight/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontRight/Roll" value="0.0"/> + <Property name="SensorPosition/FrontRight/Yaw" value="-1.134464"/> + <Property name="SensorPosition/FrontWindow/Height" value="1.27"/> + <Property name="SensorPosition/FrontWindow/Lateral" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Longitudinal" value="1.82"/> + <Property name="SensorPosition/FrontWindow/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Roll" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Yaw" value="0.0"/> + <Property name="SensorPosition/RearLeft/Height" value="0.65"/> + <Property name="SensorPosition/RearLeft/Lateral" value="0.675"/> + <Property name="SensorPosition/RearLeft/Longitudinal" value="-0.65"/> + <Property name="SensorPosition/RearLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/RearLeft/Roll" value="0.0"/> + <Property name="SensorPosition/RearLeft/Yaw" value="2.146755"/> + <Property name="SensorPosition/RearRight/Height" value="0.65"/> + <Property name="SensorPosition/RearRight/Lateral" value="-0.75"/> + <Property name="SensorPosition/RearRight/Longitudinal" value="-0.65"/> + <Property name="SensorPosition/RearRight/Pitch" value="0.0"/> + <Property name="SensorPosition/RearRight/Roll" value="0.0"/> + <Property name="SensorPosition/RearRight/Yaw" value="-2.146755"/> + <Property name="SensorPosition/RearWindow/Height" value="1.31"/> + <Property name="SensorPosition/RearWindow/Lateral" value="0.0"/> + <Property name="SensorPosition/RearWindow/Longitudinal" value="0.16"/> + <Property name="SensorPosition/RearWindow/Pitch" value="0.0"/> + <Property name="SensorPosition/RearWindow/Roll" value="0.0"/> + <Property name="SensorPosition/RearWindow/Yaw" value="3.141592"/> + <Property name="SensorPosition/SideLeft/Height" value="0.21"/> + <Property name="SensorPosition/SideLeft/Lateral" value="0.81"/> + <Property name="SensorPosition/SideLeft/Longitudinal" value="1.21"/> + <Property name="SensorPosition/SideLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/SideLeft/Roll" value="0.0"/> + <Property name="SensorPosition/SideLeft/Yaw" value="1.570796"/> + <Property name="SensorPosition/SideRight/Height" value="0.21"/> + <Property name="SensorPosition/SideRight/Lateral" value="-0.81"/> + <Property name="SensorPosition/SideRight/Longitudinal" value="1.21"/> + <Property name="SensorPosition/SideRight/Pitch" value="0.0"/> + <Property name="SensorPosition/SideRight/Roll" value="0.0"/> + <Property name="SensorPosition/SideRight/Yaw" value="-1.570796"/> + <Property name="SteeringRatio" value="10.7"/> + </Properties> + <BoundingBox> + <Center x="1.285" y="0.0" z="0.72"/> + <Dimensions width="1.96" length="4.63" height="1.44"/> + </BoundingBox> + <Performance maxSpeed="69.44" maxAcceleration="9.80665" maxDeceleration="9.80665"/> + <Axles> + <FrontAxle maxSteering="0.5012" wheelDiameter="0.634" trackWidth="1.8" positionX="2.81" positionZ="0.317"/> + <RearAxle maxSteering="0.0" wheelDiameter="0.634" trackWidth="1.8" positionX="0.0" positionZ="0.317"/> + </Axles> + </Vehicle> + <Vehicle model3d="car_bmw_7_1" mass="1845.0" name="car_bmw_7_1" vehicleCategory="car"> + <Properties> + <Property name="AirDragCoefficient" value="0.3"/> + <Property name="AxleRatio" value="3.077"/> + <Property name="DecelerationFromPowertrainDrag" value="0.5"/> + <Property name="FrictionCoefficient" value="1.0"/> + <Property name="FrontSurface" value="2.42"/> + <Property name="GearRatio1" value="5.0"/> + <Property name="GearRatio2" value="3.2"/> + <Property name="GearRatio3" value="2.143"/> + <Property name="GearRatio4" value="1.72"/> + <Property name="GearRatio5" value="1.314"/> + <Property name="GearRatio6" value="1.0"/> + <Property name="GearRatio7" value="0.822"/> + <Property name="GearRatio8" value="0.64"/> + <Property name="MaximumEngineSpeed" value="6000.0"/> + <Property name="MaximumEngineTorque" value="450.0"/> + <Property name="MinimumEngineSpeed" value="900.0"/> + <Property name="MinimumEngineTorque" value="-54.0"/> + <Property name="MaximumEnginePower" value="200000.0"/> + <Property name="MomentInertiaPitch" value="0.0"/> + <Property name="MomentInertiaRoll" value="0.0"/> + <Property name="MomentInertiaYaw" value="0.0"/> + <Property name="NumberOfGears" value="8"/> + <Property name="SensorPosition/FrontCenter/Height" value="0.6"/> + <Property name="SensorPosition/FrontCenter/Lateral" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Longitudinal" value="4.16"/> + <Property name="SensorPosition/FrontCenter/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Roll" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Yaw" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Height" value="0.77"/> + <Property name="SensorPosition/FrontLeft/Lateral" value="0.84"/> + <Property name="SensorPosition/FrontLeft/Longitudinal" value="3.75"/> + <Property name="SensorPosition/FrontLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Roll" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Yaw" value="1.134464"/> + <Property name="SensorPosition/FrontRight/Height" value="0.77"/> + <Property name="SensorPosition/FrontRight/Lateral" value="-0.84"/> + <Property name="SensorPosition/FrontRight/Longitudinal" value="3.75"/> + <Property name="SensorPosition/FrontRight/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontRight/Roll" value="0.0"/> + <Property name="SensorPosition/FrontRight/Yaw" value="-1.134464"/> + <Property name="SensorPosition/FrontWindow/Height" value="1.36"/> + <Property name="SensorPosition/FrontWindow/Lateral" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Longitudinal" value="2.05"/> + <Property name="SensorPosition/FrontWindow/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Roll" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Yaw" value="0.0"/> + <Property name="SensorPosition/RearLeft/Height" value="0.73"/> + <Property name="SensorPosition/RearLeft/Lateral" value="0.84"/> + <Property name="SensorPosition/RearLeft/Longitudinal" value="-0.75"/> + <Property name="SensorPosition/RearLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/RearLeft/Roll" value="0.0"/> + <Property name="SensorPosition/RearLeft/Yaw" value="2.146755"/> + <Property name="SensorPosition/RearRight/Height" value="0.73"/> + <Property name="SensorPosition/RearRight/Lateral" value="-0.84"/> + <Property name="SensorPosition/RearRight/Longitudinal" value="-0.475"/> + <Property name="SensorPosition/RearRight/Pitch" value="0.0"/> + <Property name="SensorPosition/RearRight/Roll" value="0.0"/> + <Property name="SensorPosition/RearRight/Yaw" value="-2.146755"/> + <Property name="SensorPosition/RearWindow/Height" value="1.41"/> + <Property name="SensorPosition/RearWindow/Lateral" value="0.0"/> + <Property name="SensorPosition/RearWindow/Longitudinal" value="0.26"/> + <Property name="SensorPosition/RearWindow/Pitch" value="0.0"/> + <Property name="SensorPosition/RearWindow/Roll" value="0.0"/> + <Property name="SensorPosition/RearWindow/Yaw" value="3.141592"/> + <Property name="SensorPosition/SideLeft/Height" value="0.23"/> + <Property name="SensorPosition/SideLeft/Lateral" value="0.9"/> + <Property name="SensorPosition/SideLeft/Longitudinal" value="1.34"/> + <Property name="SensorPosition/SideLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/SideLeft/Roll" value="0.0"/> + <Property name="SensorPosition/SideLeft/Yaw" value="1.570796"/> + <Property name="SensorPosition/SideRight/Height" value="0.23"/> + <Property name="SensorPosition/SideRight/Lateral" value="-0.9"/> + <Property name="SensorPosition/SideRight/Longitudinal" value="1.34"/> + <Property name="SensorPosition/SideRight/Pitch" value="0.0"/> + <Property name="SensorPosition/SideRight/Roll" value="0.0"/> + <Property name="SensorPosition/SideRight/Yaw" value="-1.570796"/> + <Property name="SteeringRatio" value="10.7"/> + </Properties> + <BoundingBox> + <Center x="1.46" y="0.0" z="0.755"/> + <Dimensions width="2.18" length="5.26" height="1.51"/> + </BoundingBox> + <Performance maxSpeed="69.44" maxAcceleration="9.80665" maxDeceleration="9.80665"/> + <Axles> + <FrontAxle maxSteering="0.5226" wheelDiameter="0.682" trackWidth="1.8" positionX="3.22" positionZ="0.341"/> + <RearAxle maxSteering="0.0" wheelDiameter="0.682" trackWidth="1.8" positionX="0.0" positionZ="0.341"/> + </Axles> + </Vehicle> + <Vehicle model3d="car_bmw_7_2" mass="1900.0" name="car_bmw_7_2" vehicleCategory="car"> + <Properties> + <Property name="AirDragCoefficient" value="0.3"/> + <Property name="AxleRatio" value="3.077"/> + <Property name="DecelerationFromPowertrainDrag" value="0.5"/> + <Property name="FrictionCoefficient" value="1.0"/> + <Property name="FrontSurface" value="2.42"/> + <Property name="GearRatio1" value="4.714"/> + <Property name="GearRatio2" value="3.143"/> + <Property name="GearRatio3" value="2.106"/> + <Property name="GearRatio4" value="1.667"/> + <Property name="GearRatio5" value="1.285"/> + <Property name="GearRatio6" value="1.0"/> + <Property name="GearRatio7" value="0.839"/> + <Property name="GearRatio8" value="0.667"/> + <Property name="MaximumEngineSpeed" value="6000.0"/> + <Property name="MaximumEngineTorque" value="450.0"/> + <Property name="MinimumEngineSpeed" value="900.0"/> + <Property name="MinimumEngineTorque" value="-54.0"/> + <Property name="MaximumEnginePower" value="200000.0"/> + <Property name="MomentInertiaPitch" value="0.0"/> + <Property name="MomentInertiaRoll" value="0.0"/> + <Property name="MomentInertiaYaw" value="1300.0"/> + <Property name="NumberOfGears" value="8"/> + <Property name="SensorPosition/FrontCenter/Height" value="0.55"/> + <Property name="SensorPosition/FrontCenter/Lateral" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Longitudinal" value="4.2"/> + <Property name="SensorPosition/FrontCenter/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Roll" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Yaw" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Height" value="0.75"/> + <Property name="SensorPosition/FrontLeft/Lateral" value="0.86"/> + <Property name="SensorPosition/FrontLeft/Longitudinal" value="3.84"/> + <Property name="SensorPosition/FrontLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Roll" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Yaw" value="1.134464"/> + <Property name="SensorPosition/FrontRight/Height" value="0.75"/> + <Property name="SensorPosition/FrontRight/Lateral" value="-0.86"/> + <Property name="SensorPosition/FrontRight/Longitudinal" value="3.84"/> + <Property name="SensorPosition/FrontRight/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontRight/Roll" value="0.0"/> + <Property name="SensorPosition/FrontRight/Yaw" value="-1.134464"/> + <Property name="SensorPosition/FrontWindow/Height" value="1.34"/> + <Property name="SensorPosition/FrontWindow/Lateral" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Longitudinal" value="2.09"/> + <Property name="SensorPosition/FrontWindow/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Roll" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Yaw" value="0.0"/> + <Property name="SensorPosition/RearLeft/Height" value="0.69"/> + <Property name="SensorPosition/RearLeft/Lateral" value="0.79"/> + <Property name="SensorPosition/RearLeft/Longitudinal" value="-0.84"/> + <Property name="SensorPosition/RearLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/RearLeft/Roll" value="0.0"/> + <Property name="SensorPosition/RearLeft/Yaw" value="2.146755"/> + <Property name="SensorPosition/RearRight/Height" value="0.69"/> + <Property name="SensorPosition/RearRight/Lateral" value="-0.79"/> + <Property name="SensorPosition/RearRight/Longitudinal" value="-0.84"/> + <Property name="SensorPosition/RearRight/Pitch" value="0.0"/> + <Property name="SensorPosition/RearRight/Roll" value="0.0"/> + <Property name="SensorPosition/RearRight/Yaw" value="-2.146755"/> + <Property name="SensorPosition/RearWindow/Height" value="1.38"/> + <Property name="SensorPosition/RearWindow/Lateral" value="0.0"/> + <Property name="SensorPosition/RearWindow/Longitudinal" value="0.28"/> + <Property name="SensorPosition/RearWindow/Pitch" value="0.0"/> + <Property name="SensorPosition/RearWindow/Roll" value="0.0"/> + <Property name="SensorPosition/RearWindow/Yaw" value="3.141592"/> + <Property name="SensorPosition/SideLeft/Height" value="0.24"/> + <Property name="SensorPosition/SideLeft/Lateral" value="0.91"/> + <Property name="SensorPosition/SideLeft/Longitudinal" value="1.46"/> + <Property name="SensorPosition/SideLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/SideLeft/Roll" value="0.0"/> + <Property name="SensorPosition/SideLeft/Yaw" value="1.570796"/> + <Property name="SensorPosition/SideRight/Height" value="0.24"/> + <Property name="SensorPosition/SideRight/Lateral" value="-0.91"/> + <Property name="SensorPosition/SideRight/Longitudinal" value="1.46"/> + <Property name="SensorPosition/SideRight/Pitch" value="0.0"/> + <Property name="SensorPosition/SideRight/Roll" value="0.0"/> + <Property name="SensorPosition/SideRight/Yaw" value="-1.570796"/> + <Property name="SteeringRatio" value="10.7"/> + </Properties> + <BoundingBox> + <Center x="1.485" y="0.0" z="0.745"/> + <Dimensions width="2.16" length="5.27" height="1.49"/> + </BoundingBox> + <Performance maxSpeed="69.44" maxAcceleration="9.80665" maxDeceleration="9.80665"/> + <Axles> + <FrontAxle maxSteering="0.5279" wheelDiameter="0.682" trackWidth="1.8" positionX="3.25" positionZ="0.341"/> + <RearAxle maxSteering="0.0" wheelDiameter="0.682" trackWidth="1.8" positionX="0.0" positionZ="0.341"/> + </Axles> + </Vehicle> + <Vehicle model3d="car_mini_cooper" mass="1235.0" name="car_mini_cooper" vehicleCategory="car"> + <Properties> + <Property name="AirDragCoefficient" value="0.3"/> + <Property name="AxleRatio" value="3.789"/> + <Property name="DecelerationFromPowertrainDrag" value="0.5"/> + <Property name="FrictionCoefficient" value="1.0"/> + <Property name="FrontSurface" value="2.07"/> + <Property name="GearRatio1" value="4.154"/> + <Property name="GearRatio2" value="2.45"/> + <Property name="GearRatio3" value="1.557"/> + <Property name="GearRatio4" value="1.09"/> + <Property name="GearRatio5" value="0.843"/> + <Property name="GearRatio6" value="0.675"/> + <Property name="GearRatio7" value="0.547"/> + <Property name="MaximumEngineSpeed" value="6000.0"/> + <Property name="MaximumEngineTorque" value="220.0"/> + <Property name="MinimumEngineSpeed" value="900.0"/> + <Property name="MinimumEngineTorque" value="-54.0"/> + <Property name="MomentInertiaPitch" value="0.0"/> + <Property name="MomentInertiaRoll" value="0.0"/> + <Property name="MomentInertiaYaw" value="0.0"/> + <Property name="NumberOfGears" value="7"/> + <Property name="SensorPosition/FrontCenter/Height" value="0.57"/> + <Property name="SensorPosition/FrontCenter/Lateral" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Longitudinal" value="3.22"/> + <Property name="SensorPosition/FrontCenter/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Roll" value="0.0"/> + <Property name="SensorPosition/FrontCenter/Yaw" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Height" value="0.65"/> + <Property name="SensorPosition/FrontLeft/Lateral" value="0.65"/> + <Property name="SensorPosition/FrontLeft/Longitudinal" value="3.05"/> + <Property name="SensorPosition/FrontLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Roll" value="0.0"/> + <Property name="SensorPosition/FrontLeft/Yaw" value="1.134464"/> + <Property name="SensorPosition/FrontRight/Height" value="0.65"/> + <Property name="SensorPosition/FrontRight/Lateral" value="-0.65"/> + <Property name="SensorPosition/FrontRight/Longitudinal" value="3.05"/> + <Property name="SensorPosition/FrontRight/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontRight/Roll" value="0.0"/> + <Property name="SensorPosition/FrontRight/Yaw" value="-1.134464"/> + <Property name="SensorPosition/FrontWindow/Height" value="1.28"/> + <Property name="SensorPosition/FrontWindow/Lateral" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Longitudinal" value="1.83"/> + <Property name="SensorPosition/FrontWindow/Pitch" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Roll" value="0.0"/> + <Property name="SensorPosition/FrontWindow/Yaw" value="0.0"/> + <Property name="SensorPosition/RearLeft/Height" value="0.6"/> + <Property name="SensorPosition/RearLeft/Lateral" value="0.7"/> + <Property name="SensorPosition/RearLeft/Longitudinal" value="-0.35"/> + <Property name="SensorPosition/RearLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/RearLeft/Roll" value="0.0"/> + <Property name="SensorPosition/RearLeft/Yaw" value="2.146755"/> + <Property name="SensorPosition/RearRight/Height" value="0.6"/> + <Property name="SensorPosition/RearRight/Lateral" value="-0.7"/> + <Property name="SensorPosition/RearRight/Longitudinal" value="-0.35"/> + <Property name="SensorPosition/RearRight/Pitch" value="0.0"/> + <Property name="SensorPosition/RearRight/Roll" value="0.0"/> + <Property name="SensorPosition/RearRight/Yaw" value="-2.146755"/> + <Property name="SensorPosition/RearWindow/Height" value="1.33"/> + <Property name="SensorPosition/RearWindow/Lateral" value="0.0"/> + <Property name="SensorPosition/RearWindow/Longitudinal" value="-0.08"/> + <Property name="SensorPosition/RearWindow/Pitch" value="0.0"/> + <Property name="SensorPosition/RearWindow/Roll" value="0.0"/> + <Property name="SensorPosition/RearWindow/Yaw" value="3.141592"/> + <Property name="SensorPosition/SideLeft/Height" value="0.26"/> + <Property name="SensorPosition/SideLeft/Lateral" value="0.81"/> + <Property name="SensorPosition/SideLeft/Longitudinal" value="1.06"/> + <Property name="SensorPosition/SideLeft/Pitch" value="0.0"/> + <Property name="SensorPosition/SideLeft/Roll" value="0.0"/> + <Property name="SensorPosition/SideLeft/Yaw" value="1.570796"/> + <Property name="SensorPosition/SideRight/Height" value="0.26"/> + <Property name="SensorPosition/SideRight/Lateral" value="-0.81"/> + <Property name="SensorPosition/SideRight/Longitudinal" value="1.06"/> + <Property name="SensorPosition/SideRight/Pitch" value="0.0"/> + <Property name="SensorPosition/SideRight/Roll" value="0.0"/> + <Property name="SensorPosition/SideRight/Yaw" value="-1.570796"/> + <Property name="SteeringRatio" value="10.7"/> + </Properties> + <BoundingBox> + <Center x="1.35" y="0.0" z="0.71"/> + <Dimensions width="1.89" length="3.8" height="1.42"/> + </BoundingBox> + <Performance maxSpeed="58.33" maxAcceleration="9.80665" maxDeceleration="9.80665"/> + <Axles> + <FrontAxle maxSteering="0.4766" wheelDiameter="0.59" trackWidth="1.8" positionX="2.48" positionZ="0.295"/> + <RearAxle maxSteering="0.0" wheelDiameter="0.59" trackWidth="1.8" positionX="0.0" positionZ="0.295"/> + </Axles> + </Vehicle> + <Vehicle model3d="car_oldtimer" mass="1525.0" name="car_oldtimer" vehicleCategory="car"> + <Properties> + <Property name="AirDragCoefficient" value="0.3"/> + <Property name="AxleRatio" value="2.813"/> + <Property name="DecelerationFromPowertrainDrag" value="0.5"/> + <Property name="FrictionCoefficient" value="1.0"/> + <Property name="FrontSurface" value="2.2"/> + <Property name="GearRatio1" value="5.0"/> + <Property name="GearRatio2" value="3.2"/> + <Property name="GearRatio3" value="2.143"/> + <Property name="GearRatio4" value="1.72"/> + <Property name="GearRatio5" value="1.314"/> + <Property name="GearRatio6" value="1.0"/> + <Property name="GearRatio7" value="0.822"/> + <Property name="GearRatio8" value="0.64"/> + <Property name="MaximumEngineSpeed" value="6000.0"/> + <Property name="MaximumEngineTorque" value="270.0"/> + <Property name="MinimumEngineSpeed" value="900.0"/> + <Property name="MinimumEngineTorque" value="-54.0"/> + <Property name="MomentInertiaPitch" value="0.0"/> + <Property name="MomentInertiaRoll" value="0.0"/> + <Property name="MomentInertiaYaw" value="0.0"/> + <Property name="NumberOfGears" value="8"/> + <Property name="SteeringRatio" value="10.7"/> + </Properties> + <BoundingBox> + <Center x="1.2" y="0.0" z="0.675"/> + <Dimensions width="1.68" length="3.89" height="1.35"/> + </BoundingBox> + <Performance maxSpeed="40.0" maxAcceleration="9.80665" maxDeceleration="9.80665"/> + <Axles> + <FrontAxle maxSteering="0.5012" wheelDiameter="0.634" trackWidth="1.4" positionX="2.81" positionZ="0.317"/> + <RearAxle maxSteering="0.0" wheelDiameter="0.634" trackWidth="1.4" positionX="0.0" positionZ="0.317"/> + </Axles> + </Vehicle> + <Vehicle model3d="bus" mass="25000.0" name="bus" vehicleCategory="truck"> + <Properties> + <Property name="AirDragCoefficient" value="0.8"/> + <Property name="AxleRatio" value="4.0"/> + <Property name="DecelerationFromPowertrainDrag" value="1.0"/> + <Property name="FrictionCoefficient" value="1.0"/> + <Property name="FrontSurface" value="9.0"/> + <Property name="GearRatio1" value="6.316"/> + <Property name="GearRatio2" value="4.554"/> + <Property name="GearRatio3" value="3.269"/> + <Property name="GearRatio4" value="2.352"/> + <Property name="GearRatio5" value="1.692"/> + <Property name="GearRatio6" value="1.217"/> + <Property name="GearRatio7" value="0.876"/> + <Property name="GearRatio8" value="0.630"/> + <Property name="MaximumEngineSpeed" value="2500.0"/> + <Property name="MaximumEngineTorque" value="1400.0"/> + <Property name="MinimumEngineSpeed" value="600.0"/> + <Property name="MinimumEngineTorque" value="-140.0"/> + <Property name="MomentInertiaPitch" value="0.0"/> + <Property name="MomentInertiaRoll" value="0.0"/> + <Property name="MomentInertiaYaw" value="0.0"/> + <Property name="NumberOfGears" value="8"/> + <Property name="SteeringRatio" value="15.0"/> + </Properties> + <BoundingBox> + <Center x="2.815" y="0.0" z="1.92"/> + <Dimensions width="2.91" length="13.23" height="3.84"/> + </BoundingBox> + <Performance maxSpeed="33.33" maxAcceleration="9.80665" maxDeceleration="9.80665"/> + <Axles> + <FrontAxle maxSteering="0.6972" wheelDiameter="0.808" trackWidth="1.8" positionX="6.64" positionZ="0.404"/> + <RearAxle maxSteering="0.0" wheelDiameter="0.808" trackWidth="1.8" positionX="0.0" positionZ="0.404"/> + </Axles> + </Vehicle> + <Vehicle model3d="truck" mass="30000.0" name="truck" vehicleCategory="truck"> + <Properties> + <Property name="AirDragCoefficient" value="0.8"/> + <Property name="AxleRatio" value="4.0"/> + <Property name="DecelerationFromPowertrainDrag" value="1.0"/> + <Property name="FrictionCoefficient" value="1.0"/> + <Property name="FrontSurface" value="9.0"/> + <Property name="GearRatio1" value="6.316"/> + <Property name="GearRatio2" value="4.554"/> + <Property name="GearRatio3" value="3.269"/> + <Property name="GearRatio4" value="2.352"/> + <Property name="GearRatio5" value="1.692"/> + <Property name="GearRatio6" value="1.217"/> + <Property name="GearRatio7" value="0.876"/> + <Property name="GearRatio8" value="0.630"/> + <Property name="MaximumEngineSpeed" value="2500.0"/> + <Property name="MaximumEngineTorque" value="1400.0"/> + <Property name="MinimumEngineSpeed" value="600.0"/> + <Property name="MinimumEngineTorque" value="-140.0"/> + <Property name="MomentInertiaPitch" value="0.0"/> + <Property name="MomentInertiaRoll" value="0.0"/> + <Property name="MomentInertiaYaw" value="0.0"/> + <Property name="NumberOfGears" value="8"/> + <Property name="SteeringRatio" value="15.0"/> + </Properties> + <BoundingBox> + <Center x="2.685" y="0.0" z="1.74"/> + <Dimensions width="3.16" length="8.83" height="3.48"/> + </BoundingBox> + <Performance maxSpeed="25.0" maxAcceleration="9.80665" maxDeceleration="9.80665"/> + <Axles> + <FrontAxle maxSteering="0.4352" wheelDiameter="0.808" trackWidth="1.8" positionX="4.36" positionZ="0.404"/> + <RearAxle maxSteering="0.0" wheelDiameter="0.808" trackWidth="1.8" positionX="0.0" positionZ="0.404"/> + </Axles> + </Vehicle> + <Vehicle model3d="truck_lorry" mass="30000.0" name="truck_lorry" vehicleCategory="truck"> + <Properties> + <Property name="AirDragCoefficient" value="0.8"/> + <Property name="AxleRatio" value="4.0"/> + <Property name="DecelerationFromPowertrainDrag" value="1.0"/> + <Property name="FrictionCoefficient" value="1.0"/> + <Property name="FrontSurface" value="9.0"/> + <Property name="GearRatio1" value="6.316"/> + <Property name="GearRatio2" value="4.554"/> + <Property name="GearRatio3" value="3.269"/> + <Property name="GearRatio4" value="2.352"/> + <Property name="GearRatio5" value="1.692"/> + <Property name="GearRatio6" value="1.217"/> + <Property name="GearRatio7" value="0.876"/> + <Property name="GearRatio8" value="0.630"/> + <Property name="MaximumEngineSpeed" value="2500.0"/> + <Property name="MaximumEngineTorque" value="1400.0"/> + <Property name="MinimumEngineSpeed" value="600.0"/> + <Property name="MinimumEngineTorque" value="-140.0"/> + <Property name="MomentInertiaPitch" value="0.0"/> + <Property name="MomentInertiaRoll" value="0.0"/> + <Property name="MomentInertiaYaw" value="0.0"/> + <Property name="NumberOfGears" value="8"/> + <Property name="SteeringRatio" value="15.0"/> + </Properties> + <BoundingBox> + <Center x="2.11" y="0.0" z="1.7"/> + <Dimensions width="2.93" length="8.47" height="3.4"/> + </BoundingBox> + <Performance maxSpeed="25.0" maxAcceleration="9.80665" maxDeceleration="9.80665"/> + <Axles> + <FrontAxle maxSteering="0.4352" wheelDiameter="0.808" trackWidth="1.8" positionX="4.36" positionZ="0.404"/> + <RearAxle maxSteering="0.0" wheelDiameter="0.808" trackWidth="1.8" positionX="0.0" positionZ="0.404"/> + </Axles> + </Vehicle> + <Vehicle model3d="bicycle" mass="90.0" name="bicycle" vehicleCategory="bicycle"> + <Properties> + <Property name="AirDragCoefficient" value="0.3"/> + <Property name="AxleRatio" value="3.0"/> + <Property name="DecelerationFromPowertrainDrag" value="0.5"/> + <Property name="FrictionCoefficient" value="1.0"/> + <Property name="FrontSurface" value="1.9"/> + <Property name="GearRatio1" value="4.350"/> + <Property name="GearRatio2" value="2.496"/> + <Property name="GearRatio3" value="1.665"/> + <Property name="GearRatio4" value="1.230"/> + <Property name="GearRatio5" value="1.0"/> + <Property name="GearRatio6" value="0.851"/> + <Property name="MaximumEngineSpeed" value="6000.0"/> + <Property name="MaximumEngineTorque" value="540.0"/> + <Property name="MinimumEngineSpeed" value="900.0"/> + <Property name="MinimumEngineTorque" value="-54.0"/> + <Property name="MomentInertiaPitch" value="0.0"/> + <Property name="MomentInertiaRoll" value="0.0"/> + <Property name="MomentInertiaYaw" value="0.0"/> + <Property name="NumberOfGears" value="6"/> + <Property name="SteeringRatio" value="10.7"/> + </Properties> + <BoundingBox> + <Center x="0.175" y="0.0" z="0.9325"/> + <Dimensions width="0.5" length="1.89" height="1.865"/> + </BoundingBox> + <Performance maxSpeed="10.0" maxAcceleration="9.80665" maxDeceleration="9.80665"/> + <Axles> + <FrontAxle maxSteering="1.5708" wheelDiameter="0.636" trackWidth="0.1" positionX="1.04" positionZ="0.318"/> + <RearAxle maxSteering="0.0" wheelDiameter="0.636" trackWidth="0.1" positionX="0.0" positionZ="0.318"/> + </Axles> + </Vehicle> + </Catalog> +</OpenSCENARIO> diff --git a/content/html/_downloads/a4a21311d2dff77fb2513fe86367853b/ComponentsChannelCommunicationDiagram.drawio b/content/html/_downloads/a4a21311d2dff77fb2513fe86367853b/ComponentsChannelCommunicationDiagram.drawio index 23246550c00f5394bd040363977006cf3f4e7ea4..9cb3513a9872c85794981892055539ecdba812d9 100644 --- a/content/html/_downloads/a4a21311d2dff77fb2513fe86367853b/ComponentsChannelCommunicationDiagram.drawio +++ b/content/html/_downloads/a4a21311d2dff77fb2513fe86367853b/ComponentsChannelCommunicationDiagram.drawio @@ -1,539 +1,539 @@ -<mxfile host="Electron" modified="2023-05-22T13:45:58.476Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.8 Chrome/112.0.5615.165 Electron/24.2.0 Safari/537.36" etag="DOygV0EyC1M1q80Wg09K" version="21.2.8" type="device"> - <diagram name="Seite-1" id="JqXS-C5kY-0mzLJraBMg"> - <mxGraphModel dx="1098" dy="828" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> - <root> - <mxCell id="0" /> - <mxCell id="1" parent="0" /> - <mxCell id="oQRBRVreamrxgLVo8nZy-1" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-64" target="oQRBRVreamrxgLVo8nZy-20"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="189" y="770" as="targetPoint" /> - <mxPoint x="189" y="700" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="179" y="740" /> - <mxPoint x="100" y="740" /> - <mxPoint x="100" y="1067" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-2" value="Sensor[1]" style="whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="119.24" y="10" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-3" value="Sensor[2]" style="whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="249.18" y="10" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-4" value="Sensor[n]" style="whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;dashed=1;fontColor=#999999;" vertex="1" parent="1"> - <mxGeometry x="379.24" y="10" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-5" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-3" target="oQRBRVreamrxgLVo8nZy-75"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="189.24" y="80" as="sourcePoint" /> - <mxPoint x="309.24" y="150" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-6" value="9902" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-5"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="2" y="3" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-7" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-4" target="oQRBRVreamrxgLVo8nZy-75"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="319.24" y="80" as="sourcePoint" /> - <mxPoint x="169.24" y="170" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-8" value="9900+n" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-7"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="17" y="-13" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-9" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=10;startArrow=none;startFill=0;strokeWidth=3;endArrow=blockThin;endFill=1;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-75" target="oQRBRVreamrxgLVo8nZy-70"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="319.24" y="240" as="sourcePoint" /> - <mxPoint x="189.24" y="340" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-10" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=10;startArrow=none;startFill=0;strokeWidth=3;endArrow=blockThin;endFill=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="oQRBRVreamrxgLVo8nZy-71"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="309.24" y="230" as="sourcePoint" /> - <mxPoint x="319.24" y="340" as="targetPoint" /> - <Array as="points"> - <mxPoint x="309.24" y="280" /> - <mxPoint x="439.24" y="280" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-11" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-69" target="oQRBRVreamrxgLVo8nZy-66"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="190" y="170" as="targetPoint" /> - <mxPoint x="90" y="110" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="179" y="430" /> - <mxPoint x="149" y="430" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-12" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;dashed=1;dashPattern=1 1;strokeColor=#4D4D4D;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-70" target="oQRBRVreamrxgLVo8nZy-66"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="190" y="450" as="targetPoint" /> - <mxPoint x="90" y="390" as="sourcePoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-13" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#4D4D4D;dashed=1;dashPattern=1 1;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-71" target="oQRBRVreamrxgLVo8nZy-66"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="220" y="450" as="targetPoint" /> - <mxPoint x="350" y="380" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="439" y="446" /> - <mxPoint x="209" y="446" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-14" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-66" target="oQRBRVreamrxgLVo8nZy-64"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="189.3" y="450" as="targetPoint" /> - <mxPoint x="189.3" y="390" as="sourcePoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-15" value="2313" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-14"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="2" y="4" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-16" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-64" target="oQRBRVreamrxgLVo8nZy-61"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="189.3" y="595" as="targetPoint" /> - <mxPoint x="189.3" y="530" as="sourcePoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-17" value="1713" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-16"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="2" y="11" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-18" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-61" target="oQRBRVreamrxgLVo8nZy-60"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="220" y="740" as="targetPoint" /> - <mxPoint x="220" y="675" as="sourcePoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-19" value="1111" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-18"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="2" y="-53" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-20" value="<font style="border-color: var(--border-color); font-size: 10px;"><b style="border-color: var(--border-color);">Dynamics</b></font><br style="border-color: var(--border-color);">Trajectory<br style="border-color: var(--border-color);">Follower" style="whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="294" y="1026.62" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-21" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#4D4D4D;dashed=1;dashPattern=1 1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-71" target="oQRBRVreamrxgLVo8nZy-67"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="570" y="470" as="targetPoint" /> - <mxPoint x="350" y="400" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="440" y="440" /> - <mxPoint x="440" y="440" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-22" value="9292" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="305.18" y="405.9968998816636" as="geometry"> - <mxPoint x="-127" y="2" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-23" value="XY" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="439.24000000000007" y="411.00153846153836" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-24" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-74" target="oQRBRVreamrxgLVo8nZy-72"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="170" y="447" as="targetPoint" /> - <mxPoint x="170" y="387" as="sourcePoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-25" value="9581" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-24"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="2" y="-51" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-26" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-72" target="oQRBRVreamrxgLVo8nZy-63"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="989.62" y="730" as="targetPoint" /> - <mxPoint x="989.62" y="380" as="sourcePoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-27" value="4114" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-26"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="2" y="105" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-28" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-72" target="oQRBRVreamrxgLVo8nZy-68"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="999.62" y="740" as="targetPoint" /> - <mxPoint x="999.62" y="390" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="640" y="720" /> - <mxPoint x="767" y="720" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-29" value="4119" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-28"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="129" y="22" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-30" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-68" target="oQRBRVreamrxgLVo8nZy-65"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="1009.62" y="750" as="targetPoint" /> - <mxPoint x="1009.62" y="400" as="sourcePoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-31" value="3319" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-30"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="2" y="-67" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-32" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-2" target="oQRBRVreamrxgLVo8nZy-75"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="449.24" y="100" as="sourcePoint" /> - <mxPoint x="349.24" y="170" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-33" value="9901" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-32"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="-17" y="-17" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-34" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=10;startArrow=none;startFill=0;strokeWidth=3;endArrow=blockThin;endFill=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-75" target="oQRBRVreamrxgLVo8nZy-69"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="319.24" y="240" as="sourcePoint" /> - <mxPoint x="449.24" y="322" as="targetPoint" /> - <Array as="points"> - <mxPoint x="309.24" y="280" /> - <mxPoint x="179.24" y="280" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-35" value="9940" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="296.24000000000007" y="252.99818181818188" as="geometry"> - <mxPoint x="14" y="4" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-36" value="XY" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="276.76000000000005" y="410.9981818181819" as="geometry"> - <mxPoint x="32" y="-3" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-37" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-62" target="oQRBRVreamrxgLVo8nZy-60"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="360" y="972" as="targetPoint" /> - <mxPoint x="220" y="862" as="sourcePoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-38" value="1111" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-37"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="-128" y="4" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-39" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-60" target="oQRBRVreamrxgLVo8nZy-56"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="220" y="1150" as="targetPoint" /> - <mxPoint x="610" y="862" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="245" y="1220" /> - <mxPoint x="245" y="1220" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-40" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.25;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-60" target="oQRBRVreamrxgLVo8nZy-57"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="350" y="1082" as="targetPoint" /> - <mxPoint x="480" y="990" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="245" y="1000" /> - <mxPoint x="480" y="1000" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-41" value="2111" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-40"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="-68" y="-17" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-42" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-72" target="oQRBRVreamrxgLVo8nZy-62"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="660" y="730" as="targetPoint" /> - <mxPoint x="610" y="862" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="580" y="710" /> - <mxPoint x="340" y="710" /> - <mxPoint x="340" y="760" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-43" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-67" target="oQRBRVreamrxgLVo8nZy-59"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="770" y="920" as="targetPoint" /> - <mxPoint x="669.9999999999999" y="520" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="439" y="870" /> - <mxPoint x="480" y="870" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-44" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-63" target="oQRBRVreamrxgLVo8nZy-59"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="1130" y="632" as="targetPoint" /> - <mxPoint x="1130" y="560" as="sourcePoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-45" value="1512" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-44"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="2" y="-51" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-46" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-59" target="oQRBRVreamrxgLVo8nZy-57"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="836" y="932" as="targetPoint" /> - <mxPoint x="1000" y="862" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="510" y="1010" /> - <mxPoint x="510" y="1010" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-47" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-20" target="oQRBRVreamrxgLVo8nZy-55"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="313.76" y="829.62" as="targetPoint" /> - <mxPoint x="173.76" y="719.62" as="sourcePoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-48" value="201" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-47"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="-22" y="-4" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-49" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-58" target="oQRBRVreamrxgLVo8nZy-55"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="593.76" y="938.62" as="targetPoint" /> - <mxPoint x="759.76" y="869.62" as="sourcePoint" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-50" value="401" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-49"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="26" y="-80" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-51" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-57" target="oQRBRVreamrxgLVo8nZy-55"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="333.76" y="1047.62" as="targetPoint" /> - <mxPoint x="373.76" y="869.62" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="523.76" y="1087.62" /> - <mxPoint x="523.76" y="1087.62" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-52" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-55" target="oQRBRVreamrxgLVo8nZy-54"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="173.76" y="1207.62" as="targetPoint" /> - <mxPoint x="563.76" y="1018.62" as="sourcePoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-53" value="501" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="150.9956501265408" y="1097.0039696041172" as="geometry"> - <mxPoint x="372" y="140" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-54" value="Agent<br>Updater" style="whiteSpace=wrap;html=1;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="463.76" y="1270" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-55" value="<font style="font-size: 10px"><b>Prioritizer</b></font><br style="font-size: 16px">Dynamics" style="whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="463.76" y="1141.62" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-56" value="<font style="border-color: var(--border-color); font-size: 10px;"><b style="border-color: var(--border-color);">Action</b></font><br style="border-color: var(--border-color);">Longitudinal<br style="border-color: var(--border-color);">Driver<span style="font-size: 10px;"><b><br></b></span>" style="whiteSpace=wrap;html=1;fillColor=#cdeb8b;strokeColor=#36393d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="185.18" y="1270" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-57" value="<font style="font-size: 10px"><b>Dynamics</b></font><br style="font-size: 16px">Regular<br style="font-size: 16px">Driving" style="whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="450" y="1026.62" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-58" value="<font style="font-size: 10px"><b>Dynamics</b></font><br style="font-size: 16px">Collision" style="whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="603.76" y="1026.62" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-59" value="<font style="font-size: 10px"><b>Prioritizer</b></font><br style="font-size: 16px">Steering" style="whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="450" y="890" width="119.88" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-60" value="<font style="font-size: 10px"><b>Prioritizer</b></font><br style="font-size: 16px">Longitudinal" style="whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="185.18000000000006" y="890" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-61" value="<font style="font-size: 10px"><b>Algorithm</b></font><br style="font-size: 16px">Longitudinal<br style="font-size: 16px">Vehicle<br style="font-size: 16px">Components" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontFamily=Helvetica;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="119.24" y="760" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-62" value="<font style="font-size: 10px"><b>Algorithm</b></font><br style="font-size: 16px">Longitudinal<br style="font-size: 16px">Afdm" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontFamily=Helvetica;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="249.18" y="760" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-63" value="<font style="font-size: 10px"><b>Algorithm</b></font><br style="font-size: 16px">Lateral<br style="font-size: 16px">Afdm" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontFamily=Helvetica;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="550" y="770" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-64" value="<font style="font-size: 10px"><b>Limiter<br></b></font>Acceleration<br style="font-size: 16px">Vehicle<br style="font-size: 16px">Components" style="whiteSpace=wrap;html=1;fillColor=#d0cee2;strokeColor=#56517e;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="119.24" y="610" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-65" value="<font style="border-color: var(--border-color); font-size: 10px;"><b style="border-color: var(--border-color);">Action</b></font><br style="border-color: var(--border-color);">Secondary<br style="border-color: var(--border-color);">Driver<br>Tasks<span style="font-size: 10px;"><b><br></b></span>" style="whiteSpace=wrap;html=1;fillColor=#cdeb8b;strokeColor=#36393d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;gradientColor=none;" vertex="1" parent="1"> - <mxGeometry x="707" y="1270" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-66" value="<font style="font-size: 10px"><b>Prioritizer<br></b></font>Acceleration<br style="font-size: 16px">Vehicle<br style="font-size: 16px">Components" style="whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445D;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="119.24" y="470" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-67" value="<font style="font-size: 10px"><b>Prioritizer</b></font><br style="font-size: 16px">Steering<br style="font-size: 16px">Vehicle<br style="font-size: 16px">Components" style="whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="379.24" y="473" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-68" value="<font style="font-size: 10px"><b>Prioritizer</b></font><br style="font-size: 16px">Turning<br>Indicator" style="whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="707" y="900" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-69" value="AEB" style="whiteSpace=wrap;html=1;fillColor=#D5E8D4;strokeColor=#82b366;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="119.24" y="310" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-70" value="ADAS1" style="whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;fillStyle=auto;dashed=1;fontColor=#999999;" vertex="1" parent="1"> - <mxGeometry x="249.18" y="310" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-71" value="ADAS2" style="whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;fontColor=#999999;dashed=1;" vertex="1" parent="1"> - <mxGeometry x="379.24" y="312" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-72" value="<font style="font-size: 10px"><b>Algorithm</b></font><br style="font-size: 16px">Agent<br style="font-size: 16px">Following<br style="font-size: 16px">DriverModel" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontFamily=Helvetica;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="550" y="470" width="120" height="83" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-73" value="Parameters<br>Vehicle" style="whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="700" y="160" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-74" value="Sensor<br>Driver" style="whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="550" y="160" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-75" value="Sensor<br>Fusion<br>Errorless" style="whiteSpace=wrap;html=1;fillColor=#FFF2CC;strokeColor=#D6B656;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> - <mxGeometry x="249.18" y="160" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-76" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="oQRBRVreamrxgLVo8nZy-64"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="208.48000000000002" y="610" as="targetPoint" /> - <mxPoint x="230" y="590" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="230" y="590" /> - <mxPoint x="209" y="590" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-77" value="9292<br>âš™ï¸" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-76"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="28" y="-8" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-78" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="760" y="290" as="targetPoint" /> - <mxPoint x="759.71" y="240" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="759.71" y="270" /> - <mxPoint x="759.71" y="270" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-79" value="âš™ï¸<br>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-78"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="2" y="47" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-80" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="oQRBRVreamrxgLVo8nZy-61"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="210" y="760" as="targetPoint" /> - <mxPoint x="231" y="740" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="209" y="740" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-81" value="9292<br>âš™ï¸" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-80"> - <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> - <mxPoint x="18" y="-8" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-82" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="oQRBRVreamrxgLVo8nZy-62"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="320" y="760" as="targetPoint" /> - <mxPoint x="300" y="740" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="280" y="740" /> - <mxPoint x="280" y="760" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-83" value="9292<br>âš™ï¸" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="350.0011111111111" y="734" as="geometry"> - <mxPoint x="-45" y="-4" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-84" value="âš™ï¸" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="580.0044444444445" y="726" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-85" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="oQRBRVreamrxgLVo8nZy-63"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="570" y="770" as="targetPoint" /> - <mxPoint x="580" y="740" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="580" y="750" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-86" value="2212" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="510.00327772580374" y="979.9952621871091" as="geometry"> - <mxPoint x="-1" y="10" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-87" value="<span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">9292</span>" style="text;whiteSpace=wrap;html=1;" vertex="1" parent="1"> - <mxGeometry x="742" y="244" width="40" height="20" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-88" value="1512" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="619.0228779737247" y="865.7146475998175" as="geometry"> - <mxPoint x="-10" y="4" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-89" value="9292<br>âš™ï¸" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="439.2371428571429" y="920" as="geometry"> - <mxPoint x="132" y="78" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-90" value="<font style="font-size: 14px;">9292</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> - <mxGeometry x="527" y="711" width="50" height="30" as="geometry" /> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-91" value="301" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="406.76281805312783" y="1139.0857142857144" as="geometry"> - <mxPoint x="116" y="-16" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-92" value="401" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="547.0028180531278" y="1141.6157142857144" as="geometry"> - <mxPoint x="116" y="-16" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-93" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="oQRBRVreamrxgLVo8nZy-57"> - <mxGeometry relative="1" as="geometry"> - <mxPoint x="289" y="770" as="targetPoint" /> - <mxPoint x="560" y="1010" as="sourcePoint" /> - <Array as="points"> - <mxPoint x="540" y="1010" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-94" value="1211" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="179.24000799999877" y="880" as="geometry"> - <mxPoint x="131" y="-18" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-95" value="2414" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> - <mxGeometry x="249.18000799999876" y="1066.62" as="geometry"> - <mxPoint x="188" y="-201" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="oQRBRVreamrxgLVo8nZy-96" value="<span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">4113</span>" style="text;whiteSpace=wrap;html=1;" vertex="1" parent="1"> - <mxGeometry x="324" y="708" width="60" height="40" as="geometry" /> - </mxCell> - </root> - </mxGraphModel> - </diagram> -</mxfile> +<mxfile host="Electron" modified="2023-05-22T13:45:58.476Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.8 Chrome/112.0.5615.165 Electron/24.2.0 Safari/537.36" etag="DOygV0EyC1M1q80Wg09K" version="21.2.8" type="device"> + <diagram name="Seite-1" id="JqXS-C5kY-0mzLJraBMg"> + <mxGraphModel dx="1098" dy="828" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="oQRBRVreamrxgLVo8nZy-1" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-64" target="oQRBRVreamrxgLVo8nZy-20"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="189" y="770" as="targetPoint" /> + <mxPoint x="189" y="700" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="179" y="740" /> + <mxPoint x="100" y="740" /> + <mxPoint x="100" y="1067" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-2" value="Sensor[1]" style="whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="119.24" y="10" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-3" value="Sensor[2]" style="whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="249.18" y="10" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-4" value="Sensor[n]" style="whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;dashed=1;fontColor=#999999;" vertex="1" parent="1"> + <mxGeometry x="379.24" y="10" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-5" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-3" target="oQRBRVreamrxgLVo8nZy-75"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="189.24" y="80" as="sourcePoint" /> + <mxPoint x="309.24" y="150" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-6" value="9902" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-5"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="2" y="3" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-7" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-4" target="oQRBRVreamrxgLVo8nZy-75"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="319.24" y="80" as="sourcePoint" /> + <mxPoint x="169.24" y="170" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-8" value="9900+n" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-7"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="17" y="-13" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-9" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=10;startArrow=none;startFill=0;strokeWidth=3;endArrow=blockThin;endFill=1;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-75" target="oQRBRVreamrxgLVo8nZy-70"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="319.24" y="240" as="sourcePoint" /> + <mxPoint x="189.24" y="340" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-10" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=10;startArrow=none;startFill=0;strokeWidth=3;endArrow=blockThin;endFill=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="oQRBRVreamrxgLVo8nZy-71"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="309.24" y="230" as="sourcePoint" /> + <mxPoint x="319.24" y="340" as="targetPoint" /> + <Array as="points"> + <mxPoint x="309.24" y="280" /> + <mxPoint x="439.24" y="280" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-11" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-69" target="oQRBRVreamrxgLVo8nZy-66"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="190" y="170" as="targetPoint" /> + <mxPoint x="90" y="110" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="179" y="430" /> + <mxPoint x="149" y="430" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-12" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;dashed=1;dashPattern=1 1;strokeColor=#4D4D4D;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-70" target="oQRBRVreamrxgLVo8nZy-66"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="190" y="450" as="targetPoint" /> + <mxPoint x="90" y="390" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-13" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#4D4D4D;dashed=1;dashPattern=1 1;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-71" target="oQRBRVreamrxgLVo8nZy-66"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="220" y="450" as="targetPoint" /> + <mxPoint x="350" y="380" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="439" y="446" /> + <mxPoint x="209" y="446" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-14" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-66" target="oQRBRVreamrxgLVo8nZy-64"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="189.3" y="450" as="targetPoint" /> + <mxPoint x="189.3" y="390" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-15" value="2313" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-14"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="2" y="4" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-16" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-64" target="oQRBRVreamrxgLVo8nZy-61"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="189.3" y="595" as="targetPoint" /> + <mxPoint x="189.3" y="530" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-17" value="1713" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-16"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="2" y="11" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-18" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-61" target="oQRBRVreamrxgLVo8nZy-60"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="220" y="740" as="targetPoint" /> + <mxPoint x="220" y="675" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-19" value="1111" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-18"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="2" y="-53" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-20" value="<font style="border-color: var(--border-color); font-size: 10px;"><b style="border-color: var(--border-color);">Dynamics</b></font><br style="border-color: var(--border-color);">Trajectory<br style="border-color: var(--border-color);">Follower" style="whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="294" y="1026.62" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-21" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeColor=#4D4D4D;dashed=1;dashPattern=1 1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-71" target="oQRBRVreamrxgLVo8nZy-67"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="570" y="470" as="targetPoint" /> + <mxPoint x="350" y="400" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="440" y="440" /> + <mxPoint x="440" y="440" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-22" value="9292" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="305.18" y="405.9968998816636" as="geometry"> + <mxPoint x="-127" y="2" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-23" value="XY" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="439.24000000000007" y="411.00153846153836" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-24" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-74" target="oQRBRVreamrxgLVo8nZy-72"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="170" y="447" as="targetPoint" /> + <mxPoint x="170" y="387" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-25" value="9581" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-24"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="2" y="-51" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-26" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-72" target="oQRBRVreamrxgLVo8nZy-63"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="989.62" y="730" as="targetPoint" /> + <mxPoint x="989.62" y="380" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-27" value="4114" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-26"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="2" y="105" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-28" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-72" target="oQRBRVreamrxgLVo8nZy-68"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="999.62" y="740" as="targetPoint" /> + <mxPoint x="999.62" y="390" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="640" y="720" /> + <mxPoint x="767" y="720" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-29" value="4119" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-28"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="129" y="22" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-30" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-68" target="oQRBRVreamrxgLVo8nZy-65"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="1009.62" y="750" as="targetPoint" /> + <mxPoint x="1009.62" y="400" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-31" value="3319" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-30"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="2" y="-67" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-32" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-2" target="oQRBRVreamrxgLVo8nZy-75"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="449.24" y="100" as="sourcePoint" /> + <mxPoint x="349.24" y="170" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-33" value="9901" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-32"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="-17" y="-17" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-34" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=10;startArrow=none;startFill=0;strokeWidth=3;endArrow=blockThin;endFill=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-75" target="oQRBRVreamrxgLVo8nZy-69"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="319.24" y="240" as="sourcePoint" /> + <mxPoint x="449.24" y="322" as="targetPoint" /> + <Array as="points"> + <mxPoint x="309.24" y="280" /> + <mxPoint x="179.24" y="280" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-35" value="9940" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="296.24000000000007" y="252.99818181818188" as="geometry"> + <mxPoint x="14" y="4" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-36" value="XY" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="276.76000000000005" y="410.9981818181819" as="geometry"> + <mxPoint x="32" y="-3" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-37" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-62" target="oQRBRVreamrxgLVo8nZy-60"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="360" y="972" as="targetPoint" /> + <mxPoint x="220" y="862" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-38" value="1111" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-37"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="-128" y="4" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-39" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-60" target="oQRBRVreamrxgLVo8nZy-56"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="220" y="1150" as="targetPoint" /> + <mxPoint x="610" y="862" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="245" y="1220" /> + <mxPoint x="245" y="1220" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-40" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.25;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-60" target="oQRBRVreamrxgLVo8nZy-57"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="350" y="1082" as="targetPoint" /> + <mxPoint x="480" y="990" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="245" y="1000" /> + <mxPoint x="480" y="1000" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-41" value="2111" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-40"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="-68" y="-17" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-42" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-72" target="oQRBRVreamrxgLVo8nZy-62"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="660" y="730" as="targetPoint" /> + <mxPoint x="610" y="862" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="580" y="710" /> + <mxPoint x="340" y="710" /> + <mxPoint x="340" y="760" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-43" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-67" target="oQRBRVreamrxgLVo8nZy-59"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="770" y="920" as="targetPoint" /> + <mxPoint x="669.9999999999999" y="520" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="439" y="870" /> + <mxPoint x="480" y="870" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-44" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-63" target="oQRBRVreamrxgLVo8nZy-59"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="1130" y="632" as="targetPoint" /> + <mxPoint x="1130" y="560" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-45" value="1512" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-44"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="2" y="-51" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-46" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-59" target="oQRBRVreamrxgLVo8nZy-57"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="836" y="932" as="targetPoint" /> + <mxPoint x="1000" y="862" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="510" y="1010" /> + <mxPoint x="510" y="1010" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-47" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-20" target="oQRBRVreamrxgLVo8nZy-55"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="313.76" y="829.62" as="targetPoint" /> + <mxPoint x="173.76" y="719.62" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-48" value="201" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-47"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="-22" y="-4" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-49" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-58" target="oQRBRVreamrxgLVo8nZy-55"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="593.76" y="938.62" as="targetPoint" /> + <mxPoint x="759.76" y="869.62" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-50" value="401" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-49"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="26" y="-80" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-51" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-57" target="oQRBRVreamrxgLVo8nZy-55"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="333.76" y="1047.62" as="targetPoint" /> + <mxPoint x="373.76" y="869.62" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="523.76" y="1087.62" /> + <mxPoint x="523.76" y="1087.62" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-52" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;" edge="1" parent="1" source="oQRBRVreamrxgLVo8nZy-55" target="oQRBRVreamrxgLVo8nZy-54"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="173.76" y="1207.62" as="targetPoint" /> + <mxPoint x="563.76" y="1018.62" as="sourcePoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-53" value="501" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="150.9956501265408" y="1097.0039696041172" as="geometry"> + <mxPoint x="372" y="140" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-54" value="Agent<br>Updater" style="whiteSpace=wrap;html=1;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="463.76" y="1270" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-55" value="<font style="font-size: 10px"><b>Prioritizer</b></font><br style="font-size: 16px">Dynamics" style="whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="463.76" y="1141.62" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-56" value="<font style="border-color: var(--border-color); font-size: 10px;"><b style="border-color: var(--border-color);">Action</b></font><br style="border-color: var(--border-color);">Longitudinal<br style="border-color: var(--border-color);">Driver<span style="font-size: 10px;"><b><br></b></span>" style="whiteSpace=wrap;html=1;fillColor=#cdeb8b;strokeColor=#36393d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="185.18" y="1270" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-57" value="<font style="font-size: 10px"><b>Dynamics</b></font><br style="font-size: 16px">Regular<br style="font-size: 16px">Driving" style="whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="450" y="1026.62" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-58" value="<font style="font-size: 10px"><b>Dynamics</b></font><br style="font-size: 16px">Collision" style="whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="603.76" y="1026.62" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-59" value="<font style="font-size: 10px"><b>Prioritizer</b></font><br style="font-size: 16px">Steering" style="whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="450" y="890" width="119.88" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-60" value="<font style="font-size: 10px"><b>Prioritizer</b></font><br style="font-size: 16px">Longitudinal" style="whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="185.18000000000006" y="890" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-61" value="<font style="font-size: 10px"><b>Algorithm</b></font><br style="font-size: 16px">Longitudinal<br style="font-size: 16px">Vehicle<br style="font-size: 16px">Components" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontFamily=Helvetica;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="119.24" y="760" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-62" value="<font style="font-size: 10px"><b>Algorithm</b></font><br style="font-size: 16px">Longitudinal<br style="font-size: 16px">Afdm" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontFamily=Helvetica;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="249.18" y="760" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-63" value="<font style="font-size: 10px"><b>Algorithm</b></font><br style="font-size: 16px">Lateral<br style="font-size: 16px">Afdm" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontFamily=Helvetica;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="550" y="770" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-64" value="<font style="font-size: 10px"><b>Limiter<br></b></font>Acceleration<br style="font-size: 16px">Vehicle<br style="font-size: 16px">Components" style="whiteSpace=wrap;html=1;fillColor=#d0cee2;strokeColor=#56517e;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="119.24" y="610" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-65" value="<font style="border-color: var(--border-color); font-size: 10px;"><b style="border-color: var(--border-color);">Action</b></font><br style="border-color: var(--border-color);">Secondary<br style="border-color: var(--border-color);">Driver<br>Tasks<span style="font-size: 10px;"><b><br></b></span>" style="whiteSpace=wrap;html=1;fillColor=#cdeb8b;strokeColor=#36393d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;gradientColor=none;" vertex="1" parent="1"> + <mxGeometry x="707" y="1270" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-66" value="<font style="font-size: 10px"><b>Prioritizer<br></b></font>Acceleration<br style="font-size: 16px">Vehicle<br style="font-size: 16px">Components" style="whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445D;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="119.24" y="470" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-67" value="<font style="font-size: 10px"><b>Prioritizer</b></font><br style="font-size: 16px">Steering<br style="font-size: 16px">Vehicle<br style="font-size: 16px">Components" style="whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="379.24" y="473" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-68" value="<font style="font-size: 10px"><b>Prioritizer</b></font><br style="font-size: 16px">Turning<br>Indicator" style="whiteSpace=wrap;html=1;fillColor=#bac8d3;strokeColor=#23445d;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="707" y="900" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-69" value="AEB" style="whiteSpace=wrap;html=1;fillColor=#D5E8D4;strokeColor=#82b366;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="119.24" y="310" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-70" value="ADAS1" style="whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;fillStyle=auto;dashed=1;fontColor=#999999;" vertex="1" parent="1"> + <mxGeometry x="249.18" y="310" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-71" value="ADAS2" style="whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;fontColor=#999999;dashed=1;" vertex="1" parent="1"> + <mxGeometry x="379.24" y="312" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-72" value="<font style="font-size: 10px"><b>Algorithm</b></font><br style="font-size: 16px">Agent<br style="font-size: 16px">Following<br style="font-size: 16px">DriverModel" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontFamily=Helvetica;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="550" y="470" width="120" height="83" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-73" value="Parameters<br>Vehicle" style="whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="700" y="160" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-74" value="Sensor<br>Driver" style="whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="550" y="160" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-75" value="Sensor<br>Fusion<br>Errorless" style="whiteSpace=wrap;html=1;fillColor=#FFF2CC;strokeColor=#D6B656;fontSize=16;fontFamily=Helvetica;rounded=1;glass=0;sketch=0;shadow=1;" vertex="1" parent="1"> + <mxGeometry x="249.18" y="160" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-76" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="oQRBRVreamrxgLVo8nZy-64"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="208.48000000000002" y="610" as="targetPoint" /> + <mxPoint x="230" y="590" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="230" y="590" /> + <mxPoint x="209" y="590" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-77" value="9292<br>âš™ï¸" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-76"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="28" y="-8" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-78" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="760" y="290" as="targetPoint" /> + <mxPoint x="759.71" y="240" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="759.71" y="270" /> + <mxPoint x="759.71" y="270" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-79" value="âš™ï¸<br>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-78"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="2" y="47" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-80" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="oQRBRVreamrxgLVo8nZy-61"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="210" y="760" as="targetPoint" /> + <mxPoint x="231" y="740" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="209" y="740" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-81" value="9292<br>âš™ï¸" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="oQRBRVreamrxgLVo8nZy-80"> + <mxGeometry x="-0.382" y="-2" relative="1" as="geometry"> + <mxPoint x="18" y="-8" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-82" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="oQRBRVreamrxgLVo8nZy-62"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="320" y="760" as="targetPoint" /> + <mxPoint x="300" y="740" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="280" y="740" /> + <mxPoint x="280" y="760" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-83" value="9292<br>âš™ï¸" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="350.0011111111111" y="734" as="geometry"> + <mxPoint x="-45" y="-4" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-84" value="âš™ï¸" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="580.0044444444445" y="726" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-85" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="oQRBRVreamrxgLVo8nZy-63"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="570" y="770" as="targetPoint" /> + <mxPoint x="580" y="740" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="580" y="750" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-86" value="2212" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="510.00327772580374" y="979.9952621871091" as="geometry"> + <mxPoint x="-1" y="10" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-87" value="<span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">9292</span>" style="text;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="742" y="244" width="40" height="20" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-88" value="1512" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="619.0228779737247" y="865.7146475998175" as="geometry"> + <mxPoint x="-10" y="4" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-89" value="9292<br>âš™ï¸" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="439.2371428571429" y="920" as="geometry"> + <mxPoint x="132" y="78" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-90" value="<font style="font-size: 14px;">9292</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="527" y="711" width="50" height="30" as="geometry" /> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-91" value="301" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="406.76281805312783" y="1139.0857142857144" as="geometry"> + <mxPoint x="116" y="-16" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-92" value="401" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="547.0028180531278" y="1141.6157142857144" as="geometry"> + <mxPoint x="116" y="-16" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-93" style="edgeStyle=orthogonalEdgeStyle;html=1;fontFamily=Helvetica;fontSize=16;endArrow=blockThin;endFill=1;strokeWidth=3;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="oQRBRVreamrxgLVo8nZy-57"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="289" y="770" as="targetPoint" /> + <mxPoint x="560" y="1010" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="540" y="1010" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-94" value="1211" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="179.24000799999877" y="880" as="geometry"> + <mxPoint x="131" y="-18" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-95" value="2414" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Helvetica;labelBackgroundColor=default;" vertex="1" connectable="0" parent="1"> + <mxGeometry x="249.18000799999876" y="1066.62" as="geometry"> + <mxPoint x="188" y="-201" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="oQRBRVreamrxgLVo8nZy-96" value="<span style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">4113</span>" style="text;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="324" y="708" width="60" height="40" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> diff --git a/content/html/_downloads/a65389c511a382161f2a161fdf5ea53f/devcontainer.json b/content/html/_downloads/a65389c511a382161f2a161fdf5ea53f/devcontainer.json index bfdaf3e462953961e8abc1ca543e7ed652f4cf41..c7a38f16d1d860d5001e1e76c3d57741b24d418b 100644 --- a/content/html/_downloads/a65389c511a382161f2a161fdf5ea53f/devcontainer.json +++ b/content/html/_downloads/a65389c511a382161f2a161fdf5ea53f/devcontainer.json @@ -1,5 +1,5 @@ -{ - "name": "openPASS DevContainer", - "dockerFile": "../utils/Dockerfile", - "workspaceFolder": "/workspaces/openPASS" -} +{ + "name": "openPASS DevContainer", + "dockerFile": "../utils/Dockerfile", + "workspaceFolder": "/workspaces/openPASS" +} diff --git a/content/html/_downloads/c182e909c0bef397a2a7e7c51c6f7763/conf.py b/content/html/_downloads/c182e909c0bef397a2a7e7c51c6f7763/conf.py index 1b5a74d9361f8ddbaa85af62cdf6171ca51f6748..2c83d9e7ac7317c2f2349bbb753cb63268e1958d 100644 --- a/content/html/_downloads/c182e909c0bef397a2a7e7c51c6f7763/conf.py +++ b/content/html/_downloads/c182e909c0bef397a2a7e7c51c6f7763/conf.py @@ -1,95 +1,94 @@ -################################################################################ -# Copyright (c) 2021 in-tech GmbH -# 2023-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License 2.0 which is available at -# http://www.eclipse.org/legal/epl-2.0. -# -# SPDX-License-Identifier: EPL-2.0 -################################################################################ - -# Configuration file for the Sphinx documentation builder. See also: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -import os -import sys -import datetime - -# -- Path setup -------------------------------------------------------------- -sys.path.append(os.path.abspath("_ext")) - -# -- Project information ----------------------------------------------------- -project = 'openPASS' -copyright = f'{datetime.datetime.now().year} openPASS Working Group' -author = 'in-tech GmbH' - -# -- Version is generated via cmake -version_file = 'version.txt' -if os.path.exists(version_file): - with open(version_file) as vf: - version = vf.read().strip() - release = version - -# -- General configuration --------------------------------------------------- - - -def setup(app): - app.add_css_file('css/custom.css') - - -extensions = [] - -extensions.append("sphinx_rtd_theme") -extensions.append('sphinx.ext.todo') -extensions.append('sphinx_tabs.tabs') -extensions.append('sphinx.ext.imgmath') -extensions.append('api_doc') -extensions.append('myst_parser') - -templates_path = ['_templates'] - -exclude_patterns = ['README.md'] - -todo_include_todos = True - -pdf_stylesheets = ['sphinx', 'kerning', 'a4'] -pdf_style_path = ['.', '_styles'] -pdf_fit_mode = "shrink" # literal blocks wider than frame -pdf_language = "en_US" -pdf_page_template = 'cutePage' - -# -- Options for HTML output ------------------------------------------------- - -html_static_path = ['_static'] -html_theme = 'sphinx_rtd_theme' -html_title = 'openPASS Documentation' -html_short_title = 'openPASS|Doc' -html_favicon = '_static/openPASS.ico' -html_logo = '_static/openPASS.png' - -# -- Options for API DOC ----------------------------------------------------- -api_doc_title = "Source Code Documentation" - -# -- Define global replacements ---------------------------------------------- -# See https://documentation.help/Sphinx/config.html -rst_epilog = """ - -.. |op| replace:: **openPASS** -.. |opwg| replace:: **openPASS** Working Group -.. |op_oss| replace:: **openPASS** (Open Source) -.. |mingw_shell| replace:: ``MinGW 64-bit`` shell -.. |protobuf_version| replace:: 3.20.0 -.. |osi_version| replace:: 3.6.0 -.. |fmi_version| replace:: 2.0.3 -.. |zlib_version| replace:: v1.2.12 -.. |gtest_version| replace:: 1.14.0 -.. |boost_version| replace:: 1.72.0 -.. |qt_version| replace:: 5.15.3 -.. |doxygen_version| replace:: 1.9.6 -.. |gcc_version| replace:: 13.2.0 -.. |gdb_version| replace:: 13.2.0 -.. |cmake_version| replace:: 3.27.3 -.. |ccache_version| replace:: 4.7.4 - -""" +################################################################################ +# Copyright (c) 2021 in-tech GmbH +# 2023-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0. +# +# SPDX-License-Identifier: EPL-2.0 +################################################################################ + +# Configuration file for the Sphinx documentation builder. See also: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +import os +import sys +import datetime + +# -- Path setup -------------------------------------------------------------- +sys.path.append(os.path.abspath("_ext")) + +# -- Project information ----------------------------------------------------- +project = 'openPASS' +copyright = f'{datetime.datetime.now().year} openPASS Working Group' +author = 'in-tech GmbH' + +# -- Version is generated via cmake +version_file = 'version.txt' +if os.path.exists(version_file): + with open(version_file) as vf: + version = vf.read().strip() + release = version + +# -- General configuration --------------------------------------------------- + + +def setup(app): + app.add_css_file('css/custom.css') + + +extensions = [] + +extensions.append("sphinx_rtd_theme") +extensions.append('sphinx.ext.todo') +extensions.append('sphinx_tabs.tabs') +extensions.append('sphinx.ext.imgmath') +extensions.append('api_doc') +extensions.append('myst_parser') + +templates_path = ['_templates'] + +exclude_patterns = ['README.md'] + +todo_include_todos = True + +pdf_stylesheets = ['sphinx', 'kerning', 'a4'] +pdf_style_path = ['.', '_styles'] +pdf_fit_mode = "shrink" # literal blocks wider than frame +pdf_language = "en_US" +pdf_page_template = 'cutePage' + +# -- Options for HTML output ------------------------------------------------- + +html_static_path = ['_static'] +html_theme = 'sphinx_rtd_theme' +html_title = 'openPASS Documentation' +html_short_title = 'openPASS|Doc' +html_favicon = '_static/openPASS.ico' +html_logo = '_static/openPASS.png' + +# -- Options for API DOC ----------------------------------------------------- +api_doc_title = "Source Code Documentation" + +# -- Define global replacements ---------------------------------------------- +# See https://documentation.help/Sphinx/config.html +rst_epilog = """ + +.. |op| replace:: **openPASS** +.. |opwg| replace:: **openPASS** Working Group +.. |op_oss| replace:: **openPASS** (Open Source) +.. |mingw_shell| replace:: ``MinGW 64-bit`` shell +.. |protobuf_version| replace:: 3.20.0 +.. |osi_version| replace:: 3.6.0 +.. |fmi_version| replace:: 2.0.3 +.. |zlib_version| replace:: v1.2.12 +.. |gtest_version| replace:: 1.14.0 +.. |boost_version| replace:: 1.72.0 +.. |doxygen_version| replace:: 1.9.6 +.. |gcc_version| replace:: 13.2.0 +.. |gdb_version| replace:: 13.2.0 +.. |cmake_version| replace:: 3.27.3 +.. |ccache_version| replace:: 4.7.4 + +""" diff --git a/content/html/_downloads/cf3a708e6048855aab4490b408d22f7c/settings.json b/content/html/_downloads/cf3a708e6048855aab4490b408d22f7c/settings.json index 81f8f2690e08b038bda7e20ef0425a5f7c8f018a..d75e50abb90f5cb405af542813be119306d0f28e 100644 --- a/content/html/_downloads/cf3a708e6048855aab4490b408d22f7c/settings.json +++ b/content/html/_downloads/cf3a708e6048855aab4490b408d22f7c/settings.json @@ -1,94 +1,94 @@ -{ - // - // CMAKE - // - // Following settings are from the MSYS2 extension documentation - "cmake.cmakePath": "C:\\msys64\\mingw64\\bin\\cmake.exe", - "cmake.preferredGenerators": [ - "MSYS Makefiles" - ], - "cmake.configureSettings": { - "CMAKE_MAKE_PROGRAM": "C:\\msys64\\mingw64\\bin\\make.exe", - "CMAKE_PREFIX_PATH": [ - "${workspaceRoot}/deps/thirdParty/win64/Yase", - "${workspaceRoot}/deps/thirdParty/win64/FMILibrary", - "${workspaceRoot}/deps/thirdParty/win64/MantleAPI", - "${workspaceRoot}/deps/thirdParty/win64/osi", - "${workspaceRoot}/deps/thirdParty/win64/protobuf", - "${workspaceRoot}/deps/thirdParty/win64/protobuf-shared", - "${workspaceRoot}/deps/thirdParty/win64/googletest", - "${workspaceRoot}/deps/thirdParty/win64/minizip", - "${workspaceRoot}/deps/thirdParty/win64/openscenario_engine/release", - "${workspaceRoot}/deps/thirdParty/win64/openscenario_api", - "${workspaceRoot}/deps/thirdParty/win64/zlib", - "${workspaceRoot}/deps/thirdParty/win64/open-simulation-interface", - "${workspaceRoot}/deps/thirdParty/win64/units", - "${workspaceRoot}/deps/scmThirdParty/win64/stochastics", - "C:/msys64/mingw64/bin" - ], - "CMAKE_INSTALL_PREFIX": "${workspaceRoot}/bin/core", - "CMAKE_BUILD_TYPE": "Debug", - "USE_CCACHE": true, - "WITH_DEBUG_POSTFIX": false, - "OPENPASS_ADJUST_OUTPUT": false, - "WITH_API_DOC": false, - "WITH_DOC": false, - "INSTALL_EXTRA_RUNTIME_DEPS": true, - "INSTALL_SYSTEM_RUNTIME_DEPS": true, - // For integration with IntelliSense (see c_cpp_properties.json) - "CMAKE_EXPORT_COMPILE_COMMANDS": true - }, - // Optional: Adjust to your needs - "cmake.parallelJobs": 4, - // - // TESTMATE - // - // Optional: Adjust to your needs - "testMate.cpp.test.parallelExecutionLimit": 4, - "testMate.cpp.test.parallelExecutionOfExecutableLimit": 2, - // Optional: Set, if you like to debug test discovery and test start issues - "testMate.cpp.log.logfile": "C:\\temp\\cpp.testmate.log", - // Optional: As CTest triggers the install step, dependencies between test executables - // and openpass libraries can be resolved by linking text executables to - // openpass install directory - // Alternative: Check dependencies of test executables by 'ldd <_Tests.exe> and copy - // libraries right next to test executable within build direcory - "testMate.cpp.test.advancedExecutables": [ - { - "pattern": "build/**/*{tests,Tests,TESTS}*", - "env": { - "Path": "C:\\msys64\\mingw64\\bin;${workspaceFolder}\\bin\\core;${workspaceFolder}\\bin\\core\\lib;${os_env:PATH};${workspaceFolder}\\deps\\thirdParty\\win64\\FMILibrary\\lib;${workspaceFolder}\\deps\\thirdParty\\win64\\osi\\lib\\osi3" - } - } - ], - // - // VSCODE - // - // Optional: Integration of MinGW64 Terminal in VS Code - "terminal.integrated.profiles.windows": { - "MinGW64": { - "overrideName": true, - "path": [ - "C:\\msys64\\usr\\bin\\bash.exe" - ], - "args": ["--login", "-i"], - "icon": "terminal-bash", - "env": { - "MSYSTEM": "MINGW64", - "CHERE_INVOKING": "1", - "MSYS2_PATH_TYPE": "inherit" - } - } - }, - "terminal.integrated.defaultProfile.windows": "MinGW64", - // Enforce usage of .clang-format of modified code - "editor.formatOnSave": true, - "editor.formatOnSaveMode": "modifications", - // EOL and whitespace enforcement - "editor.detectIndentation": true, - "editor.insertSpaces": true, - "editor.renderFinalNewline": "dimmed", - "files.insertFinalNewline": true, - "files.trimFinalNewlines": true, - "files.trimTrailingWhitespace": true -} +{ + // + // CMAKE + // + // Following settings are from the MSYS2 extension documentation + "cmake.cmakePath": "C:\\msys64\\mingw64\\bin\\cmake.exe", + "cmake.preferredGenerators": [ + "MSYS Makefiles" + ], + "cmake.configureSettings": { + "CMAKE_MAKE_PROGRAM": "C:\\msys64\\mingw64\\bin\\make.exe", + "CMAKE_PREFIX_PATH": [ + "${workspaceRoot}/deps/thirdParty/win64/Yase", + "${workspaceRoot}/deps/thirdParty/win64/FMILibrary", + "${workspaceRoot}/deps/thirdParty/win64/MantleAPI", + "${workspaceRoot}/deps/thirdParty/win64/osi", + "${workspaceRoot}/deps/thirdParty/win64/protobuf", + "${workspaceRoot}/deps/thirdParty/win64/protobuf-shared", + "${workspaceRoot}/deps/thirdParty/win64/googletest", + "${workspaceRoot}/deps/thirdParty/win64/minizip", + "${workspaceRoot}/deps/thirdParty/win64/openscenario_engine/release", + "${workspaceRoot}/deps/thirdParty/win64/openscenario_api", + "${workspaceRoot}/deps/thirdParty/win64/zlib", + "${workspaceRoot}/deps/thirdParty/win64/open-simulation-interface", + "${workspaceRoot}/deps/thirdParty/win64/units", + "${workspaceRoot}/deps/scmThirdParty/win64/stochastics", + "C:/msys64/mingw64/bin" + ], + "CMAKE_INSTALL_PREFIX": "${workspaceRoot}/bin/core", + "CMAKE_BUILD_TYPE": "Debug", + "USE_CCACHE": true, + "WITH_DEBUG_POSTFIX": false, + "OPENPASS_ADJUST_OUTPUT": false, + "WITH_API_DOC": false, + "WITH_DOC": false, + "INSTALL_EXTRA_RUNTIME_DEPS": true, + "INSTALL_SYSTEM_RUNTIME_DEPS": true, + // For integration with IntelliSense (see c_cpp_properties.json) + "CMAKE_EXPORT_COMPILE_COMMANDS": true + }, + // Optional: Adjust to your needs + "cmake.parallelJobs": 4, + // + // TESTMATE + // + // Optional: Adjust to your needs + "testMate.cpp.test.parallelExecutionLimit": 4, + "testMate.cpp.test.parallelExecutionOfExecutableLimit": 2, + // Optional: Set, if you like to debug test discovery and test start issues + "testMate.cpp.log.logfile": "C:\\temp\\cpp.testmate.log", + // Optional: As CTest triggers the install step, dependencies between test executables + // and openpass libraries can be resolved by linking text executables to + // openpass install directory + // Alternative: Check dependencies of test executables by 'ldd <_Tests.exe> and copy + // libraries right next to test executable within build direcory + "testMate.cpp.test.advancedExecutables": [ + { + "pattern": "build/**/*{tests,Tests,TESTS}*", + "env": { + "Path": "C:\\msys64\\mingw64\\bin;${workspaceFolder}\\bin\\core;${workspaceFolder}\\bin\\core\\lib;${os_env:PATH};${workspaceFolder}\\deps\\thirdParty\\win64\\FMILibrary\\lib;${workspaceFolder}\\deps\\thirdParty\\win64\\osi\\lib\\osi3" + } + } + ], + // + // VSCODE + // + // Optional: Integration of MinGW64 Terminal in VS Code + "terminal.integrated.profiles.windows": { + "MinGW64": { + "overrideName": true, + "path": [ + "C:\\msys64\\usr\\bin\\bash.exe" + ], + "args": ["--login", "-i"], + "icon": "terminal-bash", + "env": { + "MSYSTEM": "MINGW64", + "CHERE_INVOKING": "1", + "MSYS2_PATH_TYPE": "inherit" + } + } + }, + "terminal.integrated.defaultProfile.windows": "MinGW64", + // Enforce usage of .clang-format of modified code + "editor.formatOnSave": true, + "editor.formatOnSaveMode": "modifications", + // EOL and whitespace enforcement + "editor.detectIndentation": true, + "editor.insertSpaces": true, + "editor.renderFinalNewline": "dimmed", + "files.insertFinalNewline": true, + "files.trimFinalNewlines": true, + "files.trimTrailingWhitespace": true +} diff --git a/content/html/_downloads/dca649c6abf7935b694a9b820bb4efc5/c_cpp_properties.json b/content/html/_downloads/dca649c6abf7935b694a9b820bb4efc5/c_cpp_properties.json index 0dea477c2128c629a344f7d1b67006ed5cd1679f..42788dc604a5a316b58576255e77c5bcf247e1be 100644 --- a/content/html/_downloads/dca649c6abf7935b694a9b820bb4efc5/c_cpp_properties.json +++ b/content/html/_downloads/dca649c6abf7935b694a9b820bb4efc5/c_cpp_properties.json @@ -1,13 +1,13 @@ -{ - "configurations": [ - { - "name": "openpass", - "cStandard": "c99", - "cppStandard": "c++17", - "configurationProvider": "ms-vscode.cmake-tools", - "compileCommands": "${workspaceFolder}/build/compile_commands.json", - "intelliSenseMode": "linux-gcc-x64" - } - ], - "version": 4 -} +{ + "configurations": [ + { + "name": "openpass", + "cStandard": "c99", + "cppStandard": "c++17", + "configurationProvider": "ms-vscode.cmake-tools", + "compileCommands": "${workspaceFolder}/build/compile_commands.json", + "intelliSenseMode": "linux-gcc-x64" + } + ], + "version": 4 +} diff --git a/content/html/_downloads/e127566572084ecb8640fe52563f5060/PedestrianModelsCatalog.xosc b/content/html/_downloads/e127566572084ecb8640fe52563f5060/PedestrianModelsCatalog.xosc index 7663bf6d6548ea0fb2627396fe6ef9c46a993981..32c4e373a275b70e8285c228a9cbc2791492d2f4 100644 --- a/content/html/_downloads/e127566572084ecb8640fe52563f5060/PedestrianModelsCatalog.xosc +++ b/content/html/_downloads/e127566572084ecb8640fe52563f5060/PedestrianModelsCatalog.xosc @@ -1,22 +1,22 @@ -<?xml version='1.0' encoding='UTF-8'?> -<OpenSCENARIO> - <FileHeader revMajor="1" revMinor="0" date="2020-06-26T00:17:00" description="openPASS pedestrian models" author="in-tech GmbH"/> - <Catalog name="PedestrianCatalog"> - <Pedestrian model3d="pedestrian_child" mass="30.0" name="pedestrian_child" pedestrianCategory="pedestrian"> - <ParameterDeclarations/> - <BoundingBox> - <Center x="0.0" y="0.0" z="0.577"/> - <Dimensions width="0.298" length="0.711" height="1.154"/> - </BoundingBox> - <Properties/> - </Pedestrian> - <Pedestrian model3d="pedestrian_adult" mass="70.0" name="pedestrian_adult" pedestrianCategory="pedestrian"> - <ParameterDeclarations/> - <BoundingBox> - <Center x="0.0" y="0.0" z="0.9"/> - <Dimensions width="0.5" length="0.6" height="1.8"/> - </BoundingBox> - <Properties/> - </Pedestrian> - </Catalog> -</OpenSCENARIO> +<?xml version='1.0' encoding='UTF-8'?> +<OpenSCENARIO> + <FileHeader revMajor="1" revMinor="0" date="2020-06-26T00:17:00" description="openPASS pedestrian models" author="in-tech GmbH"/> + <Catalog name="PedestrianCatalog"> + <Pedestrian model3d="pedestrian_child" mass="30.0" name="pedestrian_child" pedestrianCategory="pedestrian"> + <ParameterDeclarations/> + <BoundingBox> + <Center x="0.0" y="0.0" z="0.577"/> + <Dimensions width="0.298" length="0.711" height="1.154"/> + </BoundingBox> + <Properties/> + </Pedestrian> + <Pedestrian model3d="pedestrian_adult" mass="70.0" name="pedestrian_adult" pedestrianCategory="pedestrian"> + <ParameterDeclarations/> + <BoundingBox> + <Center x="0.0" y="0.0" z="0.9"/> + <Dimensions width="0.5" length="0.6" height="1.8"/> + </BoundingBox> + <Properties/> + </Pedestrian> + </Catalog> +</OpenSCENARIO> diff --git a/content/html/_downloads/f717c80213b149820a0dc8e07e803940/launch.json b/content/html/_downloads/f717c80213b149820a0dc8e07e803940/launch.json index e3db1961ee5645f4043c472e328d05d36044bda3..349efcfb399297ecda658538b96c8b3aba07d0a4 100644 --- a/content/html/_downloads/f717c80213b149820a0dc8e07e803940/launch.json +++ b/content/html/_downloads/f717c80213b149820a0dc8e07e803940/launch.json @@ -1,43 +1,43 @@ -{ - "version": "0.2.0", - "configurations": [ - { - // FOR TESTMATE (SELECTED TEST) AND CMAKE (DEBUG CMAKE TARGET) - "name": "CMake Target", - "type": "cppdbg", - "request": "launch", - "program": "${command:cmake.launchTargetPath}", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "externalConsole": false, - "MIMode": "gdb", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ] - }, - { - // FOR DEBUGGING opSimulation (DON'T FORGET TO CALL make install) - "name": "opsimulation", - "type": "cppdbg", - "request": "launch", - "program": "/usr/local/openPASS/bin/core/opSimulation", - "args": [], - "stopAtEntry": false, - "cwd": "/usr/local/openPASS/bin/core/", - "externalConsole": false, - "MIMode": "gdb", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ] - } - ] -} +{ + "version": "0.2.0", + "configurations": [ + { + // FOR TESTMATE (SELECTED TEST) AND CMAKE (DEBUG CMAKE TARGET) + "name": "CMake Target", + "type": "cppdbg", + "request": "launch", + "program": "${command:cmake.launchTargetPath}", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + // FOR DEBUGGING opSimulation (DON'T FORGET TO CALL make install) + "name": "opsimulation", + "type": "cppdbg", + "request": "launch", + "program": "/usr/local/openPASS/bin/core/opSimulation", + "args": [], + "stopAtEntry": false, + "cwd": "/usr/local/openPASS/bin/core/", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] +} diff --git a/content/html/_images/AckermannModel.svg b/content/html/_images/AckermannModel.svg index 2db8d1494fcaec4c50c7d9e27964938ad05201f6..52c979f85ac963c2d53718bdf7825e2e31ec2f26 100644 --- a/content/html/_images/AckermannModel.svg +++ b/content/html/_images/AckermannModel.svg @@ -1,1148 +1,1148 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="90.28775mm" - height="100.94049mm" - viewBox="1 1 89.427867 99.979159" - version="1.1" - id="svg12177" - sodipodi:docname="AckermannModel.svg" - inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" - inkscape:export-filename="AckermannModel" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title3699">Ackermann Model</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="2" - inkscape:cx="122.5" - inkscape:cy="192.75" - inkscape:window-width="1920" - inkscape:window-height="991" - inkscape:window-x="-9" - inkscape:window-y="-9" - inkscape:window-maximized="1" - inkscape:current-layer="layer5" - showguides="false" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <linearGradient - inkscape:collect="always" - id="linearGradient15"> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="0" - id="stop11" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.1" - id="stop12" /> - <stop - style="stop-color:#808080;stop-opacity:1;" - offset="0.5" - id="stop13" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.89999998" - id="stop14" /> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="1" - id="stop15" /> - </linearGradient> - <inkscape:path-effect - effect="offset" - id="path-effect4649" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="0" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="offset" - id="path-effect14996" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="3.1" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="offset" - id="path-effect14846" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="-2.3" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="offset" - id="path-effect14834" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="0" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="offset" - id="path-effect38844" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="tiling" - id="path-effect38774" - is_visible="true" - lpeversion="1" - unit="px" - seed="1;1" - lpesatellites="" - num_rows="3" - num_cols="3" - gapx="0" - gapy="0" - offset="0" - offset_type="false" - scale="0" - rotate="0" - mirrorrowsx="false" - mirrorrowsy="false" - mirrorcolsx="false" - mirrorcolsy="false" - mirrortrans="false" - shrink_interp="false" - split_items="false" - link_styles="false" - interpolate_scalex="false" - interpolate_scaley="true" - interpolate_rotatex="false" - interpolate_rotatey="true" - random_scale="false" - random_rotate="false" - random_gap_y="false" - random_gap_x="false" - transformorigin="" /> - <inkscape:path-effect - effect="offset" - id="path-effect38772" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="0" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38550" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38546" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38542" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38538" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32727" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32707" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32687" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32667" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <linearGradient - inkscape:collect="always" - id="linearGradient30868"> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="0" - id="stop30858" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.1" - id="stop30860" /> - <stop - style="stop-color:#20ff00;stop-opacity:1;" - offset="0.5" - id="stop30862" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.89999998" - id="stop30864" /> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="1" - id="stop30866" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient27324"> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="0" - id="stop27314" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.1" - id="stop27316" /> - <stop - style="stop-color:#808080;stop-opacity:1;" - offset="0.5" - id="stop27318" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.89999998" - id="stop27320" /> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="1" - id="stop27322" /> - </linearGradient> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient21572" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160" - x="-0.0121263" - y="-0.053139146" - width="1.0242526" - height="1.1062783"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-2" - x="-0.013209493" - y="-0.057885848" - width="1.026419" - height="1.1157717"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-8" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30536" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30628" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-2-0" - x="-0.013209493" - y="-0.057885848" - width="1.026419" - height="1.1157717"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-8-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-7" - x="-0.0121263" - y="-0.053139146" - width="1.0242526" - height="1.1062783"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-5" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30782" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30784" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30786" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient30868" - id="radialGradient30820" - cx="-9.1586399" - cy="32.64447" - fx="-9.1586399" - fy="32.64447" - r="0.83166844" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.760006,0,0,1.760006,36.340896,283.58021)" /> - <inkscape:path-effect - effect="offset" - id="path-effect38844-6" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient15" - id="radialGradient1" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.760006,0,0,1.760006,69.122361,281.14101)" - cx="-9.1586399" - cy="32.64447" - fx="-9.1586399" - fy="32.64447" - r="0.83166844" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38546-1" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38550-8" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <marker - style="overflow:visible" - id="Arrow3-5" - refX="0" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="Arrow3" - markerWidth="4.2071066" - markerHeight="6.9999995" - viewBox="0 0 4.2071068 7" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" - d="M 3,-3 0,0 3,3" - id="arrow3-6" - transform="rotate(180,0.125,0)" - sodipodi:nodetypes="ccc" /> - </marker> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient15" - id="radialGradient15" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.760006,0,0,1.760006,32.108628,226.7004)" - cx="-9.1586399" - cy="32.64447" - fx="-9.1586399" - fy="32.64447" - r="0.83166844" /> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,32.004935,-261.25666)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> - <rect - style="mix-blend-mode:normal;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.372058;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.863692, 0.431851;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="117.66273" - height="110.90793" - x="-40.794052" - y="290.92407" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline" - transform="translate(23.074149,-268.1912)"> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1.76001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - id="rect2" - width="89.427864" - height="85.197815" - x="-22.074146" - y="276.58188" /> - <path - id="rect1" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.76002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m -22.074149,276.86053 h 89.427866 m 0,84.91914 h -89.427866" - sodipodi:nodetypes="cccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - transform="translate(23.074149,-268.1912)"> - <g - id="g39799" - inkscape:transform-center-x="-15.429241" - inkscape:transform-center-y="0.59517311" - transform="matrix(1.7598325,0.02471452,-0.02471452,1.7598325,13.978677,284.04377)" - style="display:inline" - inkscape:label="Car"> - <g - id="g10990" - inkscape:label="Green Car" - style="display:inline;opacity:0.5"> - <g - id="g3439" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect5329-3" - style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - <g - id="g32615" - transform="translate(-1.2175706)" - style="display:inline;opacity:0.75" - inkscape:label="Rear"> - <g - id="g30620-9" - style="display:inline;opacity:0.8" - transform="translate(1.0557002)" - inkscape:label="Axle"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30782);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" - id="rect21541-05-0" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30784);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" - id="rect21541-06" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" - inkscape:path-effect="#path-effect32667" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient30786);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" - id="rect21541-0-1" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" - inkscape:path-effect="#path-effect32727" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - </g> - </g> - <g - id="g30620" - style="display:inline;opacity:0.25" - transform="translate(18.488077)" - inkscape:label="Front"> - <g - id="g32809" - inkscape:label="Axle"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30536);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" - id="rect21541-05" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30628);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" - id="rect21541" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.55007385,-0.31758529,0.50000001,0.86602541,-19.76189,1.0624832)" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - inkscape:path-effect="#path-effect32687" - sodipodi:type="rect" - inkscape:label="rect21541" - inkscape:transform-center-y="-1.0496603" - inkscape:transform-center-x="0.60602082" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient21572);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" - id="rect21541-0" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.55007385,-0.31758529,0.50000001,0.86602541,-23.525678,2.6003754)" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - inkscape:path-effect="#path-effect32707" - sodipodi:type="rect" - inkscape:transform-center-x="-0.60074566" - inkscape:transform-center-y="1.0947966" /> - </g> - </g> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="Annotations" - transform="translate(23.074149,-268.1912)"> - <path - id="path14703" - style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33897, 0.334743;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="m -5.2791043,351.78531 0.188801,-20.41396" - sodipodi:nodetypes="cc" - inkscape:label="Rear" /> - <text - xml:space="preserve" - style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" - x="-6.583149" - y="282.55069" - id="text16885-5" - inkscape:label="M"><tspan - sodipodi:role="line" - id="tspan16883-1" - style="font-size:3.5427px;stroke-width:1.77134" - x="-6.583149" - y="282.55069">M</tspan></text> - <g - id="g29" - inkscape:label="Ref Delta Front" - transform="translate(-20.625054,-27.892375)"> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.5427px;line-height:1.25;font-family:Symbol;-inkscape-font-specification:Symbol;stroke-width:1.77134" - x="73.122452" - y="364.31747" - id="text3"><tspan - sodipodi:role="line" - id="tspan3" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.5427px;font-family:Symbol;-inkscape-font-specification:Symbol;stroke-width:1.77134" - x="73.122452" - y="364.31747">d</tspan></text> - <path - style="vector-effect:none;fill:none;stroke:#000000;stroke-width:0.334743;stroke-dasharray:2.67794, 0.669487, 0.334743, 0.669487;paint-order:stroke fill markers;stop-color:#000000" - d="m 78.141489,369.49743 -62.701955,-0.0292" - id="path26796" - inkscape:transform-center-x="-31.4961" - inkscape:transform-center-y="-5.7685366" - sodipodi:nodetypes="cc" /> - <path - style="vector-effect:none;fill:none;stroke:#000000;stroke-width:0.334743;stroke-dasharray:none;marker-start:url(#Arrow3-5);paint-order:stroke fill markers;stop-color:#000000" - d="m 74.117234,355.7474 c 2.09954,4.07182 2.691699,8.84289 2.728049,13.32275" - id="path26691" - sodipodi:nodetypes="cc" /> - <path - style="vector-effect:none;fill:none;stroke:#000000;stroke-width:0.334743;stroke-dasharray:2.67794, 0.669488, 0.334743, 0.669488;paint-order:stroke fill markers;stop-color:#000000" - d="M 74.670773,354.36468 48.385877,369.35439" - id="path4" - inkscape:transform-center-x="-13.058513" - inkscape:transform-center-y="-7.4784938" - sodipodi:nodetypes="cc" /> - </g> - <path - style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334781;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.67824, 0.669563, 0.334781, 0.669563;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="M -5.0903033,331.37135 V 284.55796" - id="path9" - sodipodi:nodetypes="cc" - inkscape:label="RearToM" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.67794, 0.669487, 0.334743, 0.669487;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="M 27.759894,341.45618 -5.0903023,284.55797" - id="path10" - sodipodi:nodetypes="cc" - inkscape:label="MToFront" /> - <circle - style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820);fill-opacity:1;stroke:#000000;stroke-width:0.133897;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - id="path30810" - cx="20.221634" - cy="341.03467" - r="1.396793" - inkscape:label="Reference Point" - transform="rotate(4.2554137)" /> - <circle - style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient15);fill-opacity:1;stroke:#000000;stroke-width:0.133897;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - id="circle15" - cx="15.989369" - cy="284.15485" - r="1.396793" - inkscape:label="Mid Point" - transform="rotate(4.2554137)" /> - <g - id="g19" - transform="matrix(0.48054479,0.27743212,-0.27744267,0.48052652,73.95385,150.4118)" - style="stroke-width:1.80221" - inkscape:label="Perp Rear"> - <path - id="path19" - style="display:inline;fill:none;stroke:#000000;stroke-width:0.603345;stroke-opacity:1;paint-order:stroke fill markers" - d="m 45.809003,364.89241 c 2.94507,-1.89865 6.252306,-0.86776 7.596727,2.03554" - sodipodi:nodetypes="cc" /> - <circle - style="font-variation-settings:normal;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.603345;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers" - id="circle19" - cx="49.244869" - cy="366.43314" - r="0.39309525" /> - </g> - <g - id="g20" - transform="matrix(0.55488006,-9.1312542e-6,-9.1403138e-6,0.55486951,0.9616157,136.44867)" - style="stroke-width:1.80221" - inkscape:label="Perp Front"> - <path - id="path20" - style="display:inline;fill:none;stroke:#000000;stroke-width:0.603345;stroke-opacity:1;paint-order:stroke fill markers" - d="m 45.809003,364.89241 c 2.94507,-1.89865 6.252306,-0.86776 7.596727,2.03554" - sodipodi:nodetypes="cc" /> - <circle - style="font-variation-settings:normal;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.603345;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers" - id="circle20" - cx="49.244869" - cy="366.43314" - r="0.39309525" /> - </g> - <g - id="g28" - inkscape:label="Ref Delta M" - transform="translate(-20.300767,-28.401969)"> - <path - style="vector-effect:none;fill:none;stroke:#000000;stroke-width:0.334743;stroke-dasharray:none;marker-start:url(#Arrow3-5);paint-order:stroke fill markers;stop-color:#000000" - d="m 27.682359,337.06102 c -4.389141,1.94137 -7.885412,2.23939 -11.455546,2.26944" - id="path11" - sodipodi:nodetypes="cc" /> - <text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.5427px;line-height:1.25;font-family:Symbol;-inkscape-font-specification:Symbol;stroke-width:1.77134" - x="21.098446" - y="337.3736" - id="text11" - inkscape:label="text11"><tspan - sodipodi:role="line" - id="tspan11" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.5427px;font-family:Symbol;-inkscape-font-specification:Symbol;stroke-width:1.77134" - x="21.098446" - y="337.3736">d</tspan></text> - </g> - <g - id="g27" - inkscape:label="Ref r" - transform="translate(-20.625054,-27.892375)"> - <text - xml:space="preserve" - style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;display:inline;fill:#000000;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - x="-347.02036" - y="17.571278" - id="text34235" - transform="rotate(-88.266979)"><tspan - sodipodi:role="line" - style="font-size:3.5427px;fill:#000000;stroke-width:0;stroke-dasharray:none" - x="-347.02036" - y="17.571278" - id="tspan34237">r=1/<tspan - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:symbol;-inkscape-font-specification:symbol" - id="tspan21">k</tspan></tspan></text> - <path - style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334781;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow3-5);marker-end:url(#Arrow3-5);paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="M 8.6783966,368.98989 V 313.13541" - id="path21" - sodipodi:nodetypes="cc" /> - <path - style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.235733;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="M 7.3927802,312.45035 H 15.534752" - id="path23" - sodipodi:nodetypes="cc" /> - <path - style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.235733;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="M 7.2253889,369.4718 H 15.367361" - id="path24" - sodipodi:nodetypes="cc" /> - </g> - <g - id="g26" - inkscape:label="Ref l" - transform="translate(-20.625054,-27.892375)"> - <text - xml:space="preserve" - style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" - x="31.228432" - y="384.29346" - id="text20"><tspan - sodipodi:role="line" - id="tspan20" - style="font-size:3.5427px;stroke-width:1.77134" - x="31.228432" - y="384.29346">l</tspan></text> - <path - style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.235733;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 15.34595,385.98643 v -6.30874" - id="path25" - sodipodi:nodetypes="cc" /> - <path - style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.235734;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="M 48.412028,386.24378 V 369.43223" - id="path26" - sodipodi:nodetypes="cc" /> - <path - style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334781;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow3-5);marker-end:url(#Arrow3-5);paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="M 15.778534,385.07206 H 47.975706" - id="path22" - sodipodi:nodetypes="cc" /> - </g> - <circle - style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient1);fill-opacity:1;stroke:#000000;stroke-width:0.133897;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - id="circle1" - cx="53.003098" - cy="338.59546" - r="1.396793" - inkscape:label="Front Point" - transform="rotate(4.2554137)" /> - </g> - <metadata - id="metadata3370"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2024 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>Ackermann Model</dc:title> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="90.28775mm" + height="100.94049mm" + viewBox="1 1 89.427867 99.979159" + version="1.1" + id="svg12177" + sodipodi:docname="AckermannModel.svg" + inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" + inkscape:export-filename="AckermannModel" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title3699">Ackermann Model</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="2" + inkscape:cx="122.5" + inkscape:cy="192.75" + inkscape:window-width="1920" + inkscape:window-height="991" + inkscape:window-x="-9" + inkscape:window-y="-9" + inkscape:window-maximized="1" + inkscape:current-layer="layer5" + showguides="false" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <linearGradient + inkscape:collect="always" + id="linearGradient15"> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="0" + id="stop11" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.1" + id="stop12" /> + <stop + style="stop-color:#808080;stop-opacity:1;" + offset="0.5" + id="stop13" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.89999998" + id="stop14" /> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="1" + id="stop15" /> + </linearGradient> + <inkscape:path-effect + effect="offset" + id="path-effect4649" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="0" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="offset" + id="path-effect14996" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="3.1" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="offset" + id="path-effect14846" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="-2.3" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="offset" + id="path-effect14834" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="0" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="offset" + id="path-effect38844" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="tiling" + id="path-effect38774" + is_visible="true" + lpeversion="1" + unit="px" + seed="1;1" + lpesatellites="" + num_rows="3" + num_cols="3" + gapx="0" + gapy="0" + offset="0" + offset_type="false" + scale="0" + rotate="0" + mirrorrowsx="false" + mirrorrowsy="false" + mirrorcolsx="false" + mirrorcolsy="false" + mirrortrans="false" + shrink_interp="false" + split_items="false" + link_styles="false" + interpolate_scalex="false" + interpolate_scaley="true" + interpolate_rotatex="false" + interpolate_rotatey="true" + random_scale="false" + random_rotate="false" + random_gap_y="false" + random_gap_x="false" + transformorigin="" /> + <inkscape:path-effect + effect="offset" + id="path-effect38772" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="0" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38550" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38546" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38542" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38538" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32727" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32707" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32687" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32667" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <linearGradient + inkscape:collect="always" + id="linearGradient30868"> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="0" + id="stop30858" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.1" + id="stop30860" /> + <stop + style="stop-color:#20ff00;stop-opacity:1;" + offset="0.5" + id="stop30862" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.89999998" + id="stop30864" /> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="1" + id="stop30866" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient27324"> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="0" + id="stop27314" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.1" + id="stop27316" /> + <stop + style="stop-color:#808080;stop-opacity:1;" + offset="0.5" + id="stop27318" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.89999998" + id="stop27320" /> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="1" + id="stop27322" /> + </linearGradient> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient21572" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160" + x="-0.0121263" + y="-0.053139146" + width="1.0242526" + height="1.1062783"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-2" + x="-0.013209493" + y="-0.057885848" + width="1.026419" + height="1.1157717"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-8" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30536" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30628" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-2-0" + x="-0.013209493" + y="-0.057885848" + width="1.026419" + height="1.1157717"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-8-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-7" + x="-0.0121263" + y="-0.053139146" + width="1.0242526" + height="1.1062783"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-5" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30782" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30784" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30786" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient30868" + id="radialGradient30820" + cx="-9.1586399" + cy="32.64447" + fx="-9.1586399" + fy="32.64447" + r="0.83166844" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.760006,0,0,1.760006,36.340896,283.58021)" /> + <inkscape:path-effect + effect="offset" + id="path-effect38844-6" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient15" + id="radialGradient1" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.760006,0,0,1.760006,69.122361,281.14101)" + cx="-9.1586399" + cy="32.64447" + fx="-9.1586399" + fy="32.64447" + r="0.83166844" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38546-1" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38550-8" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <marker + style="overflow:visible" + id="Arrow3-5" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Arrow3" + markerWidth="4.2071066" + markerHeight="6.9999995" + viewBox="0 0 4.2071068 7" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" + d="M 3,-3 0,0 3,3" + id="arrow3-6" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" /> + </marker> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient15" + id="radialGradient15" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.760006,0,0,1.760006,32.108628,226.7004)" + cx="-9.1586399" + cy="32.64447" + fx="-9.1586399" + fy="32.64447" + r="0.83166844" /> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,32.004935,-261.25666)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> + <rect + style="mix-blend-mode:normal;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.372058;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.863692, 0.431851;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="117.66273" + height="110.90793" + x="-40.794052" + y="290.92407" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline" + transform="translate(23.074149,-268.1912)"> + <rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1.76001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + id="rect2" + width="89.427864" + height="85.197815" + x="-22.074146" + y="276.58188" /> + <path + id="rect1" + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.76002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m -22.074149,276.86053 h 89.427866 m 0,84.91914 h -89.427866" + sodipodi:nodetypes="cccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + transform="translate(23.074149,-268.1912)"> + <g + id="g39799" + inkscape:transform-center-x="-15.429241" + inkscape:transform-center-y="0.59517311" + transform="matrix(1.7598325,0.02471452,-0.02471452,1.7598325,13.978677,284.04377)" + style="display:inline" + inkscape:label="Car"> + <g + id="g10990" + inkscape:label="Green Car" + style="display:inline;opacity:0.5"> + <g + id="g3439" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect5329-3" + style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + <g + id="g32615" + transform="translate(-1.2175706)" + style="display:inline;opacity:0.75" + inkscape:label="Rear"> + <g + id="g30620-9" + style="display:inline;opacity:0.8" + transform="translate(1.0557002)" + inkscape:label="Axle"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30782);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" + id="rect21541-05-0" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30784);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" + id="rect21541-06" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" + inkscape:path-effect="#path-effect32667" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient30786);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" + id="rect21541-0-1" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" + inkscape:path-effect="#path-effect32727" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + </g> + </g> + <g + id="g30620" + style="display:inline;opacity:0.25" + transform="translate(18.488077)" + inkscape:label="Front"> + <g + id="g32809" + inkscape:label="Axle"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30536);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" + id="rect21541-05" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30628);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" + id="rect21541" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.55007385,-0.31758529,0.50000001,0.86602541,-19.76189,1.0624832)" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + inkscape:path-effect="#path-effect32687" + sodipodi:type="rect" + inkscape:label="rect21541" + inkscape:transform-center-y="-1.0496603" + inkscape:transform-center-x="0.60602082" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient21572);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" + id="rect21541-0" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.55007385,-0.31758529,0.50000001,0.86602541,-23.525678,2.6003754)" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + inkscape:path-effect="#path-effect32707" + sodipodi:type="rect" + inkscape:transform-center-x="-0.60074566" + inkscape:transform-center-y="1.0947966" /> + </g> + </g> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="Annotations" + transform="translate(23.074149,-268.1912)"> + <path + id="path14703" + style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33897, 0.334743;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" + d="m -5.2791043,351.78531 0.188801,-20.41396" + sodipodi:nodetypes="cc" + inkscape:label="Rear" /> + <text + xml:space="preserve" + style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" + x="-6.583149" + y="282.55069" + id="text16885-5" + inkscape:label="M"><tspan + sodipodi:role="line" + id="tspan16883-1" + style="font-size:3.5427px;stroke-width:1.77134" + x="-6.583149" + y="282.55069">M</tspan></text> + <g + id="g29" + inkscape:label="Ref Delta Front" + transform="translate(-20.625054,-27.892375)"> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.5427px;line-height:1.25;font-family:Symbol;-inkscape-font-specification:Symbol;stroke-width:1.77134" + x="73.122452" + y="364.31747" + id="text3"><tspan + sodipodi:role="line" + id="tspan3" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.5427px;font-family:Symbol;-inkscape-font-specification:Symbol;stroke-width:1.77134" + x="73.122452" + y="364.31747">d</tspan></text> + <path + style="vector-effect:none;fill:none;stroke:#000000;stroke-width:0.334743;stroke-dasharray:2.67794, 0.669487, 0.334743, 0.669487;paint-order:stroke fill markers;stop-color:#000000" + d="m 78.141489,369.49743 -62.701955,-0.0292" + id="path26796" + inkscape:transform-center-x="-31.4961" + inkscape:transform-center-y="-5.7685366" + sodipodi:nodetypes="cc" /> + <path + style="vector-effect:none;fill:none;stroke:#000000;stroke-width:0.334743;stroke-dasharray:none;marker-start:url(#Arrow3-5);paint-order:stroke fill markers;stop-color:#000000" + d="m 74.117234,355.7474 c 2.09954,4.07182 2.691699,8.84289 2.728049,13.32275" + id="path26691" + sodipodi:nodetypes="cc" /> + <path + style="vector-effect:none;fill:none;stroke:#000000;stroke-width:0.334743;stroke-dasharray:2.67794, 0.669488, 0.334743, 0.669488;paint-order:stroke fill markers;stop-color:#000000" + d="M 74.670773,354.36468 48.385877,369.35439" + id="path4" + inkscape:transform-center-x="-13.058513" + inkscape:transform-center-y="-7.4784938" + sodipodi:nodetypes="cc" /> + </g> + <path + style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334781;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.67824, 0.669563, 0.334781, 0.669563;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="M -5.0903033,331.37135 V 284.55796" + id="path9" + sodipodi:nodetypes="cc" + inkscape:label="RearToM" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.67794, 0.669487, 0.334743, 0.669487;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="M 27.759894,341.45618 -5.0903023,284.55797" + id="path10" + sodipodi:nodetypes="cc" + inkscape:label="MToFront" /> + <circle + style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820);fill-opacity:1;stroke:#000000;stroke-width:0.133897;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + id="path30810" + cx="20.221634" + cy="341.03467" + r="1.396793" + inkscape:label="Reference Point" + transform="rotate(4.2554137)" /> + <circle + style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient15);fill-opacity:1;stroke:#000000;stroke-width:0.133897;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + id="circle15" + cx="15.989369" + cy="284.15485" + r="1.396793" + inkscape:label="Mid Point" + transform="rotate(4.2554137)" /> + <g + id="g19" + transform="matrix(0.48054479,0.27743212,-0.27744267,0.48052652,73.95385,150.4118)" + style="stroke-width:1.80221" + inkscape:label="Perp Rear"> + <path + id="path19" + style="display:inline;fill:none;stroke:#000000;stroke-width:0.603345;stroke-opacity:1;paint-order:stroke fill markers" + d="m 45.809003,364.89241 c 2.94507,-1.89865 6.252306,-0.86776 7.596727,2.03554" + sodipodi:nodetypes="cc" /> + <circle + style="font-variation-settings:normal;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.603345;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers" + id="circle19" + cx="49.244869" + cy="366.43314" + r="0.39309525" /> + </g> + <g + id="g20" + transform="matrix(0.55488006,-9.1312542e-6,-9.1403138e-6,0.55486951,0.9616157,136.44867)" + style="stroke-width:1.80221" + inkscape:label="Perp Front"> + <path + id="path20" + style="display:inline;fill:none;stroke:#000000;stroke-width:0.603345;stroke-opacity:1;paint-order:stroke fill markers" + d="m 45.809003,364.89241 c 2.94507,-1.89865 6.252306,-0.86776 7.596727,2.03554" + sodipodi:nodetypes="cc" /> + <circle + style="font-variation-settings:normal;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.603345;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers" + id="circle20" + cx="49.244869" + cy="366.43314" + r="0.39309525" /> + </g> + <g + id="g28" + inkscape:label="Ref Delta M" + transform="translate(-20.300767,-28.401969)"> + <path + style="vector-effect:none;fill:none;stroke:#000000;stroke-width:0.334743;stroke-dasharray:none;marker-start:url(#Arrow3-5);paint-order:stroke fill markers;stop-color:#000000" + d="m 27.682359,337.06102 c -4.389141,1.94137 -7.885412,2.23939 -11.455546,2.26944" + id="path11" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.5427px;line-height:1.25;font-family:Symbol;-inkscape-font-specification:Symbol;stroke-width:1.77134" + x="21.098446" + y="337.3736" + id="text11" + inkscape:label="text11"><tspan + sodipodi:role="line" + id="tspan11" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.5427px;font-family:Symbol;-inkscape-font-specification:Symbol;stroke-width:1.77134" + x="21.098446" + y="337.3736">d</tspan></text> + </g> + <g + id="g27" + inkscape:label="Ref r" + transform="translate(-20.625054,-27.892375)"> + <text + xml:space="preserve" + style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;display:inline;fill:#000000;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + x="-347.02036" + y="17.571278" + id="text34235" + transform="rotate(-88.266979)"><tspan + sodipodi:role="line" + style="font-size:3.5427px;fill:#000000;stroke-width:0;stroke-dasharray:none" + x="-347.02036" + y="17.571278" + id="tspan34237">r=1/<tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:symbol;-inkscape-font-specification:symbol" + id="tspan21">k</tspan></tspan></text> + <path + style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334781;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow3-5);marker-end:url(#Arrow3-5);paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="M 8.6783966,368.98989 V 313.13541" + id="path21" + sodipodi:nodetypes="cc" /> + <path + style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.235733;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="M 7.3927802,312.45035 H 15.534752" + id="path23" + sodipodi:nodetypes="cc" /> + <path + style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.235733;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="M 7.2253889,369.4718 H 15.367361" + id="path24" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g26" + inkscape:label="Ref l" + transform="translate(-20.625054,-27.892375)"> + <text + xml:space="preserve" + style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" + x="31.228432" + y="384.29346" + id="text20"><tspan + sodipodi:role="line" + id="tspan20" + style="font-size:3.5427px;stroke-width:1.77134" + x="31.228432" + y="384.29346">l</tspan></text> + <path + style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.235733;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 15.34595,385.98643 v -6.30874" + id="path25" + sodipodi:nodetypes="cc" /> + <path + style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.235734;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="M 48.412028,386.24378 V 369.43223" + id="path26" + sodipodi:nodetypes="cc" /> + <path + style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334781;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow3-5);marker-end:url(#Arrow3-5);paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="M 15.778534,385.07206 H 47.975706" + id="path22" + sodipodi:nodetypes="cc" /> + </g> + <circle + style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient1);fill-opacity:1;stroke:#000000;stroke-width:0.133897;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + id="circle1" + cx="53.003098" + cy="338.59546" + r="1.396793" + inkscape:label="Front Point" + transform="rotate(4.2554137)" /> + </g> + <metadata + id="metadata3370"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2024 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>Ackermann Model</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/AgentCoordinateSystem.svg b/content/html/_images/AgentCoordinateSystem.svg index 99d31ea5ccce02c53b0450f0d51d543943d8477f..aeb6c9a686bee74b011ae0a31e8608e33c7f4f2a 100644 --- a/content/html/_images/AgentCoordinateSystem.svg +++ b/content/html/_images/AgentCoordinateSystem.svg @@ -1,984 +1,984 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="150.17114mm" - viewBox="0 0 210 150.17114" - version="1.1" - id="svg12177" - sodipodi:docname="AgentCoordinateSystem.svg" - inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" - inkscape:export-filename="sensor_positioning.png" - inkscape:export-xdpi="900" - inkscape:export-ydpi="900" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title7092">AgentCoordinateSystem & SensorPositioning</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="2.0000001" - inkscape:cx="282.99999" - inkscape:cy="305.24999" - inkscape:window-width="2400" - inkscape:window-height="1271" - inkscape:window-x="2391" - inkscape:window-y="-9" - inkscape:window-maximized="1" - inkscape:current-layer="layer5" /> - <style - type="text/css" - id="style515"> .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} </style> - <defs - id="defs12174"> - <marker - style="overflow:visible" - id="TriangleStart" - refX="3.25" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="TriangleStart" - markerWidth="5.3244081" - markerHeight="6.155385" - viewBox="0 0 5.3244081 6.1553851" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path135" /> - </marker> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32727" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32707" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32687" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32667" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <linearGradient - inkscape:collect="always" - id="linearGradient30868"> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="0" - id="stop30858" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.1" - id="stop30860" /> - <stop - style="stop-color:#20ff00;stop-opacity:1;" - offset="0.5" - id="stop30862" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.89999998" - id="stop30864" /> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="1" - id="stop30866" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient27324"> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="0" - id="stop27314" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.1" - id="stop27316" /> - <stop - style="stop-color:#808080;stop-opacity:1;" - offset="0.5" - id="stop27318" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.89999998" - id="stop27320" /> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="1" - id="stop27322" /> - </linearGradient> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <marker - style="overflow:visible" - id="Arrow3" - refX="0" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="Arrow3" - markerWidth="4.2071066" - markerHeight="7" - viewBox="0 0 4.2071068 7" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" - d="M 3,-3 0,0 3,3" - id="arrow3" - transform="rotate(180,0.125,0)" - sodipodi:nodetypes="ccc" /> - </marker> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient21572" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160" - x="-0.0121263" - y="-0.053139146" - width="1.0242526" - height="1.1062783"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-2" - x="-0.013209493" - y="-0.057885848" - width="1.026419" - height="1.1157717"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-8" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30536" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30628" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-2-0" - x="-0.013209493" - y="-0.057885848" - width="1.026419" - height="1.1157717"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-8-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-7" - x="-0.0121263" - y="-0.053139146" - width="1.0242526" - height="1.1062783"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-5" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30782" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30784" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30786" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient30868" - id="radialGradient30820" - cx="-9.1586399" - cy="32.64447" - fx="-9.1586399" - fy="32.64447" - r="0.83166844" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.6890045,0,0,2.6890045,55.047622,31.935801)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient30868" - id="radialGradient30820-1" - cx="-9.1586399" - cy="32.64447" - fx="-9.1586399" - fy="32.64447" - r="0.83166844" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(2.6890045,0,0,2.6890045,114.70631,17.245338)" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter35050" - x="-0.0022070619" - y="-0.0025765463" - width="1.0044141" - height="1.0051531"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.056059462" - id="feGaussianBlur35052" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter35054" - x="-0.0017818477" - y="-0.00318312" - width="1.0035637" - height="1.0063662"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.057750982" - id="feGaussianBlur35056" /> - </filter> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,8.9307865,6.9345447)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> - <rect - style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.572806;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.32972, 0.664864;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="275.13739" - height="165.75955" - x="-11.057076" - y="-7.2791214" /> - </g> - <g - inkscape:groupmode="layer" - id="layer11" - inkscape:label="Raster"> - <g - id="g34915" - transform="matrix(2.6890045,0,0,2.853727,58.321674,27.07499)" - style="opacity:1;stroke:#aaaaff;stroke-width:0.97071;stroke-opacity:1;filter:url(#filter35050)"> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M -10.356301,-9.2853008 V 42.932937" - id="path34560" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M -4.8069918,-9.2853008 V 42.932937" - id="path34560-2" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M 0.742317,-9.2853008 V 42.932937" - id="path34560-2-5" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.2916258,-9.2853008 V 42.932937" - id="path34608" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M 11.840935,-9.285301 V 42.932937" - id="path34560-9" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M 17.390243,-9.285301 V 42.932937" - id="path34560-2-7" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M 22.939552,-9.285301 V 42.932937" - id="path34560-2-5-5" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M 34.03817,-9.285301 V 42.932937" - id="path34562-5" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M 28.488861,-9.285301 V 42.932937" - id="path34608-6" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M 39.587479,-9.285301 V 42.932937" - id="path34666" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M 45.136787,-9.285301 V 42.932937" - id="path34668" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-9.285301 V 42.932937" - id="path34670" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M 50.686096,-9.285301 V 42.932937" - id="path34672" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M -21.454918,-9.285301 V 42.932937" - id="path34678" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" - d="M -15.905609,-9.285301 V 42.932937" - id="path34682" /> - </g> - <g - id="g35048" - style="opacity:1;stroke:#aaaaff;stroke-opacity:1;filter:url(#filter35054)" - transform="matrix(2.6890045,0,0,2.6890045,58.321674,31.935801)"> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-11.699799 H -21.550344" - id="path34917" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-6.1504898 H -21.550344" - id="path34919" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-0.601181 H -21.550344" - id="path34921" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,4.9481278 H -21.550344" - id="path34923" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,10.497437 H -21.550344" - id="path34925" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,16.046745 H -21.550344" - id="path34927" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,21.596054 H -21.550344" - id="path34929" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,32.694672 H -21.550344" - id="path34931" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,27.145363 H -21.550344" - id="path34933" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,38.243981 H -21.550344" - id="path34935" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,43.793289 H -21.550344" - id="path34937" /> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline"> - <text - xml:space="preserve" - style="font-style:normal;font-weight:normal;font-size:40.2577px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.00644" - x="-21.705709" - y="3.0263662" - id="text34231"><tspan - sodipodi:role="line" - id="tspan34229" - style="stroke-width:1.00644" - x="-21.705709" - y="3.0263662" /></text> - <text - xml:space="preserve" - style="font-size:4.84868px;line-height:1.25;font-family:sans-serif;stroke-width:2.70632" - x="-88.360077" - y="24.34483" - id="text34235" - transform="rotate(-90)"><tspan - sodipodi:role="line" - style="stroke-width:2.70632" - x="-88.360077" - y="24.34483" - id="tspan34237"><tspan - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans" - id="tspan1">Lateral</tspan> (m)</tspan></text> - <text - xml:space="preserve" - style="font-size:4.84868px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:2.70632" - x="115.10297" - y="128.09456" - id="text34235-7"><tspan - sodipodi:role="line" - style="stroke-width:2.70632" - x="115.10297" - y="128.09456" - id="tspan34237-0"><tspan - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans" - id="tspan2">Longitudinal</tspan> (m)</tspan></text> - <text - xml:space="preserve" - style="font-size:3.17287px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.77095" - x="61.847992" - y="58.145531" - id="text34235-7-7"><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="61.847992" - y="58.145531" - id="tspan35860">Sensor </tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="61.847992" - y="62.111618" - id="tspan35872">Position:</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="61.847992" - y="66.077705" - id="tspan35866"> Longitudinal = 4.0m</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="61.847992" - y="70.043793" - id="tspan35868"> Lateral = 1.0m</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Cambria Math';-inkscape-font-specification:'Cambria Math';stroke-width:1.77095" - x="61.847992" - y="74.00988" - id="tspan35870" /><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="61.847992" - y="78.006104" - id="tspan35876">Rotation:</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="61.847992" - y="81.972191" - id="tspan35880"> Yaw = 48 ° <tspan - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.36127px;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - id="tspan35454">(0.83 rad)</tspan></tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="61.847992" - y="85.938278" - id="tspan35882"> Pitch= 0 rad</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="61.847992" - y="89.904366" - id="tspan35886"> Roll = 0 rad</tspan><tspan - sodipodi:role="line" - style="stroke-width:1.77095" - x="61.847992" - y="93.870453" - id="tspan35864" /></text> - </g> - <g - inkscape:groupmode="layer" - id="layer10" - inkscape:label="SensorCone" - style="display:inline"> - <path - id="path12260" - style="display:inline;fill:#808080;fill-opacity:0.25;stroke:#000000;stroke-width:0.572804;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" - class="line1" - d="M 90.58225,104.80788 183.12569,61.392735 C 171.56228,36.895299 150.72085,17.97097 125.18555,8.7838755 Z" - inkscape:transform-center-x="-46.778036" - inkscape:transform-center-y="-48.433132" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.664864;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.32973, 0.664864;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 90.655415,104.8028 117.51564,75.268442 175.72384,11.265203" - id="path33277" - sodipodi:nodetypes="ccc" /> - <path - style="font-variation-settings:normal;display:inline;opacity:0.5;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.664864;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.32973, 0.664864;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 77.314086,119.23211 3.904999,-4.30321 8.462435,-9.32539" - id="path33816" - sodipodi:nodetypes="ccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline"> - <g - id="g10990" - inkscape:label="Green Car" - style="display:inline;opacity:0.25" - transform="matrix(2.6890045,0,0,2.6890045,58.321674,31.935801)"> - <g - id="g3439" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect5329-3" - style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="Axles"> - <g - id="g32615" - transform="matrix(2.6890045,0,0,2.6890045,55.047623,31.935801)" - style="display:inline;opacity:0.75" - inkscape:label="Rear"> - <g - id="g30620-9" - style="display:inline;opacity:0.8" - transform="translate(1.0557002)" - inkscape:label="Axle"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30782);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" - id="rect21541-05-0" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30784);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" - id="rect21541-06" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" - inkscape:path-effect="#path-effect32667" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient30786);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" - id="rect21541-0-1" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" - inkscape:path-effect="#path-effect32727" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - </g> - </g> - <g - id="g30620" - style="display:inline;opacity:0.25" - transform="matrix(2.6890045,0,0,2.6890045,108.0362,31.935801)" - inkscape:label="Front"> - <g - id="g32809" - inkscape:label="Axle"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30536);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" - id="rect21541-05" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30628);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" - id="rect21541" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" - inkscape:path-effect="#path-effect32687" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient21572);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" - id="rect21541-0" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" - inkscape:path-effect="#path-effect32707" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - </g> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="CoorindateSystem"> - <path - style="display:inline;fill:none;stroke:#000000;stroke-width:0.664862;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" - d="M 30.419996,119.80759 H 154.5653" - id="path32829" - inkscape:label="Longitudinal" /> - <path - style="display:inline;fill:none;stroke:#000000;stroke-width:0.664862;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" - d="M 30.419993,119.80759 V 61.299184" - id="path32831" - inkscape:label="Longitudinal" /> - <path - id="path33426" - style="display:inline;opacity:0.75;vector-effect:none;fill:none;stroke:#000000;stroke-width:0.664864;stroke-linecap:round;stroke-dasharray:none;marker-start:url(#TriangleStart);marker-end:url(#TriangleStart);paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 108.3728,85.456088 c 9.61436,8.802214 15.06989,21.251522 15.02504,34.286592" - sodipodi:nodetypes="cc" - inkscape:label="Angle" /> - <circle - style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820);fill-opacity:1;stroke:#000000;stroke-width:0.204573;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - id="path30810" - cx="30.419998" - cy="119.71693" - r="2.1340737" - inkscape:label="Reference Point" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.664864;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.32973, 0.664864;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 90.078688,119.80759 3e-6,-14.87779 -59.658698,1e-5" - id="path33358" - sodipodi:nodetypes="ccc" /> - <circle - style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820-1);fill-opacity:1;stroke:#000000;stroke-width:0.204573;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000" - id="path30810-2" - cx="90.07869" - cy="105.02647" - inkscape:label="SensorOrigin" - r="2.1340737" /> - </g> - <metadata - id="metadata7016"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>AgentCoordinateSystem & SensorPositioning</dc:title> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="150.17114mm" + viewBox="0 0 210 150.17114" + version="1.1" + id="svg12177" + sodipodi:docname="AgentCoordinateSystem.svg" + inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" + inkscape:export-filename="sensor_positioning.png" + inkscape:export-xdpi="900" + inkscape:export-ydpi="900" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title7092">AgentCoordinateSystem & SensorPositioning</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="2.0000001" + inkscape:cx="282.99999" + inkscape:cy="305.24999" + inkscape:window-width="2400" + inkscape:window-height="1271" + inkscape:window-x="2391" + inkscape:window-y="-9" + inkscape:window-maximized="1" + inkscape:current-layer="layer5" /> + <style + type="text/css" + id="style515"> .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} </style> + <defs + id="defs12174"> + <marker + style="overflow:visible" + id="TriangleStart" + refX="3.25" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="5.3244081" + markerHeight="6.155385" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135" /> + </marker> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32727" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32707" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32687" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32667" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <linearGradient + inkscape:collect="always" + id="linearGradient30868"> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="0" + id="stop30858" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.1" + id="stop30860" /> + <stop + style="stop-color:#20ff00;stop-opacity:1;" + offset="0.5" + id="stop30862" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.89999998" + id="stop30864" /> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="1" + id="stop30866" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient27324"> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="0" + id="stop27314" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.1" + id="stop27316" /> + <stop + style="stop-color:#808080;stop-opacity:1;" + offset="0.5" + id="stop27318" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.89999998" + id="stop27320" /> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="1" + id="stop27322" /> + </linearGradient> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <marker + style="overflow:visible" + id="Arrow3" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Arrow3" + markerWidth="4.2071066" + markerHeight="7" + viewBox="0 0 4.2071068 7" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" + d="M 3,-3 0,0 3,3" + id="arrow3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" /> + </marker> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient21572" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160" + x="-0.0121263" + y="-0.053139146" + width="1.0242526" + height="1.1062783"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-2" + x="-0.013209493" + y="-0.057885848" + width="1.026419" + height="1.1157717"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-8" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30536" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30628" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-2-0" + x="-0.013209493" + y="-0.057885848" + width="1.026419" + height="1.1157717"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-8-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-7" + x="-0.0121263" + y="-0.053139146" + width="1.0242526" + height="1.1062783"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-5" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30782" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30784" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30786" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient30868" + id="radialGradient30820" + cx="-9.1586399" + cy="32.64447" + fx="-9.1586399" + fy="32.64447" + r="0.83166844" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.6890045,0,0,2.6890045,55.047622,31.935801)" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient30868" + id="radialGradient30820-1" + cx="-9.1586399" + cy="32.64447" + fx="-9.1586399" + fy="32.64447" + r="0.83166844" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.6890045,0,0,2.6890045,114.70631,17.245338)" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter35050" + x="-0.0022070619" + y="-0.0025765463" + width="1.0044141" + height="1.0051531"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.056059462" + id="feGaussianBlur35052" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter35054" + x="-0.0017818477" + y="-0.00318312" + width="1.0035637" + height="1.0063662"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.057750982" + id="feGaussianBlur35056" /> + </filter> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,8.9307865,6.9345447)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> + <rect + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.572806;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.32972, 0.664864;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="275.13739" + height="165.75955" + x="-11.057076" + y="-7.2791214" /> + </g> + <g + inkscape:groupmode="layer" + id="layer11" + inkscape:label="Raster"> + <g + id="g34915" + transform="matrix(2.6890045,0,0,2.853727,58.321674,27.07499)" + style="opacity:1;stroke:#aaaaff;stroke-width:0.97071;stroke-opacity:1;filter:url(#filter35050)"> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M -10.356301,-9.2853008 V 42.932937" + id="path34560" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M -4.8069918,-9.2853008 V 42.932937" + id="path34560-2" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M 0.742317,-9.2853008 V 42.932937" + id="path34560-2-5" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.2916258,-9.2853008 V 42.932937" + id="path34608" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M 11.840935,-9.285301 V 42.932937" + id="path34560-9" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M 17.390243,-9.285301 V 42.932937" + id="path34560-2-7" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M 22.939552,-9.285301 V 42.932937" + id="path34560-2-5-5" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M 34.03817,-9.285301 V 42.932937" + id="path34562-5" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M 28.488861,-9.285301 V 42.932937" + id="path34608-6" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M 39.587479,-9.285301 V 42.932937" + id="path34666" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M 45.136787,-9.285301 V 42.932937" + id="path34668" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-9.285301 V 42.932937" + id="path34670" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M 50.686096,-9.285301 V 42.932937" + id="path34672" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M -21.454918,-9.285301 V 42.932937" + id="path34678" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0738493;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.738493, 0.738493;stroke-dashoffset:0;stroke-opacity:1" + d="M -15.905609,-9.285301 V 42.932937" + id="path34682" /> + </g> + <g + id="g35048" + style="opacity:1;stroke:#aaaaff;stroke-opacity:1;filter:url(#filter35054)" + transform="matrix(2.6890045,0,0,2.6890045,58.321674,31.935801)"> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-11.699799 H -21.550344" + id="path34917" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-6.1504898 H -21.550344" + id="path34919" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-0.601181 H -21.550344" + id="path34921" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,4.9481278 H -21.550344" + id="path34923" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,10.497437 H -21.550344" + id="path34925" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,16.046745 H -21.550344" + id="path34927" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,21.596054 H -21.550344" + id="path34929" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,32.694672 H -21.550344" + id="path34931" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,27.145363 H -21.550344" + id="path34933" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,38.243981 H -21.550344" + id="path34935" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0760776;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.760776, 0.760776;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,43.793289 H -21.550344" + id="path34937" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40.2577px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.00644" + x="-21.705709" + y="3.0263662" + id="text34231"><tspan + sodipodi:role="line" + id="tspan34229" + style="stroke-width:1.00644" + x="-21.705709" + y="3.0263662" /></text> + <text + xml:space="preserve" + style="font-size:4.84868px;line-height:1.25;font-family:sans-serif;stroke-width:2.70632" + x="-88.360077" + y="24.34483" + id="text34235" + transform="rotate(-90)"><tspan + sodipodi:role="line" + style="stroke-width:2.70632" + x="-88.360077" + y="24.34483" + id="tspan34237"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans" + id="tspan1">Lateral</tspan> (m)</tspan></text> + <text + xml:space="preserve" + style="font-size:4.84868px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:2.70632" + x="115.10297" + y="128.09456" + id="text34235-7"><tspan + sodipodi:role="line" + style="stroke-width:2.70632" + x="115.10297" + y="128.09456" + id="tspan34237-0"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans" + id="tspan2">Longitudinal</tspan> (m)</tspan></text> + <text + xml:space="preserve" + style="font-size:3.17287px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.77095" + x="61.847992" + y="58.145531" + id="text34235-7-7"><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="61.847992" + y="58.145531" + id="tspan35860">Sensor </tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="61.847992" + y="62.111618" + id="tspan35872">Position:</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="61.847992" + y="66.077705" + id="tspan35866"> Longitudinal = 4.0m</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="61.847992" + y="70.043793" + id="tspan35868"> Lateral = 1.0m</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Cambria Math';-inkscape-font-specification:'Cambria Math';stroke-width:1.77095" + x="61.847992" + y="74.00988" + id="tspan35870" /><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="61.847992" + y="78.006104" + id="tspan35876">Rotation:</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="61.847992" + y="81.972191" + id="tspan35880"> Yaw = 48 ° <tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.36127px;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + id="tspan35454">(0.83 rad)</tspan></tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="61.847992" + y="85.938278" + id="tspan35882"> Pitch= 0 rad</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="61.847992" + y="89.904366" + id="tspan35886"> Roll = 0 rad</tspan><tspan + sodipodi:role="line" + style="stroke-width:1.77095" + x="61.847992" + y="93.870453" + id="tspan35864" /></text> + </g> + <g + inkscape:groupmode="layer" + id="layer10" + inkscape:label="SensorCone" + style="display:inline"> + <path + id="path12260" + style="display:inline;fill:#808080;fill-opacity:0.25;stroke:#000000;stroke-width:0.572804;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" + class="line1" + d="M 90.58225,104.80788 183.12569,61.392735 C 171.56228,36.895299 150.72085,17.97097 125.18555,8.7838755 Z" + inkscape:transform-center-x="-46.778036" + inkscape:transform-center-y="-48.433132" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.664864;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.32973, 0.664864;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 90.655415,104.8028 117.51564,75.268442 175.72384,11.265203" + id="path33277" + sodipodi:nodetypes="ccc" /> + <path + style="font-variation-settings:normal;display:inline;opacity:0.5;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.664864;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.32973, 0.664864;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 77.314086,119.23211 3.904999,-4.30321 8.462435,-9.32539" + id="path33816" + sodipodi:nodetypes="ccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline"> + <g + id="g10990" + inkscape:label="Green Car" + style="display:inline;opacity:0.25" + transform="matrix(2.6890045,0,0,2.6890045,58.321674,31.935801)"> + <g + id="g3439" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect5329-3" + style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="Axles"> + <g + id="g32615" + transform="matrix(2.6890045,0,0,2.6890045,55.047623,31.935801)" + style="display:inline;opacity:0.75" + inkscape:label="Rear"> + <g + id="g30620-9" + style="display:inline;opacity:0.8" + transform="translate(1.0557002)" + inkscape:label="Axle"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30782);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" + id="rect21541-05-0" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30784);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" + id="rect21541-06" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" + inkscape:path-effect="#path-effect32667" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient30786);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" + id="rect21541-0-1" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" + inkscape:path-effect="#path-effect32727" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + </g> + </g> + <g + id="g30620" + style="display:inline;opacity:0.25" + transform="matrix(2.6890045,0,0,2.6890045,108.0362,31.935801)" + inkscape:label="Front"> + <g + id="g32809" + inkscape:label="Axle"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30536);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" + id="rect21541-05" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30628);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" + id="rect21541" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" + inkscape:path-effect="#path-effect32687" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient21572);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" + id="rect21541-0" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" + inkscape:path-effect="#path-effect32707" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + </g> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="CoorindateSystem"> + <path + style="display:inline;fill:none;stroke:#000000;stroke-width:0.664862;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" + d="M 30.419996,119.80759 H 154.5653" + id="path32829" + inkscape:label="Longitudinal" /> + <path + style="display:inline;fill:none;stroke:#000000;stroke-width:0.664862;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" + d="M 30.419993,119.80759 V 61.299184" + id="path32831" + inkscape:label="Longitudinal" /> + <path + id="path33426" + style="display:inline;opacity:0.75;vector-effect:none;fill:none;stroke:#000000;stroke-width:0.664864;stroke-linecap:round;stroke-dasharray:none;marker-start:url(#TriangleStart);marker-end:url(#TriangleStart);paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 108.3728,85.456088 c 9.61436,8.802214 15.06989,21.251522 15.02504,34.286592" + sodipodi:nodetypes="cc" + inkscape:label="Angle" /> + <circle + style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820);fill-opacity:1;stroke:#000000;stroke-width:0.204573;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + id="path30810" + cx="30.419998" + cy="119.71693" + r="2.1340737" + inkscape:label="Reference Point" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.664864;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.32973, 0.664864;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 90.078688,119.80759 3e-6,-14.87779 -59.658698,1e-5" + id="path33358" + sodipodi:nodetypes="ccc" /> + <circle + style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820-1);fill-opacity:1;stroke:#000000;stroke-width:0.204573;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000" + id="path30810-2" + cx="90.07869" + cy="105.02647" + inkscape:label="SensorOrigin" + r="2.1340737" /> + </g> + <metadata + id="metadata7016"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>AgentCoordinateSystem & SensorPositioning</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/AnnounceLeftLaneEnd_531-20.svg b/content/html/_images/AnnounceLeftLaneEnd_531-20.svg index bbe509a7d01b0037d5db61ea90cbe0b1449c1498..8d97c4a8b0ec5dd59555fefd8209346a1fc765e8 100644 --- a/content/html/_images/AnnounceLeftLaneEnd_531-20.svg +++ b/content/html/_images/AnnounceLeftLaneEnd_531-20.svg @@ -1,38 +1,38 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 1251 1601.9473" - height="1601.9473" - width="1251" - xml:space="preserve" - version="1.1" - id="svg10197"><metadata - id="metadata10203"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs10201" /><g - transform="matrix(1.25,0,0,-1.25,0,1601.9473)" - id="g10205"><g - id="g10207"><path - id="path10209" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path - id="path10211" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path - id="path10213" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path - id="path10215" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path - id="path10217" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 612.465,1045.878 0,-920.414 48.051,0 0,920.414 36.035,-9.312 c 5.144,-1.27 10.375,1.773 11.695,6.902 0.684,2.637 0.184,5.453 -1.32,7.723 l -70.438,104.906 -70.433,-104.906 c -2.961,-4.407 -1.731,-10.356 2.636,-13.309 2.278,-1.496 5.098,-1.996 7.735,-1.316 l 36.039,9.312 z" /><path - id="path10219" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 1251 1601.9473" + height="1601.9473" + width="1251" + xml:space="preserve" + version="1.1" + id="svg10197"><metadata + id="metadata10203"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs10201" /><g + transform="matrix(1.25,0,0,-1.25,0,1601.9473)" + id="g10205"><g + id="g10207"><path + id="path10209" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path + id="path10211" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path + id="path10213" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path + id="path10215" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path + id="path10217" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 612.465,1045.878 0,-920.414 48.051,0 0,920.414 36.035,-9.312 c 5.144,-1.27 10.375,1.773 11.695,6.902 0.684,2.637 0.184,5.453 -1.32,7.723 l -70.438,104.906 -70.433,-104.906 c -2.961,-4.407 -1.731,-10.356 2.636,-13.309 2.278,-1.496 5.098,-1.996 7.735,-1.316 l 36.039,9.312 z" /><path + id="path10219" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 421.344,695.636 320.422,594.909 c -17.973,-17.941 -28.168,-42.375 -28.168,-67.761 l 0,-401.688 48.051,0 0,401.688 c 0,12.718 5.05,24.933 14.105,33.925 l 100.879,100.684 18.926,-31.973 c 2.687,-4.586 8.555,-6.082 13.152,-3.406 2.321,1.41 3.957,3.727 4.504,6.36 l 24.57,123.937 -124.171,-24.523 c -5.188,-1 -8.555,-6.086 -7.555,-11.266 0.547,-2.68 2.183,-4.996 4.551,-6.402 l 32.078,-18.848 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/AnnounceLeftLaneEnd_531-21.svg b/content/html/_images/AnnounceLeftLaneEnd_531-21.svg index 6c50a532a92f611c33488d88f3ed6fcaf6bb7bc4..0e60d138db465c3c076aa88ed28c2768aa683aed 100644 --- a/content/html/_images/AnnounceLeftLaneEnd_531-21.svg +++ b/content/html/_images/AnnounceLeftLaneEnd_531-21.svg @@ -1,41 +1,41 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 1251 1601.9473" - height="1601.9473" - width="1251" - xml:space="preserve" - version="1.1" - id="svg10470"><metadata - id="metadata10476"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs10474" /><g - transform="matrix(1.25,0,0,-1.25,0,1601.9473)" - id="g10478"><g - id="g10480"><path - id="path10482" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path - id="path10484" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path - id="path10486" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path - id="path10488" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path - id="path10490" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 724.527,1045.839 0,-920.391 48.004,0 0,920.391 35.992,-9.308 c 5.235,-1.27 10.375,1.816 11.786,6.949 0.636,2.633 0.136,5.449 -1.411,7.718 l -70.347,104.911 -70.438,-104.911 c -2.957,-4.402 -1.773,-10.398 2.641,-13.261 2.273,-1.543 5.094,-2.086 7.734,-1.406 l 36.039,9.308 z" /><path - id="path10492" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 452.32,1045.839 0,-920.391 48.094,0 0,920.391 35.949,-9.308 c 5.188,-1.27 10.418,1.816 11.739,6.949 0.683,2.633 0.183,5.449 -1.321,7.718 l -70.437,104.911 -70.438,-104.911 c -2.91,-4.402 -1.773,-10.398 2.684,-13.261 2.277,-1.543 5.098,-2.086 7.691,-1.406 l 36.039,9.308 z" /><path - id="path10494" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 1251 1601.9473" + height="1601.9473" + width="1251" + xml:space="preserve" + version="1.1" + id="svg10470"><metadata + id="metadata10476"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs10474" /><g + transform="matrix(1.25,0,0,-1.25,0,1601.9473)" + id="g10478"><g + id="g10480"><path + id="path10482" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path + id="path10484" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path + id="path10486" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path + id="path10488" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path + id="path10490" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 724.527,1045.839 0,-920.391 48.004,0 0,920.391 35.992,-9.308 c 5.235,-1.27 10.375,1.816 11.786,6.949 0.636,2.633 0.136,5.449 -1.411,7.718 l -70.347,104.911 -70.438,-104.911 c -2.957,-4.402 -1.773,-10.398 2.641,-13.261 2.273,-1.543 5.094,-2.086 7.734,-1.406 l 36.039,9.308 z" /><path + id="path10492" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 452.32,1045.839 0,-920.391 48.094,0 0,920.391 35.949,-9.308 c 5.188,-1.27 10.418,1.816 11.739,6.949 0.683,2.633 0.183,5.449 -1.321,7.718 l -70.437,104.911 -70.438,-104.911 c -2.91,-4.402 -1.773,-10.398 2.684,-13.261 2.277,-1.543 5.098,-2.086 7.691,-1.406 l 36.039,9.308 z" /><path + id="path10494" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 309.176,695.632 208.297,594.898 c -18.02,-17.938 -28.074,-42.325 -28.074,-67.805 l 0,-401.609 48.004,0 0,401.609 c 0,12.762 5.007,24.934 14.015,33.926 l 100.926,100.687 18.93,-31.972 c 2.683,-4.586 8.554,-6.086 13.148,-3.36 2.32,1.407 4.004,3.723 4.598,6.356 l 24.48,123.941 -124.133,-24.57 c -5.187,-0.953 -8.597,-5.996 -7.55,-11.262 0.543,-2.637 2.136,-4.953 4.504,-6.359 l 32.031,-18.848 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/AnnounceLeftLaneEnd_531-22.svg b/content/html/_images/AnnounceLeftLaneEnd_531-22.svg index 2f6cef8ba08668594fa017e445b92e65567b6327..f6692d2ba130c85cef358496627a921fc649c7ff 100644 --- a/content/html/_images/AnnounceLeftLaneEnd_531-22.svg +++ b/content/html/_images/AnnounceLeftLaneEnd_531-22.svg @@ -1,44 +1,44 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 1251 1601.9473" - height="1601.9473" - width="1251" - xml:space="preserve" - version="1.1" - id="svg10758"><metadata - id="metadata10764"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs10762" /><g - transform="matrix(1.25,0,0,-1.25,0,1601.9473)" - id="g10766"><g - id="g10768"><path - id="path10770" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path - id="path10772" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path - id="path10774" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path - id="path10776" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path - id="path10778" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 205.152,695.597 -32.035,18.894 c -2.91,1.68 -4.687,4.86 -4.687,8.219 0,4.586 3.23,8.539 7.691,9.403 l 124.133,24.523 -24.527,-123.895 c -0.911,-4.496 -4.868,-7.722 -9.418,-7.722 -3.414,0 -6.551,1.769 -8.235,4.679 l -18.929,31.973 -36.86,-36.742 c -9.008,-8.992 -14.058,-21.211 -14.058,-33.926 l 0,-465.566 -48.055,0 0,465.566 c 0,25.434 10.101,49.82 28.121,67.805 l 36.859,36.789 z" /><path - id="path10780" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 348.32,1045.847 -36.039,-9.309 c -0.816,-0.183 -1.59,-0.273 -2.41,-0.273 -5.324,0 -9.648,4.316 -9.648,9.582 0,1.91 0.636,3.726 1.683,5.316 l 70.395,104.957 70.441,-104.957 c 1.047,-1.59 1.637,-3.406 1.637,-5.316 0,-5.266 -4.324,-9.582 -9.645,-9.582 -0.777,0 -1.593,0.09 -2.367,0.273 l -36.039,9.309 0,-920.41 -48.008,0 0,920.41 z" /><path - id="path10782" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 556.406,1045.847 -35.992,-9.309 c -0.773,-0.183 -1.594,-0.273 -2.41,-0.273 -5.281,0 -9.602,4.316 -9.602,9.582 0,1.91 0.59,3.726 1.637,5.316 l 70.395,104.957 70.437,-104.957 c 1.004,-1.59 1.641,-3.406 1.641,-5.316 0,-5.266 -4.324,-9.582 -9.602,-9.582 -0.863,0 -1.637,0.09 -2.41,0.273 l -36.039,9.309 0,-920.41 -48.055,0 0,920.41 z" /><path - id="path10784" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 1251 1601.9473" + height="1601.9473" + width="1251" + xml:space="preserve" + version="1.1" + id="svg10758"><metadata + id="metadata10764"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs10762" /><g + transform="matrix(1.25,0,0,-1.25,0,1601.9473)" + id="g10766"><g + id="g10768"><path + id="path10770" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path + id="path10772" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path + id="path10774" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path + id="path10776" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path + id="path10778" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 205.152,695.597 -32.035,18.894 c -2.91,1.68 -4.687,4.86 -4.687,8.219 0,4.586 3.23,8.539 7.691,9.403 l 124.133,24.523 -24.527,-123.895 c -0.911,-4.496 -4.868,-7.722 -9.418,-7.722 -3.414,0 -6.551,1.769 -8.235,4.679 l -18.929,31.973 -36.86,-36.742 c -9.008,-8.992 -14.058,-21.211 -14.058,-33.926 l 0,-465.566 -48.055,0 0,465.566 c 0,25.434 10.101,49.82 28.121,67.805 l 36.859,36.789 z" /><path + id="path10780" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 348.32,1045.847 -36.039,-9.309 c -0.816,-0.183 -1.59,-0.273 -2.41,-0.273 -5.324,0 -9.648,4.316 -9.648,9.582 0,1.91 0.636,3.726 1.683,5.316 l 70.395,104.957 70.441,-104.957 c 1.047,-1.59 1.637,-3.406 1.637,-5.316 0,-5.266 -4.324,-9.582 -9.645,-9.582 -0.777,0 -1.593,0.09 -2.367,0.273 l -36.039,9.309 0,-920.41 -48.008,0 0,920.41 z" /><path + id="path10782" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 556.406,1045.847 -35.992,-9.309 c -0.773,-0.183 -1.594,-0.273 -2.41,-0.273 -5.281,0 -9.602,4.316 -9.602,9.582 0,1.91 0.59,3.726 1.637,5.316 l 70.395,104.957 70.437,-104.957 c 1.004,-1.59 1.641,-3.406 1.641,-5.316 0,-5.266 -4.324,-9.582 -9.602,-9.582 -0.863,0 -1.637,0.09 -2.41,0.273 l -36.039,9.309 0,-920.41 -48.055,0 0,920.41 z" /><path + id="path10784" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 764.57,1045.847 -36.039,-9.309 c -0.773,-0.183 -1.593,-0.273 -2.41,-0.273 -5.234,0 -9.601,4.316 -9.601,9.582 0,1.91 0.589,3.726 1.636,5.316 l 70.395,104.957 70.437,-104.957 c 1.047,-1.59 1.641,-3.406 1.641,-5.316 0,-5.266 -4.324,-9.582 -9.602,-9.582 -0.82,0 -1.636,0.09 -2.41,0.273 l -36.039,9.309 0,-920.41 -48.008,0 0,920.41 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/AnnounceLeftLaneEnd_531-23.svg b/content/html/_images/AnnounceLeftLaneEnd_531-23.svg index be6697e60561e7a049b1a6d7a815157c93fb4e04..9d761cbb374536387f7405f309a845ae4adb985f 100644 --- a/content/html/_images/AnnounceLeftLaneEnd_531-23.svg +++ b/content/html/_images/AnnounceLeftLaneEnd_531-23.svg @@ -1,47 +1,47 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 1251 1601.9473" - height="1601.9473" - width="1251" - xml:space="preserve" - version="1.1" - id="svg10041"><metadata - id="metadata10047"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs10045" /><g - transform="matrix(1.25,0,0,-1.25,0,1601.9473)" - id="g10049"><g - id="g10051"><path - id="path10053" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path - id="path10055" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path - id="path10057" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path - id="path10059" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path - id="path10061" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 161.078,697.097 -32.039,18.898 c -2.957,1.727 -4.687,4.86 -4.687,8.219 0,4.59 3.187,8.539 7.691,9.449 l 124.195,24.481 -24.574,-123.91 c -0.91,-4.496 -4.824,-7.719 -9.469,-7.719 -3.367,0 -6.55,1.769 -8.234,4.676 l -18.887,32.023 -36.863,-36.793 c -9.012,-8.992 -14.063,-21.211 -14.063,-33.93 l 0,-465.617 -48.011,0 0,465.617 c 0,25.438 10.101,49.829 28.125,67.817 l 36.816,36.789 z" /><path - id="path10063" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 280.27,1047.386 -36.043,-9.266 c -0.817,-0.226 -1.594,-0.316 -2.411,-0.316 -5.324,0 -9.648,4.312 -9.648,9.582 0,1.906 0.637,3.727 1.684,5.359 l 70.355,104.926 70.496,-104.926 c 1.047,-1.632 1.594,-3.453 1.594,-5.359 0,-5.27 -4.281,-9.582 -9.606,-9.582 -0.773,0 -1.589,0.09 -2.41,0.316 l -36,9.266 0,-920.516 -48.011,0 0,920.516 z" /><path - id="path10065" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 456.328,1047.386 -36.043,-9.266 c -0.683,-0.226 -1.594,-0.316 -2.367,-0.316 -5.234,0 -9.602,4.312 -9.602,9.582 0,1.906 0.543,3.727 1.59,5.359 l 70.449,104.926 70.493,-104.926 c 1.047,-1.632 1.593,-3.453 1.593,-5.359 0,-5.27 -4.367,-9.582 -9.601,-9.582 -0.774,0 -1.684,0.09 -2.367,0.316 l -36.043,9.266 0,-920.516 -48.102,0 0,920.516 z" /><path - id="path10067" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 632.492,1047.386 -36.043,-9.266 c -0.82,-0.226 -1.594,-0.316 -2.41,-0.316 -5.281,0 -9.559,4.312 -9.559,9.582 0,1.906 0.547,3.727 1.594,5.359 l 70.449,104.926 70.403,-104.926 c 1.047,-1.632 1.683,-3.453 1.683,-5.359 0,-5.27 -4.371,-9.582 -9.695,-9.582 -0.773,0 -1.594,0.09 -2.41,0.316 l -36,9.266 0,-920.516 -48.012,0 0,920.516 z" /><path - id="path10069" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 1251 1601.9473" + height="1601.9473" + width="1251" + xml:space="preserve" + version="1.1" + id="svg10041"><metadata + id="metadata10047"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs10045" /><g + transform="matrix(1.25,0,0,-1.25,0,1601.9473)" + id="g10049"><g + id="g10051"><path + id="path10053" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path + id="path10055" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path + id="path10057" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path + id="path10059" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path + id="path10061" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 161.078,697.097 -32.039,18.898 c -2.957,1.727 -4.687,4.86 -4.687,8.219 0,4.59 3.187,8.539 7.691,9.449 l 124.195,24.481 -24.574,-123.91 c -0.91,-4.496 -4.824,-7.719 -9.469,-7.719 -3.367,0 -6.55,1.769 -8.234,4.676 l -18.887,32.023 -36.863,-36.793 c -9.012,-8.992 -14.063,-21.211 -14.063,-33.93 l 0,-465.617 -48.011,0 0,465.617 c 0,25.438 10.101,49.829 28.125,67.817 l 36.816,36.789 z" /><path + id="path10063" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 280.27,1047.386 -36.043,-9.266 c -0.817,-0.226 -1.594,-0.316 -2.411,-0.316 -5.324,0 -9.648,4.312 -9.648,9.582 0,1.906 0.637,3.727 1.684,5.359 l 70.355,104.926 70.496,-104.926 c 1.047,-1.632 1.594,-3.453 1.594,-5.359 0,-5.27 -4.281,-9.582 -9.606,-9.582 -0.773,0 -1.589,0.09 -2.41,0.316 l -36,9.266 0,-920.516 -48.011,0 0,920.516 z" /><path + id="path10065" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 456.328,1047.386 -36.043,-9.266 c -0.683,-0.226 -1.594,-0.316 -2.367,-0.316 -5.234,0 -9.602,4.312 -9.602,9.582 0,1.906 0.543,3.727 1.59,5.359 l 70.449,104.926 70.493,-104.926 c 1.047,-1.632 1.593,-3.453 1.593,-5.359 0,-5.27 -4.367,-9.582 -9.601,-9.582 -0.774,0 -1.684,0.09 -2.367,0.316 l -36.043,9.266 0,-920.516 -48.102,0 0,920.516 z" /><path + id="path10067" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 632.492,1047.386 -36.043,-9.266 c -0.82,-0.226 -1.594,-0.316 -2.41,-0.316 -5.281,0 -9.559,4.312 -9.559,9.582 0,1.906 0.547,3.727 1.594,5.359 l 70.449,104.926 70.403,-104.926 c 1.047,-1.632 1.683,-3.453 1.683,-5.359 0,-5.27 -4.371,-9.582 -9.695,-9.582 -0.773,0 -1.594,0.09 -2.41,0.316 l -36,9.266 0,-920.516 -48.012,0 0,920.516 z" /><path + id="path10069" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 808.641,1047.386 -36.043,-9.266 c -0.774,-0.226 -1.594,-0.316 -2.368,-0.316 -5.371,0 -9.691,4.312 -9.691,9.582 0,1.906 0.637,3.727 1.684,5.359 l 70.355,104.926 70.492,-104.926 c 1.047,-1.632 1.594,-3.453 1.594,-5.359 0,-5.27 -4.277,-9.582 -9.602,-9.582 -0.773,0 -1.593,0.09 -2.367,0.316 l -36.043,9.266 0,-920.516 -48.011,0 0,920.516 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/AnnounceRightLaneEnd_531-10.svg b/content/html/_images/AnnounceRightLaneEnd_531-10.svg index 73be705efb331f5da8eea2f95927fa71e2b68662..8d50073a0b81ac8e30528e447514ac5bdc324424 100644 --- a/content/html/_images/AnnounceRightLaneEnd_531-10.svg +++ b/content/html/_images/AnnounceRightLaneEnd_531-10.svg @@ -1,38 +1,38 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 1251 1601.9473" - height="1601.9473" - width="1251" - xml:space="preserve" - version="1.1" - id="svg27629"><metadata - id="metadata27635"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs27633" /><g - transform="matrix(1.25,0,0,-1.25,0,1601.9473)" - id="g27637"><g - id="g27639"><path - id="path27641" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path - id="path27643" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path - id="path27645" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path - id="path27647" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path - id="path27649" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 388.336,1047.198 0,-921.218 -48.047,0 0,921.218 -36.039,-9.32 c -5.141,-1.273 -10.375,1.774 -11.691,6.91 -0.684,2.637 -0.184,5.453 1.316,7.727 l 70.437,105 70.438,-105 c 2.957,-4.41 1.727,-10.363 -2.641,-13.317 -2.273,-1.5 -5.093,-2 -7.734,-1.32 l -36.039,9.32 z" /><path - id="path27651" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 1251 1601.9473" + height="1601.9473" + width="1251" + xml:space="preserve" + version="1.1" + id="svg27629"><metadata + id="metadata27635"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs27633" /><g + transform="matrix(1.25,0,0,-1.25,0,1601.9473)" + id="g27637"><g + id="g27639"><path + id="path27641" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path + id="path27643" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path + id="path27645" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path + id="path27647" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path + id="path27649" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 388.336,1047.198 0,-921.218 -48.047,0 0,921.218 -36.039,-9.32 c -5.141,-1.273 -10.375,1.774 -11.691,6.91 -0.684,2.637 -0.184,5.453 1.316,7.727 l 70.437,105 70.438,-105 c 2.957,-4.41 1.727,-10.363 -2.641,-13.317 -2.273,-1.5 -5.093,-2 -7.734,-1.32 l -36.039,9.32 z" /><path + id="path27651" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 579.457,696.648 680.379,595.827 c 17.973,-17.953 28.164,-42.406 28.164,-67.816 l 0,-402.039 -48.047,0 0,402.039 c 0,12.727 -5.051,24.953 -14.105,33.953 l -100.879,100.774 -18.93,-32 c -2.684,-4.59 -8.555,-6.09 -13.148,-3.411 -2.321,1.411 -3.957,3.731 -4.504,6.364 l -24.571,124.047 124.172,-24.547 c 5.188,-1 8.555,-6.09 7.555,-11.274 -0.547,-2.679 -2.184,-5 -4.551,-6.406 l -32.078,-18.863 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/AnnounceRightLaneEnd_531-11.svg b/content/html/_images/AnnounceRightLaneEnd_531-11.svg index f27084879a10c9c60301fdfe1418f23d4f6c2f8a..cd53d09455fe0d66d292b4a6854dcda343b45451 100644 --- a/content/html/_images/AnnounceRightLaneEnd_531-11.svg +++ b/content/html/_images/AnnounceRightLaneEnd_531-11.svg @@ -1,8 +1,8 @@ -<?xml version="1.0" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg width="1250" height="1600" version="1.1" xmlns="http://www.w3.org/2000/svg"> -<path fill="white" stroke="black" stroke-width="1" d="M60 1600A60 60 0 0 1 0 1540L0 60A60 60 0 0 1 60 0L1190 0A60 60 0 0 1 1250 60L1250 1540A60 60 0 0 1 1190 1600L60 1600Z" /> -<path fill="black" stroke="none" d="M60 1585A45 45 0 0 1 15 1540L15 60A45 45 0 0 1 60 15L1190 15A45 45 0 0 1 1235 60L1235 1540A45 45 0 0 1 1190 1585L60 1585Z" /> -<path fill="white" stroke="none" d="M60 1565A25 25 0 0 1 35 1540L35 60A25 25 0 0 1 60 35L1190 35A25 25 0 0 1 1215 60L1215 1540A25 25 0 0 1 1190 1565L60 1565Z" /> -<path fill="black" stroke="none" fill-rule="evenodd" d="M315 293L359.999901076814 304.618924496316A12 12 0 0 0 374.562333240056 289.788699633188A12 12 0 0 0 372.971231041917 286.323582434515L285 155L197.028768958083 286.323582434515A12 12 0 0 0 206.203668302975 304.973548172046A12 12 0 0 0 210.000098923186 304.618924496316L255 293L255 1445L315 1445L315 293ZM655 293L699.999901076814 304.618924496316A12 12 0 0 0 714.562333240056 289.788699633188A12 12 0 0 0 712.971231041917 286.323582434515L625 155L537.028768958084 286.323582434515A12 12 0 0 0 546.203668302975 304.973548172046A12 12 0 0 0 550.000098923186 304.618924496316L595 293L595 1445L655 1445L655 293ZM833.79 731.37L873.824430008624 707.767210594255A12 12 0 0 0 873.635071974583 686.983463493818A12 12 0 0 0 870.059784951929 685.658334778895L715 655L745.658334778895 810.059784951929A12 12 0 0 0 765.333485564278 816.759668650358A12 12 0 0 0 767.767104224811 813.824610426056L791.37 773.79L917.426406871193 899.853593128807A60 60 0 0 1 935 942.28L935 1445L995 1445L995 942.28A120 120 0 0 0 959.852813742386 857.427186257614L833.79 731.37Z" /> -</svg> +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="1250" height="1600" version="1.1" xmlns="http://www.w3.org/2000/svg"> +<path fill="white" stroke="black" stroke-width="1" d="M60 1600A60 60 0 0 1 0 1540L0 60A60 60 0 0 1 60 0L1190 0A60 60 0 0 1 1250 60L1250 1540A60 60 0 0 1 1190 1600L60 1600Z" /> +<path fill="black" stroke="none" d="M60 1585A45 45 0 0 1 15 1540L15 60A45 45 0 0 1 60 15L1190 15A45 45 0 0 1 1235 60L1235 1540A45 45 0 0 1 1190 1585L60 1585Z" /> +<path fill="white" stroke="none" d="M60 1565A25 25 0 0 1 35 1540L35 60A25 25 0 0 1 60 35L1190 35A25 25 0 0 1 1215 60L1215 1540A25 25 0 0 1 1190 1565L60 1565Z" /> +<path fill="black" stroke="none" fill-rule="evenodd" d="M315 293L359.999901076814 304.618924496316A12 12 0 0 0 374.562333240056 289.788699633188A12 12 0 0 0 372.971231041917 286.323582434515L285 155L197.028768958083 286.323582434515A12 12 0 0 0 206.203668302975 304.973548172046A12 12 0 0 0 210.000098923186 304.618924496316L255 293L255 1445L315 1445L315 293ZM655 293L699.999901076814 304.618924496316A12 12 0 0 0 714.562333240056 289.788699633188A12 12 0 0 0 712.971231041917 286.323582434515L625 155L537.028768958084 286.323582434515A12 12 0 0 0 546.203668302975 304.973548172046A12 12 0 0 0 550.000098923186 304.618924496316L595 293L595 1445L655 1445L655 293ZM833.79 731.37L873.824430008624 707.767210594255A12 12 0 0 0 873.635071974583 686.983463493818A12 12 0 0 0 870.059784951929 685.658334778895L715 655L745.658334778895 810.059784951929A12 12 0 0 0 765.333485564278 816.759668650358A12 12 0 0 0 767.767104224811 813.824610426056L791.37 773.79L917.426406871193 899.853593128807A60 60 0 0 1 935 942.28L935 1445L995 1445L995 942.28A120 120 0 0 0 959.852813742386 857.427186257614L833.79 731.37Z" /> +</svg> diff --git a/content/html/_images/AnnounceRightLaneEnd_531-12.svg b/content/html/_images/AnnounceRightLaneEnd_531-12.svg index cec432ffccdffe2cd0edba8523a522733dd0e047..f5b764e5e02be57e1af83e6f467aff641d32cbe0 100644 --- a/content/html/_images/AnnounceRightLaneEnd_531-12.svg +++ b/content/html/_images/AnnounceRightLaneEnd_531-12.svg @@ -1,44 +1,44 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 1251 1601.9473" - height="1601.9473" - width="1251" - xml:space="preserve" - version="1.1" - id="svg9498"><metadata - id="metadata9504"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs9502" /><g - transform="matrix(1.25,0,0,-1.25,0,1601.9473)" - id="g9506"><g - id="g9508"><path - id="path9510" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path - id="path9512" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path - id="path9514" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path - id="path9516" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path - id="path9518" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 795.66,697.14 32.035,18.894 c 2.914,1.68 4.688,4.86 4.688,8.219 0,4.586 -3.231,8.539 -7.692,9.403 l -124.136,24.523 24.527,-123.898 c 0.91,-4.497 4.867,-7.723 9.418,-7.723 3.414,0 6.555,1.773 8.238,4.68 l 18.93,31.972 36.859,-36.742 c 9.008,-8.992 14.063,-21.211 14.063,-33.926 l 0,-465.582 48.051,0 0,465.582 c 0,25.434 -10.102,49.821 -28.121,67.809 l -36.86,36.789 z" /><path - id="path9520" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 652.488,1047.406 36.043,-9.313 c 0.817,-0.184 1.594,-0.273 2.41,-0.273 5.325,0 9.649,4.316 9.649,9.586 0,1.906 -0.637,3.722 -1.684,5.312 l -70.398,104.961 -70.442,-104.961 c -1.046,-1.59 -1.64,-3.406 -1.64,-5.312 0,-5.27 4.324,-9.586 9.648,-9.586 0.774,0 1.594,0.089 2.367,0.273 l 36.039,9.313 0,-920.446 48.008,0 0,920.446 z" /><path - id="path9522" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 444.391,1047.406 35.996,-9.313 c 0.773,-0.184 1.593,-0.273 2.414,-0.273 5.277,0 9.601,4.316 9.601,9.586 0,1.906 -0.593,3.722 -1.64,5.312 l -70.399,104.961 -70.441,-104.961 c -1,-1.59 -1.637,-3.406 -1.637,-5.312 0,-5.27 4.32,-9.586 9.602,-9.586 0.863,0 1.636,0.089 2.41,0.273 l 36.043,9.313 0,-920.446 48.051,0 0,920.446 z" /><path - id="path9524" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 1251 1601.9473" + height="1601.9473" + width="1251" + xml:space="preserve" + version="1.1" + id="svg9498"><metadata + id="metadata9504"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs9502" /><g + transform="matrix(1.25,0,0,-1.25,0,1601.9473)" + id="g9506"><g + id="g9508"><path + id="path9510" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path + id="path9512" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path + id="path9514" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path + id="path9516" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path + id="path9518" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 795.66,697.14 32.035,18.894 c 2.914,1.68 4.688,4.86 4.688,8.219 0,4.586 -3.231,8.539 -7.692,9.403 l -124.136,24.523 24.527,-123.898 c 0.91,-4.497 4.867,-7.723 9.418,-7.723 3.414,0 6.555,1.773 8.238,4.68 l 18.93,31.972 36.859,-36.742 c 9.008,-8.992 14.063,-21.211 14.063,-33.926 l 0,-465.582 48.051,0 0,465.582 c 0,25.434 -10.102,49.821 -28.121,67.809 l -36.86,36.789 z" /><path + id="path9520" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 652.488,1047.406 36.043,-9.313 c 0.817,-0.184 1.594,-0.273 2.41,-0.273 5.325,0 9.649,4.316 9.649,9.586 0,1.906 -0.637,3.722 -1.684,5.312 l -70.398,104.961 -70.442,-104.961 c -1.046,-1.59 -1.64,-3.406 -1.64,-5.312 0,-5.27 4.324,-9.586 9.648,-9.586 0.774,0 1.594,0.089 2.367,0.273 l 36.039,9.313 0,-920.446 48.008,0 0,920.446 z" /><path + id="path9522" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 444.391,1047.406 35.996,-9.313 c 0.773,-0.184 1.593,-0.273 2.414,-0.273 5.277,0 9.601,4.316 9.601,9.586 0,1.906 -0.593,3.722 -1.64,5.312 l -70.399,104.961 -70.441,-104.961 c -1,-1.59 -1.637,-3.406 -1.637,-5.312 0,-5.27 4.32,-9.586 9.602,-9.586 0.863,0 1.636,0.089 2.41,0.273 l 36.043,9.313 0,-920.446 48.051,0 0,920.446 z" /><path + id="path9524" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 236.223,1047.406 36.039,-9.313 c 0.773,-0.184 1.593,-0.273 2.414,-0.273 5.23,0 9.601,4.316 9.601,9.586 0,1.906 -0.593,3.722 -1.64,5.312 l -70.399,104.961 -70.441,-104.961 c -1.047,-1.59 -1.637,-3.406 -1.637,-5.312 0,-5.27 4.32,-9.586 9.602,-9.586 0.816,0 1.636,0.089 2.41,0.273 l 36.043,9.313 0,-920.446 48.008,0 0,920.446 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/AnnounceRightLaneEnd_531-13.svg b/content/html/_images/AnnounceRightLaneEnd_531-13.svg index 4d001f6ff562336675a9c0938aa6f18b9979b265..f6d34f12551daa063e14d8982094290e2b09eae0 100644 --- a/content/html/_images/AnnounceRightLaneEnd_531-13.svg +++ b/content/html/_images/AnnounceRightLaneEnd_531-13.svg @@ -1,47 +1,47 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 1251 1601.9473" - height="1601.9473" - width="1251" - xml:space="preserve" - version="1.1" - id="svg9807"><metadata - id="metadata9813"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs9811" /><g - transform="matrix(1.25,0,0,-1.25,0,1601.9473)" - id="g9815"><g - id="g9817"><path - id="path9819" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path - id="path9821" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path - id="path9823" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path - id="path9825" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path - id="path9827" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 839.723,697.097 32.039,18.898 c 2.957,1.727 4.687,4.86 4.687,8.219 0,4.59 -3.187,8.539 -7.691,9.449 l -124.196,24.481 24.575,-123.91 c 0.91,-4.496 4.824,-7.719 9.468,-7.719 3.368,0 6.551,1.769 8.235,4.676 l 18.887,32.023 36.863,-36.793 c 9.012,-8.992 14.062,-21.211 14.062,-33.93 l 0,-465.617 48.012,0 0,465.617 c 0,25.438 -10.102,49.829 -28.125,67.817 l -36.816,36.789 z" /><path - id="path9829" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 720.531,1047.386 36.043,-9.266 c 0.821,-0.226 1.594,-0.316 2.41,-0.316 5.325,0 9.649,4.312 9.649,9.582 0,1.906 -0.637,3.727 -1.684,5.359 l -70.355,104.926 -70.496,-104.926 c -1.047,-1.632 -1.59,-3.453 -1.59,-5.359 0,-5.27 4.277,-9.582 9.601,-9.582 0.774,0 1.594,0.09 2.411,0.316 l 36,9.266 0,-920.516 48.011,0 0,920.516 z" /><path - id="path9831" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 544.473,1047.386 36.043,-9.266 c 0.683,-0.226 1.593,-0.316 2.367,-0.316 5.234,0 9.601,4.312 9.601,9.582 0,1.906 -0.543,3.727 -1.589,5.359 l -70.45,104.926 -70.492,-104.926 c -1.047,-1.632 -1.594,-3.453 -1.594,-5.359 0,-5.27 4.368,-9.582 9.602,-9.582 0.773,0 1.684,0.09 2.367,0.316 l 36.043,9.266 0,-920.516 48.102,0 0,920.516 z" /><path - id="path9833" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 368.309,1047.386 36.043,-9.266 c 0.82,-0.226 1.593,-0.316 2.41,-0.316 5.281,0 9.558,4.312 9.558,9.582 0,1.906 -0.547,3.727 -1.593,5.359 l -70.45,104.926 -70.402,-104.926 c -1.047,-1.632 -1.684,-3.453 -1.684,-5.359 0,-5.27 4.371,-9.582 9.696,-9.582 0.773,0 1.593,0.09 2.41,0.316 l 36,9.266 0,-920.516 48.012,0 0,920.516 z" /><path - id="path9835" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 1251 1601.9473" + height="1601.9473" + width="1251" + xml:space="preserve" + version="1.1" + id="svg9807"><metadata + id="metadata9813"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs9811" /><g + transform="matrix(1.25,0,0,-1.25,0,1601.9473)" + id="g9815"><g + id="g9817"><path + id="path9819" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 47.234,1281.159 c -25.828,0 -46.832,-21.007 -46.832,-46.836 l 0,-1187.066 C 0.402,21.429 21.406,0.402 47.234,0.402 l 906.332,0 c 25.829,0 46.836,21.027 46.836,46.855 l 0,1187.066 c 0,25.829 -21.007,46.836 -46.836,46.836 l -906.332,0 z" /><path + id="path9821" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,12.433 c -19.942,0 -36.106,16.183 -36.106,36.105 l 0,1184.539 c 0,19.922 16.164,36.082 36.106,36.082 l 903.793,0 c 19.941,0 36.105,-16.16 36.105,-36.082 l 0,-1184.539 c 0,-19.922 -16.164,-36.105 -36.105,-36.105" /><path + id="path9823" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.504,28.484 c -11.066,0 -20.055,8.961 -20.055,20.054 l 0,1184.539 c 0,11.071 8.989,20.055 20.055,20.055 l 903.793,0 c 11.07,0 20.055,-8.984 20.055,-20.055 l 0,-1184.539 c 0,-11.093 -8.985,-20.054 -20.055,-20.054" /><path + id="path9825" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 47.234,1281.558 C 21.191,1281.558 0,1260.366 0,1234.323 L 0,47.257 C 0,21.214 21.188,-0.001 47.234,-0.001 l 906.332,0 c 26.043,0 47.235,21.215 47.235,47.258 l 0,1187.066 c 0,26.043 -21.192,47.235 -47.235,47.235 l -906.332,0 z m 0,-0.399 906.332,0 c 25.829,0 46.832,-21.007 46.832,-46.836 l 0,-1187.066 c 0,-25.828 -21.003,-46.855 -46.832,-46.855 l -906.332,0 C 21.406,0.402 0.398,21.429 0.398,47.257 l 0,1187.066 c 0,25.829 21.008,46.836 46.836,46.836 z" /><path + id="path9827" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 839.723,697.097 32.039,18.898 c 2.957,1.727 4.687,4.86 4.687,8.219 0,4.59 -3.187,8.539 -7.691,9.449 l -124.196,24.481 24.575,-123.91 c 0.91,-4.496 4.824,-7.719 9.468,-7.719 3.368,0 6.551,1.769 8.235,4.676 l 18.887,32.023 36.863,-36.793 c 9.012,-8.992 14.062,-21.211 14.062,-33.93 l 0,-465.617 48.012,0 0,465.617 c 0,25.438 -10.102,49.829 -28.125,67.817 l -36.816,36.789 z" /><path + id="path9829" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 720.531,1047.386 36.043,-9.266 c 0.821,-0.226 1.594,-0.316 2.41,-0.316 5.325,0 9.649,4.312 9.649,9.582 0,1.906 -0.637,3.727 -1.684,5.359 l -70.355,104.926 -70.496,-104.926 c -1.047,-1.632 -1.59,-3.453 -1.59,-5.359 0,-5.27 4.277,-9.582 9.601,-9.582 0.774,0 1.594,0.09 2.411,0.316 l 36,9.266 0,-920.516 48.011,0 0,920.516 z" /><path + id="path9831" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 544.473,1047.386 36.043,-9.266 c 0.683,-0.226 1.593,-0.316 2.367,-0.316 5.234,0 9.601,4.312 9.601,9.582 0,1.906 -0.543,3.727 -1.589,5.359 l -70.45,104.926 -70.492,-104.926 c -1.047,-1.632 -1.594,-3.453 -1.594,-5.359 0,-5.27 4.368,-9.582 9.602,-9.582 0.773,0 1.684,0.09 2.367,0.316 l 36.043,9.266 0,-920.516 48.102,0 0,920.516 z" /><path + id="path9833" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 368.309,1047.386 36.043,-9.266 c 0.82,-0.226 1.593,-0.316 2.41,-0.316 5.281,0 9.558,4.312 9.558,9.582 0,1.906 -0.547,3.727 -1.593,5.359 l -70.45,104.926 -70.402,-104.926 c -1.047,-1.632 -1.684,-3.453 -1.684,-5.359 0,-5.27 4.371,-9.582 9.696,-9.582 0.773,0 1.593,0.09 2.41,0.316 l 36,9.266 0,-920.516 48.012,0 0,920.516 z" /><path + id="path9835" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 192.16,1047.386 36.043,-9.266 c 0.774,-0.226 1.594,-0.316 2.367,-0.316 5.371,0 9.696,4.312 9.696,9.582 0,1.906 -0.641,3.727 -1.688,5.359 L 168.223,1157.671 97.73,1052.745 c -1.046,-1.632 -1.593,-3.453 -1.593,-5.359 0,-5.27 4.277,-9.582 9.601,-9.582 0.774,0 1.594,0.09 2.367,0.316 l 36.043,9.266 0,-920.516 48.012,0 0,920.516 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/DistanceIndication_1004-30.svg b/content/html/_images/DistanceIndication_1004-30.svg index d8e140fb04505d046cffd9f3062a45ba8f7995da..80bd59ad8f48943bbf1df8aa6f5bb11260061d16 100644 --- a/content/html/_images/DistanceIndication_1004-30.svg +++ b/content/html/_images/DistanceIndication_1004-30.svg @@ -1,50 +1,50 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600 330" - height="330" - width="600" - xml:space="preserve" - version="1.1" - id="svg4070"><metadata - id="metadata4076"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs4074"><clipPath - id="clipPath4088" - clipPathUnits="userSpaceOnUse"><path - id="path4090" - d="M 0,0 480,0 480,264 0,264 0,0 Z" /></clipPath></defs><g - transform="matrix(1.25,0,0,-1.25,0,330)" - id="g4078"><g - id="g4080"><g - id="g4082"><g - id="g4084"><g - clip-path="url(#clipPath4088)" - id="g4086"><g - id="g4092"><path - id="path4094" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 31.996,263.758 c -17.512,0 -31.754,-14.254 -31.754,-31.766 l 0,-199.996 C 0.242,14.484 14.484,0.242 31.996,0.242 l 416.008,0 c 17.512,0 31.754,14.242 31.754,31.754 l 0,199.996 c 0,17.512 -14.242,31.766 -31.754,31.766" /><path - id="path4096" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 31.996,0.484 C 14.613,0.484 0.484,14.613 0.484,31.996 l 0,199.996 c 0,17.383 14.129,31.524 31.512,31.524 l 416.008,0 c 17.383,0 31.512,-14.141 31.512,-31.524 l 0,-199.996 c 0,-17.383 -14.129,-31.512 -31.512,-31.512 l -416.008,0 z M 448.004,264 31.996,264 C 14.32,264 0,249.672 0,231.992 L 0,31.996 C 0,14.328 14.32,0 31.996,0 L 448.004,0 C 465.672,0 480,14.328 480,31.996 l 0,199.996 C 480,249.672 465.672,264 448.004,264" /></g></g></g></g><path - id="path4098" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 31.996,19.996 416.008,0 c 6.629,0 12,5.371 12,12 l 0,199.996 c 0,6.629 -5.371,12 -12,12 l -416.008,0 c -6.629,0 -12,-5.371 -12,-12 l 0,-199.996 c 0,-6.629 5.371,-12 12,-12 z m 0,-12 c -13.258,0 -24,10.742 -24,24 l 0,199.996 c 0,13.258 10.742,24 24,24 l 416.008,0 c 13.258,0 24,-10.742 24,-24 l 0,-199.996 c 0,-13.258 -10.742,-24 -24,-24" /><path - id="path4100" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 80.168,187.992 -16.563,-14.297 0,-17.699 16.563,14.535 0,-94.539 16.043,0 0,112 -16.043,0 z" /><path - id="path4102" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 185.691,107.141 0,49.707 c 0,19.976 -14.629,32.09 -32.406,32.09 -17.773,0 -32.246,-12.114 -32.246,-32.09 l 0,-49.707 c 0,-19.977 14.473,-32.09 32.246,-32.09 17.777,0 32.406,12.113 32.406,32.09 z m -16.046,0.472 c 0,-10.855 -6.133,-18.25 -16.36,-18.25 -10.223,0 -16.199,7.395 -16.199,18.25 l 0,48.762 c 0,10.855 5.976,18.246 16.199,18.246 10.227,0 16.36,-7.391 16.36,-18.246 l 0,-48.762 z" /><path - id="path4104" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 271.164,107.141 0,49.707 c 0,19.976 -14.629,32.09 -32.402,32.09 -17.778,0 -32.246,-12.114 -32.246,-32.09 l 0,-49.707 c 0,-19.977 14.468,-32.09 32.246,-32.09 17.773,0 32.402,12.113 32.402,32.09 z m -16.043,0.472 c 0,-10.855 -6.137,-18.25 -16.359,-18.25 -10.227,0 -16.203,7.395 -16.203,18.25 l 0,48.762 c 0,10.855 5.976,18.246 16.203,18.246 10.222,0 16.359,-7.391 16.359,-18.246 l 0,-48.762 z" /><path - id="path4106" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600 330" + height="330" + width="600" + xml:space="preserve" + version="1.1" + id="svg4070"><metadata + id="metadata4076"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs4074"><clipPath + id="clipPath4088" + clipPathUnits="userSpaceOnUse"><path + id="path4090" + d="M 0,0 480,0 480,264 0,264 0,0 Z" /></clipPath></defs><g + transform="matrix(1.25,0,0,-1.25,0,330)" + id="g4078"><g + id="g4080"><g + id="g4082"><g + id="g4084"><g + clip-path="url(#clipPath4088)" + id="g4086"><g + id="g4092"><path + id="path4094" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 31.996,263.758 c -17.512,0 -31.754,-14.254 -31.754,-31.766 l 0,-199.996 C 0.242,14.484 14.484,0.242 31.996,0.242 l 416.008,0 c 17.512,0 31.754,14.242 31.754,31.754 l 0,199.996 c 0,17.512 -14.242,31.766 -31.754,31.766" /><path + id="path4096" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 31.996,0.484 C 14.613,0.484 0.484,14.613 0.484,31.996 l 0,199.996 c 0,17.383 14.129,31.524 31.512,31.524 l 416.008,0 c 17.383,0 31.512,-14.141 31.512,-31.524 l 0,-199.996 c 0,-17.383 -14.129,-31.512 -31.512,-31.512 l -416.008,0 z M 448.004,264 31.996,264 C 14.32,264 0,249.672 0,231.992 L 0,31.996 C 0,14.328 14.32,0 31.996,0 L 448.004,0 C 465.672,0 480,14.328 480,31.996 l 0,199.996 C 480,249.672 465.672,264 448.004,264" /></g></g></g></g><path + id="path4098" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 31.996,19.996 416.008,0 c 6.629,0 12,5.371 12,12 l 0,199.996 c 0,6.629 -5.371,12 -12,12 l -416.008,0 c -6.629,0 -12,-5.371 -12,-12 l 0,-199.996 c 0,-6.629 5.371,-12 12,-12 z m 0,-12 c -13.258,0 -24,10.742 -24,24 l 0,199.996 c 0,13.258 10.742,24 24,24 l 416.008,0 c 13.258,0 24,-10.742 24,-24 l 0,-199.996 c 0,-13.258 -10.742,-24 -24,-24" /><path + id="path4100" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 80.168,187.992 -16.563,-14.297 0,-17.699 16.563,14.535 0,-94.539 16.043,0 0,112 -16.043,0 z" /><path + id="path4102" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 185.691,107.141 0,49.707 c 0,19.976 -14.629,32.09 -32.406,32.09 -17.773,0 -32.246,-12.114 -32.246,-32.09 l 0,-49.707 c 0,-19.977 14.473,-32.09 32.246,-32.09 17.777,0 32.406,12.113 32.406,32.09 z m -16.046,0.472 c 0,-10.855 -6.133,-18.25 -16.36,-18.25 -10.223,0 -16.199,7.395 -16.199,18.25 l 0,48.762 c 0,10.855 5.976,18.246 16.199,18.246 10.227,0 16.36,-7.391 16.36,-18.246 l 0,-48.762 z" /><path + id="path4104" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 271.164,107.141 0,49.707 c 0,19.976 -14.629,32.09 -32.402,32.09 -17.778,0 -32.246,-12.114 -32.246,-32.09 l 0,-49.707 c 0,-19.977 14.468,-32.09 32.246,-32.09 17.773,0 32.402,12.113 32.402,32.09 z m -16.043,0.472 c 0,-10.855 -6.137,-18.25 -16.359,-18.25 -10.227,0 -16.203,7.395 -16.203,18.25 l 0,48.762 c 0,10.855 5.976,18.246 16.203,18.246 10.222,0 16.359,-7.391 16.359,-18.246 l 0,-48.762 z" /><path + id="path4106" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 416.395,75.992 0,50.969 c 0,8.965 -2.36,16.516 -8.497,22.492 -4.718,4.563 -11.953,7.238 -20.132,7.238 -10.539,0 -18.563,-3.777 -25.012,-11.64 -5.035,7.707 -12.742,11.64 -22.652,11.64 -8.024,0 -15.887,-3.148 -21.239,-8.968 l 0,8.023 -15.726,0 0,-79.754 16.043,0 0,48.61 c 0,12.269 7.55,17.773 16.515,17.773 8.969,0 16.047,-5.348 16.047,-17.773 l 0,-48.61 16.043,0 0,49.395 c 0,11.484 7.867,16.988 16.52,16.988 8.965,0 16.043,-5.348 16.043,-17.773 l 0,-48.61 16.047,0 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/DistanceIndication_1004-31.svg b/content/html/_images/DistanceIndication_1004-31.svg index 34dc13501c920a27120957e527df1913c5ccc0d8..664980d6159fb934b176ef320d43c4c2d433d9ad 100644 --- a/content/html/_images/DistanceIndication_1004-31.svg +++ b/content/html/_images/DistanceIndication_1004-31.svg @@ -1,42 +1,42 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600 330" - height="330" - width="600" - xml:space="preserve" - id="svg5472" - version="1.1"><metadata - id="metadata5478"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs5476"><clipPath - id="clipPath5492" - clipPathUnits="userSpaceOnUse"><path - id="path5490" - d="M 0,0 H 450 V 248 H 0 Z" /></clipPath></defs><g - transform="matrix(1.3333333,0,0,-1.3333333,0,330)" - id="g5480"><g - id="g5482"><g - transform="translate(0,-0.5)" - id="g5484"><g - id="g5486"><g - clip-path="url(#clipPath5492)" - id="g5488"><g - id="g5494"><path - id="path5496" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 29.996,247.773 C 13.578,247.773 0.227,234.41 0.227,217.992 V 30.496 C 0.227,14.078 13.578,0.727 29.996,0.727 h 390.008 c 16.418,0 29.769,13.351 29.769,29.769 v 187.496 c 0,16.418 -13.351,29.781 -29.769,29.781" /><path - id="path5498" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 29.996,0.953 C 13.699,0.953 0.453,14.199 0.453,30.496 v 187.496 c 0,16.297 13.246,29.555 29.543,29.555 h 390.008 c 16.297,0 29.543,-13.258 29.543,-29.555 V 30.496 c 0,-16.297 -13.246,-29.543 -29.543,-29.543 z M 420.004,248 H 29.996 C 13.426,248 0,234.566 0,217.992 V 30.496 C 0,13.934 13.426,0.5 29.996,0.5 H 420.004 C 436.566,0.5 450,13.934 450,30.496 V 217.992 C 450,234.566 436.566,248 420.004,248" /></g></g></g></g><path - id="path5500" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 29.996,18.746 h 390.008 c 6.215,0 11.25,5.035 11.25,11.25 v 187.496 c 0,6.215 -5.035,11.25 -11.25,11.25 H 29.996 c -6.215,0 -11.25,-5.035 -11.25,-11.25 V 29.996 c 0,-6.215 5.035,-11.25 11.25,-11.25 z m 0,-11.25 c -12.43,0 -22.5,10.07 -22.5,22.5 v 187.496 c 0,12.43 10.07,22.5 22.5,22.5 h 390.008 c 12.43,0 22.5,-10.07 22.5,-22.5 V 29.996 c 0,-12.43 -10.07,-22.5 -22.5,-22.5" /><path - id="path5502" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600 330" + height="330" + width="600" + xml:space="preserve" + id="svg5472" + version="1.1"><metadata + id="metadata5478"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs5476"><clipPath + id="clipPath5492" + clipPathUnits="userSpaceOnUse"><path + id="path5490" + d="M 0,0 H 450 V 248 H 0 Z" /></clipPath></defs><g + transform="matrix(1.3333333,0,0,-1.3333333,0,330)" + id="g5480"><g + id="g5482"><g + transform="translate(0,-0.5)" + id="g5484"><g + id="g5486"><g + clip-path="url(#clipPath5492)" + id="g5488"><g + id="g5494"><path + id="path5496" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 29.996,247.773 C 13.578,247.773 0.227,234.41 0.227,217.992 V 30.496 C 0.227,14.078 13.578,0.727 29.996,0.727 h 390.008 c 16.418,0 29.769,13.351 29.769,29.769 v 187.496 c 0,16.418 -13.351,29.781 -29.769,29.781" /><path + id="path5498" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 29.996,0.953 C 13.699,0.953 0.453,14.199 0.453,30.496 v 187.496 c 0,16.297 13.246,29.555 29.543,29.555 h 390.008 c 16.297,0 29.543,-13.258 29.543,-29.555 V 30.496 c 0,-16.297 -13.246,-29.543 -29.543,-29.543 z M 420.004,248 H 29.996 C 13.426,248 0,234.566 0,217.992 V 30.496 C 0,13.934 13.426,0.5 29.996,0.5 H 420.004 C 436.566,0.5 450,13.934 450,30.496 V 217.992 C 450,234.566 436.566,248 420.004,248" /></g></g></g></g><path + id="path5500" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 29.996,18.746 h 390.008 c 6.215,0 11.25,5.035 11.25,11.25 v 187.496 c 0,6.215 -5.035,11.25 -11.25,11.25 H 29.996 c -6.215,0 -11.25,-5.035 -11.25,-11.25 V 29.996 c 0,-6.215 5.035,-11.25 11.25,-11.25 z m 0,-11.25 c -12.43,0 -22.5,10.07 -22.5,22.5 v 187.496 c 0,12.43 10.07,22.5 22.5,22.5 h 390.008 c 12.43,0 22.5,-10.07 22.5,-22.5 V 29.996 c 0,-12.43 -10.07,-22.5 -22.5,-22.5" /><path + id="path5502" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 82.934,72.465 v 13.676 l 39.773,49.75 c 1.535,1.953 2.535,3.746 3,5.375 0.465,1.625 0.699,3.207 0.699,4.742 0,3.535 -1.258,6.828 -3.769,9.875 -2.512,3.047 -5.93,4.57 -10.258,4.57 -3.953,0 -7.336,-1.316 -10.152,-3.941 -2.813,-2.629 -4.383,-6.223 -4.711,-10.782 H 82.934 c 0.046,8.235 2.859,15.176 8.441,20.829 5.582,5.652 12.211,8.476 19.887,8.476 8.468,0 15.527,-2.847 21.179,-8.547 5.653,-5.699 8.477,-12.57 8.477,-20.617 0,-6.887 -2.023,-12.84 -6.07,-17.863 L 102.121,86.977 h 38.797 V 72.465 Z m 107.875,0 v 101.664 h 14.586 V 110.84 h 0.277 l 27.84,34.051 h 17.445 l -24.98,-28.328 28.398,-44.098 h -18.281 l -19.258,33.84 -11.441,-13.047 V 72.465 Z m 75.082,0 v 72.426 h 14.582 v -7.743 h 0.281 c 4.605,5.719 10.883,8.582 18.84,8.582 5.07,0 9.094,-0.906 12.07,-2.722 2.977,-1.813 5.77,-4.047 8.371,-6.699 5.723,6.281 13.352,9.421 22.887,9.421 5.629,0 11.062,-2.14 16.293,-6.421 5.234,-4.278 7.851,-10.512 7.851,-18.7 V 72.465 h -14.582 v 43.121 c 0,4.883 -1.375,8.699 -4.117,11.445 -2.746,2.742 -6.14,4.114 -10.187,4.114 -4.188,0 -7.641,-1.372 -10.364,-4.114 -2.722,-2.746 -4.082,-6.562 -4.082,-11.445 V 72.465 h -14.511 v 43.121 c 0,4.883 -1.375,8.699 -4.118,11.445 -2.746,2.742 -6.14,4.114 -10.187,4.114 -4.188,0 -7.641,-1.372 -10.363,-4.114 -2.723,-2.746 -4.082,-6.562 -4.082,-11.445 V 72.465 Z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/DistanceIndication_1004-32.svg b/content/html/_images/DistanceIndication_1004-32.svg index b8067f31203932f9a41b850d684e3c2a167b5808..08348a3ebfd9260960f84a01d5b356c4c0f20727 100644 --- a/content/html/_images/DistanceIndication_1004-32.svg +++ b/content/html/_images/DistanceIndication_1004-32.svg @@ -1,44 +1,44 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600 450.00339" - height="450.00339" - width="600" - xml:space="preserve" - id="svg5575" - version="1.1"><metadata - id="metadata5581"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs5579" /><g - transform="matrix(1.3333333,0,0,-1.3333333,0,450.00338)" - id="g5583"><g - id="g5585"><path - id="path5587" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 29.996,337.288 c -16.41,0 -29.769,-13.36 -29.769,-29.782 V 29.999 C 0.227,13.585 13.586,0.225 29.996,0.225 h 390.008 c 16.422,0 29.781,13.36 29.781,29.774 v 277.507 c 0,16.422 -13.359,29.782 -29.781,29.782" /><path - id="path5589" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 29.996,0.44 C 13.699,0.44 0.445,13.698 0.445,29.999 v 277.507 c 0,16.297 13.254,29.555 29.551,29.555 h 390.008 c 16.297,0 29.551,-13.258 29.551,-29.555 V 29.999 C 449.555,13.698 436.301,0.44 420.004,0.44 Z M 420.004,337.503 H 29.996 C 13.434,337.503 0,324.069 0,307.506 V 29.999 c 0,-16.567 13.434,-30 29.996,-30 h 390.008 c 16.562,0 29.996,13.433 29.996,30 v 277.507 c 0,16.563 -13.434,29.997 -29.996,29.997" /><path - id="path5591" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 29.996,7.495 C 17.574,7.495 7.504,17.577 7.504,29.999 v 277.507 c 0,12.43 10.07,22.504 22.492,22.504 h 390.008 c 12.422,0 22.504,-10.074 22.504,-22.504 V 29.999 c 0,-12.422 -10.082,-22.504 -22.504,-22.504" /><path - id="path5593" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 29.996,18.753 c -6.203,0 -11.246,5.027 -11.246,11.246 v 277.507 c 0,6.215 5.043,11.247 11.246,11.247 h 390.008 c 6.215,0 11.254,-5.032 11.254,-11.247 V 29.999 c 0,-6.219 -5.039,-11.246 -11.254,-11.246" /><path - id="path5595" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 55.184,186.237 10.804,12.289 c 4.047,-3.258 8.707,-5.871 13.989,-7.848 5.277,-1.972 10.804,-2.961 16.578,-2.961 6.66,0 11.89,1.383 15.691,4.145 3.797,2.766 5.699,6.391 5.699,10.883 0,8.484 -4.687,13.343 -14.062,14.578 -2.469,0.297 -4.762,0.594 -6.883,0.89 -2.121,0.293 -4.59,0.641 -7.402,1.036 -9.325,1.281 -16.43,4.699 -21.317,10.25 -4.883,5.55 -7.328,12.25 -7.328,20.093 0,9.18 3.074,16.727 9.215,22.649 6.145,5.922 14.793,8.883 25.941,8.883 6.664,0 12.93,-1.063 18.801,-3.184 5.871,-2.121 11.274,-4.812 16.207,-8.066 l -9.101,-13.473 c -3.95,2.469 -8.192,4.469 -12.731,5.996 -4.539,1.531 -9.18,2.297 -13.914,2.297 -5.035,0 -9.301,-1.285 -12.805,-3.852 -3.503,-2.566 -5.253,-6.414 -5.253,-11.543 0,-3.062 1.183,-5.921 3.55,-8.586 2.371,-2.664 6.293,-4.417 11.77,-5.257 1.43,-0.246 3.156,-0.504 5.18,-0.778 2.023,-0.269 4.343,-0.554 6.957,-0.847 10.066,-1.235 17.503,-4.887 22.316,-10.957 4.809,-6.067 7.215,-12.778 7.215,-20.129 0,-9.918 -3.43,-17.617 -10.289,-23.094 -6.856,-5.477 -16.059,-8.215 -27.606,-8.215 -16.234,0 -29.976,4.934 -41.222,14.801 z m 114.793,-13.914 v 93.332 h -29.532 v 14.508 h 75.418 v -14.508 h -29.531 v -93.332 z m 53.804,53.883 c 0,12.976 0.348,21.34 1.039,25.09 0.688,3.75 1.922,7.203 3.7,10.363 2.515,4.687 6.648,9.101 12.398,13.246 5.746,4.144 12.863,6.219 21.352,6.219 8.437,0 15.531,-2.075 21.277,-6.219 5.75,-4.145 9.93,-8.559 12.547,-13.246 1.726,-3.16 2.933,-6.613 3.625,-10.363 0.691,-3.75 1.035,-12.114 1.035,-25.09 0,-12.977 -0.344,-21.34 -1.035,-25.09 -0.692,-3.75 -1.899,-7.203 -3.625,-10.363 -2.617,-4.735 -6.797,-9.141 -12.547,-13.211 -5.746,-4.071 -12.84,-6.106 -21.277,-6.106 -8.489,0 -15.606,2.035 -21.352,6.106 -5.75,4.07 -9.883,8.476 -12.398,13.211 -1.778,3.16 -3.012,6.613 -3.7,10.363 -0.691,3.75 -1.039,12.113 -1.039,25.09 z m 16.36,0 c 0,-11.102 0.382,-18.305 1.144,-21.614 0.766,-3.304 2.211,-6.289 4.332,-8.953 1.629,-2.172 3.848,-4.035 6.66,-5.59 2.813,-1.554 6.145,-2.332 9.993,-2.332 3.847,0 7.179,0.778 9.992,2.332 2.812,1.555 5.031,3.418 6.66,5.59 2.121,2.664 3.566,5.649 4.328,8.953 0.766,3.309 1.148,10.512 1.148,21.614 0,11.05 -0.382,18.23 -1.148,21.539 -0.762,3.304 -2.207,6.34 -4.328,9.101 -1.629,2.075 -3.848,3.899 -6.66,5.477 -2.813,1.578 -6.145,2.371 -9.992,2.371 -3.848,0 -7.18,-0.793 -9.993,-2.371 -2.812,-1.578 -5.031,-3.402 -6.66,-5.477 -2.121,-2.761 -3.566,-5.797 -4.332,-9.101 -0.762,-3.309 -1.144,-10.489 -1.144,-21.539 z m 95.992,38.488 v -34.789 h 24.277 c 6.07,0 10.598,1.828 13.582,5.476 2.985,3.653 4.477,7.625 4.477,11.918 0,6.512 -2.344,11.301 -7.031,14.36 -3.008,2.023 -6.883,3.035 -11.622,3.035 z m -16.356,-92.371 v 107.84 h 39.153 c 4.195,-0.004 8.226,-0.446 12.101,-1.336 3.871,-0.887 7.907,-2.957 12.102,-6.215 3.254,-2.516 6.019,-5.984 8.289,-10.399 2.269,-4.417 3.402,-9.535 3.402,-15.359 0,-7.695 -2.871,-15.023 -8.621,-21.98 -5.75,-6.957 -14.148,-10.438 -25.199,-10.438 h -24.871 v -42.113 z" /><path - id="path5597" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 114.715,56.581 v 67.218 l -11.254,-8.211 v 12.02 l 11.254,8.211 h 11.367 V 56.581 Z" /><path - id="path5599" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 178.914,79.831 v 33.664 c 0,3.804 -1.023,6.781 -3.07,8.918 -2.051,2.14 -4.742,3.211 -8.078,3.211 -3.371,0 -6.075,-1.071 -8.102,-3.211 -2.031,-2.137 -3.047,-5.114 -3.047,-8.918 V 79.831 c 0,-3.844 1.016,-6.825 3.047,-8.946 2.027,-2.121 4.731,-3.179 8.102,-3.179 3.336,0 6.027,1.058 8.078,3.179 2.047,2.121 3.07,5.102 3.07,8.946 z M 145.25,79.178 v 34.969 c 0,7.289 2.285,12.918 6.855,16.887 4.567,3.969 9.786,5.953 15.661,5.953 5.836,0 11.05,-1.984 15.636,-5.953 4.586,-3.969 6.879,-9.598 6.879,-16.887 V 79.178 c 0,-7.285 -2.293,-12.906 -6.879,-16.859 -4.586,-3.949 -9.8,-5.926 -15.636,-5.926 -5.875,0 -11.094,1.977 -15.661,5.926 -4.57,3.953 -6.855,9.574 -6.855,16.859 z m 87.18,0.653 v 33.664 c 0,3.804 -1.028,6.781 -3.075,8.918 -2.046,2.14 -4.742,3.211 -8.078,3.211 -3.371,0 -6.07,-1.071 -8.101,-3.211 -2.031,-2.137 -3.047,-5.114 -3.047,-8.918 V 79.831 c 0,-3.844 1.016,-6.825 3.047,-8.946 2.031,-2.121 4.73,-3.179 8.101,-3.179 3.336,0 6.032,1.058 8.078,3.179 2.047,2.121 3.075,5.102 3.075,8.946 z m -33.664,-0.653 v 34.969 c 0,7.289 2.281,12.918 6.851,16.887 4.567,3.969 9.789,5.953 15.66,5.953 5.84,0 11.051,-1.984 15.637,-5.953 4.586,-3.969 6.879,-9.598 6.879,-16.887 V 79.178 c 0,-7.285 -2.293,-12.906 -6.879,-16.859 -4.586,-3.949 -9.797,-5.926 -15.637,-5.926 -5.871,0 -11.093,1.977 -15.66,5.926 -4.57,3.953 -6.851,9.574 -6.851,16.859 z" /><path - id="path5601" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600 450.00339" + height="450.00339" + width="600" + xml:space="preserve" + id="svg5575" + version="1.1"><metadata + id="metadata5581"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs5579" /><g + transform="matrix(1.3333333,0,0,-1.3333333,0,450.00338)" + id="g5583"><g + id="g5585"><path + id="path5587" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 29.996,337.288 c -16.41,0 -29.769,-13.36 -29.769,-29.782 V 29.999 C 0.227,13.585 13.586,0.225 29.996,0.225 h 390.008 c 16.422,0 29.781,13.36 29.781,29.774 v 277.507 c 0,16.422 -13.359,29.782 -29.781,29.782" /><path + id="path5589" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 29.996,0.44 C 13.699,0.44 0.445,13.698 0.445,29.999 v 277.507 c 0,16.297 13.254,29.555 29.551,29.555 h 390.008 c 16.297,0 29.551,-13.258 29.551,-29.555 V 29.999 C 449.555,13.698 436.301,0.44 420.004,0.44 Z M 420.004,337.503 H 29.996 C 13.434,337.503 0,324.069 0,307.506 V 29.999 c 0,-16.567 13.434,-30 29.996,-30 h 390.008 c 16.562,0 29.996,13.433 29.996,30 v 277.507 c 0,16.563 -13.434,29.997 -29.996,29.997" /><path + id="path5591" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 29.996,7.495 C 17.574,7.495 7.504,17.577 7.504,29.999 v 277.507 c 0,12.43 10.07,22.504 22.492,22.504 h 390.008 c 12.422,0 22.504,-10.074 22.504,-22.504 V 29.999 c 0,-12.422 -10.082,-22.504 -22.504,-22.504" /><path + id="path5593" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 29.996,18.753 c -6.203,0 -11.246,5.027 -11.246,11.246 v 277.507 c 0,6.215 5.043,11.247 11.246,11.247 h 390.008 c 6.215,0 11.254,-5.032 11.254,-11.247 V 29.999 c 0,-6.219 -5.039,-11.246 -11.254,-11.246" /><path + id="path5595" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 55.184,186.237 10.804,12.289 c 4.047,-3.258 8.707,-5.871 13.989,-7.848 5.277,-1.972 10.804,-2.961 16.578,-2.961 6.66,0 11.89,1.383 15.691,4.145 3.797,2.766 5.699,6.391 5.699,10.883 0,8.484 -4.687,13.343 -14.062,14.578 -2.469,0.297 -4.762,0.594 -6.883,0.89 -2.121,0.293 -4.59,0.641 -7.402,1.036 -9.325,1.281 -16.43,4.699 -21.317,10.25 -4.883,5.55 -7.328,12.25 -7.328,20.093 0,9.18 3.074,16.727 9.215,22.649 6.145,5.922 14.793,8.883 25.941,8.883 6.664,0 12.93,-1.063 18.801,-3.184 5.871,-2.121 11.274,-4.812 16.207,-8.066 l -9.101,-13.473 c -3.95,2.469 -8.192,4.469 -12.731,5.996 -4.539,1.531 -9.18,2.297 -13.914,2.297 -5.035,0 -9.301,-1.285 -12.805,-3.852 -3.503,-2.566 -5.253,-6.414 -5.253,-11.543 0,-3.062 1.183,-5.921 3.55,-8.586 2.371,-2.664 6.293,-4.417 11.77,-5.257 1.43,-0.246 3.156,-0.504 5.18,-0.778 2.023,-0.269 4.343,-0.554 6.957,-0.847 10.066,-1.235 17.503,-4.887 22.316,-10.957 4.809,-6.067 7.215,-12.778 7.215,-20.129 0,-9.918 -3.43,-17.617 -10.289,-23.094 -6.856,-5.477 -16.059,-8.215 -27.606,-8.215 -16.234,0 -29.976,4.934 -41.222,14.801 z m 114.793,-13.914 v 93.332 h -29.532 v 14.508 h 75.418 v -14.508 h -29.531 v -93.332 z m 53.804,53.883 c 0,12.976 0.348,21.34 1.039,25.09 0.688,3.75 1.922,7.203 3.7,10.363 2.515,4.687 6.648,9.101 12.398,13.246 5.746,4.144 12.863,6.219 21.352,6.219 8.437,0 15.531,-2.075 21.277,-6.219 5.75,-4.145 9.93,-8.559 12.547,-13.246 1.726,-3.16 2.933,-6.613 3.625,-10.363 0.691,-3.75 1.035,-12.114 1.035,-25.09 0,-12.977 -0.344,-21.34 -1.035,-25.09 -0.692,-3.75 -1.899,-7.203 -3.625,-10.363 -2.617,-4.735 -6.797,-9.141 -12.547,-13.211 -5.746,-4.071 -12.84,-6.106 -21.277,-6.106 -8.489,0 -15.606,2.035 -21.352,6.106 -5.75,4.07 -9.883,8.476 -12.398,13.211 -1.778,3.16 -3.012,6.613 -3.7,10.363 -0.691,3.75 -1.039,12.113 -1.039,25.09 z m 16.36,0 c 0,-11.102 0.382,-18.305 1.144,-21.614 0.766,-3.304 2.211,-6.289 4.332,-8.953 1.629,-2.172 3.848,-4.035 6.66,-5.59 2.813,-1.554 6.145,-2.332 9.993,-2.332 3.847,0 7.179,0.778 9.992,2.332 2.812,1.555 5.031,3.418 6.66,5.59 2.121,2.664 3.566,5.649 4.328,8.953 0.766,3.309 1.148,10.512 1.148,21.614 0,11.05 -0.382,18.23 -1.148,21.539 -0.762,3.304 -2.207,6.34 -4.328,9.101 -1.629,2.075 -3.848,3.899 -6.66,5.477 -2.813,1.578 -6.145,2.371 -9.992,2.371 -3.848,0 -7.18,-0.793 -9.993,-2.371 -2.812,-1.578 -5.031,-3.402 -6.66,-5.477 -2.121,-2.761 -3.566,-5.797 -4.332,-9.101 -0.762,-3.309 -1.144,-10.489 -1.144,-21.539 z m 95.992,38.488 v -34.789 h 24.277 c 6.07,0 10.598,1.828 13.582,5.476 2.985,3.653 4.477,7.625 4.477,11.918 0,6.512 -2.344,11.301 -7.031,14.36 -3.008,2.023 -6.883,3.035 -11.622,3.035 z m -16.356,-92.371 v 107.84 h 39.153 c 4.195,-0.004 8.226,-0.446 12.101,-1.336 3.871,-0.887 7.907,-2.957 12.102,-6.215 3.254,-2.516 6.019,-5.984 8.289,-10.399 2.269,-4.417 3.402,-9.535 3.402,-15.359 0,-7.695 -2.871,-15.023 -8.621,-21.98 -5.75,-6.957 -14.148,-10.438 -25.199,-10.438 h -24.871 v -42.113 z" /><path + id="path5597" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 114.715,56.581 v 67.218 l -11.254,-8.211 v 12.02 l 11.254,8.211 h 11.367 V 56.581 Z" /><path + id="path5599" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 178.914,79.831 v 33.664 c 0,3.804 -1.023,6.781 -3.07,8.918 -2.051,2.14 -4.742,3.211 -8.078,3.211 -3.371,0 -6.075,-1.071 -8.102,-3.211 -2.031,-2.137 -3.047,-5.114 -3.047,-8.918 V 79.831 c 0,-3.844 1.016,-6.825 3.047,-8.946 2.027,-2.121 4.731,-3.179 8.102,-3.179 3.336,0 6.027,1.058 8.078,3.179 2.047,2.121 3.07,5.102 3.07,8.946 z M 145.25,79.178 v 34.969 c 0,7.289 2.285,12.918 6.855,16.887 4.567,3.969 9.786,5.953 15.661,5.953 5.836,0 11.05,-1.984 15.636,-5.953 4.586,-3.969 6.879,-9.598 6.879,-16.887 V 79.178 c 0,-7.285 -2.293,-12.906 -6.879,-16.859 -4.586,-3.949 -9.8,-5.926 -15.636,-5.926 -5.875,0 -11.094,1.977 -15.661,5.926 -4.57,3.953 -6.855,9.574 -6.855,16.859 z m 87.18,0.653 v 33.664 c 0,3.804 -1.028,6.781 -3.075,8.918 -2.046,2.14 -4.742,3.211 -8.078,3.211 -3.371,0 -6.07,-1.071 -8.101,-3.211 -2.031,-2.137 -3.047,-5.114 -3.047,-8.918 V 79.831 c 0,-3.844 1.016,-6.825 3.047,-8.946 2.031,-2.121 4.73,-3.179 8.101,-3.179 3.336,0 6.032,1.058 8.078,3.179 2.047,2.121 3.075,5.102 3.075,8.946 z m -33.664,-0.653 v 34.969 c 0,7.289 2.281,12.918 6.851,16.887 4.567,3.969 9.789,5.953 15.66,5.953 5.84,0 11.051,-1.984 15.637,-5.953 4.586,-3.969 6.879,-9.598 6.879,-16.887 V 79.178 c 0,-7.285 -2.293,-12.906 -6.879,-16.859 -4.586,-3.949 -9.797,-5.926 -15.637,-5.926 -5.871,0 -11.093,1.977 -15.66,5.926 -4.57,3.953 -6.851,9.574 -6.851,16.859 z" /><path + id="path5601" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 271.004,56.381 v 54.602 H 282 v -5.84 h 0.211 c 3.469,4.313 8.203,6.469 14.199,6.469 3.824,0 6.856,-0.684 9.102,-2.051 2.242,-1.367 4.347,-3.051 6.312,-5.047 4.313,4.731 10.063,7.098 17.254,7.098 4.242,0 8.336,-1.613 12.281,-4.836 3.946,-3.227 5.918,-7.926 5.918,-14.098 V 56.381 h -10.996 v 32.508 c 0,3.684 -1.031,6.559 -3.101,8.629 -2.071,2.067 -4.629,3.102 -7.68,3.102 -3.156,0 -5.762,-1.035 -7.812,-3.102 -2.051,-2.07 -3.079,-4.945 -3.079,-8.629 V 56.381 h -10.937 v 32.508 c 0,3.684 -1.035,6.559 -3.106,8.629 -2.07,2.067 -4.628,3.102 -7.679,3.102 -3.157,0 -5.758,-1.035 -7.813,-3.102 C 283.023,95.448 282,92.573 282,88.889 V 56.381 Z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/DoNotEnter_267.svg b/content/html/_images/DoNotEnter_267.svg index 9d12111359ccb16e987618e73c136fa9760af8f3..2eecadf745b4e4fd961bfec5b470f26fcae239a5 100644 --- a/content/html/_images/DoNotEnter_267.svg +++ b/content/html/_images/DoNotEnter_267.svg @@ -1,101 +1,101 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600.99628 600.99628" - height="600.99628" - width="600.99628" - xml:space="preserve" - version="1.1" - id="svg4555"><metadata - id="metadata4561"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs4559" /><g - transform="matrix(1.25,0,0,-1.25,0,600.99628)" - id="g4563"><g - id="g4565"><path - id="path4567" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 480.398,240.399 c 0,-132.551 -107.449,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.55 107.45,240 240,240 132.551,0 240,-107.45 240,-240 z" /><path - id="path4569" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 240.402,472.402 c -127.75,0 -232,-104.25 -232,-232 0,-127.75 104.25,-232 232,-232 127.746,0 232,104.25 232,232 0,127.75 -104.254,232 -232,232 z m -208,-196 416,0 0,-72 -416,0 0,72 z" /><path - id="path4571" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 240.398,480.797 C 107.633,480.797 0,373.164 0,240.399 0,107.633 107.633,0 240.398,0 c 132.766,0 240.399,107.633 240.399,240.399 0,132.765 -107.633,240.398 -240.399,240.398 z m 0,-0.398 c 132.551,0 240,-107.45 240,-240 0,-132.551 -107.449,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.55 107.45,240 240,240 z" /><path - id="path4573" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.832,456.512 0,-0.024 -0.023,0 0.023,0.024 z" /><path - id="path4575" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.023,0 0,-0.023 -0.023,0 0,0.023 z" /><path - id="path4577" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.488 0,0.024 0.023,-0.024 -0.023,0 z m 0.023,0 -0.023,0.024 0,-0.024 0.023,0 z" /><path - id="path4579" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.488 -0.05,0 0.023,0 0,0.024 0.027,-0.024 z" /><path - id="path4581" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.488 0,0.024 0,-0.024 0.023,0.024 -0.023,-0.024 z" /><path - id="path4583" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.023,0 0,-0.023 -0.023,0 0,0.023 z" /><path - id="path4585" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.512 0,-0.047 -0.05,0 0.05,0.047 z" /><path - id="path4587" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path - id="path4589" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.465 0,0.047 0.05,-0.047 -0.05,0 z m 0.05,0 -0.05,0.047 0,-0.047 0.05,0 z" /><path - id="path4591" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.465 -0.05,0 0.023,0 0,0.047 0.027,-0.047 z" /><path - id="path4593" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.465 0,0.047 0,-0.047 0.05,0.047 -0.05,-0.047 z" /><path - id="path4595" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path - id="path4597" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.512 0,-0.047 -0.05,0 0.05,0.047 z" /><path - id="path4599" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path - id="path4601" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.465 0,0.047 0.05,-0.047 -0.05,0 z m 0.05,0 -0.05,0.047 0,-0.047 0.05,0 z" /><path - id="path4603" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.465 -0.05,0 0.023,0 0,0.047 0.027,-0.047 z" /><path - id="path4605" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.465 0,0.047 0,-0.047 0.05,0.047 -0.05,-0.047 z" /><path - id="path4607" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path - id="path4609" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.512 0,-0.047 -0.05,0 0.05,0.047 z" /><path - id="path4611" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path - id="path4613" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.465 0,0.047 0.05,-0.047 -0.05,0 z m 0.05,0 -0.05,0.047 0,-0.047 0.05,0 z" /><path - id="path4615" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.465 -0.05,0 0.023,0 0,0.047 0.027,-0.047 z" /><path - id="path4617" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.465 0,0.047 0,-0.047 0.05,0.047 -0.05,-0.047 z" /><path - id="path4619" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600.99628 600.99628" + height="600.99628" + width="600.99628" + xml:space="preserve" + version="1.1" + id="svg4555"><metadata + id="metadata4561"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs4559" /><g + transform="matrix(1.25,0,0,-1.25,0,600.99628)" + id="g4563"><g + id="g4565"><path + id="path4567" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 480.398,240.399 c 0,-132.551 -107.449,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.55 107.45,240 240,240 132.551,0 240,-107.45 240,-240 z" /><path + id="path4569" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 240.402,472.402 c -127.75,0 -232,-104.25 -232,-232 0,-127.75 104.25,-232 232,-232 127.746,0 232,104.25 232,232 0,127.75 -104.254,232 -232,232 z m -208,-196 416,0 0,-72 -416,0 0,72 z" /><path + id="path4571" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 240.398,480.797 C 107.633,480.797 0,373.164 0,240.399 0,107.633 107.633,0 240.398,0 c 132.766,0 240.399,107.633 240.399,240.399 0,132.765 -107.633,240.398 -240.399,240.398 z m 0,-0.398 c 132.551,0 240,-107.45 240,-240 0,-132.551 -107.449,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.55 107.45,240 240,240 z" /><path + id="path4573" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.832,456.512 0,-0.024 -0.023,0 0.023,0.024 z" /><path + id="path4575" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.023,0 0,-0.023 -0.023,0 0,0.023 z" /><path + id="path4577" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.488 0,0.024 0.023,-0.024 -0.023,0 z m 0.023,0 -0.023,0.024 0,-0.024 0.023,0 z" /><path + id="path4579" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.488 -0.05,0 0.023,0 0,0.024 0.027,-0.024 z" /><path + id="path4581" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.488 0,0.024 0,-0.024 0.023,0.024 -0.023,-0.024 z" /><path + id="path4583" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.023,0 0,-0.023 -0.023,0 0,0.023 z" /><path + id="path4585" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.512 0,-0.047 -0.05,0 0.05,0.047 z" /><path + id="path4587" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path + id="path4589" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.465 0,0.047 0.05,-0.047 -0.05,0 z m 0.05,0 -0.05,0.047 0,-0.047 0.05,0 z" /><path + id="path4591" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.465 -0.05,0 0.023,0 0,0.047 0.027,-0.047 z" /><path + id="path4593" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.465 0,0.047 0,-0.047 0.05,0.047 -0.05,-0.047 z" /><path + id="path4595" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path + id="path4597" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.512 0,-0.047 -0.05,0 0.05,0.047 z" /><path + id="path4599" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path + id="path4601" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.465 0,0.047 0.05,-0.047 -0.05,0 z m 0.05,0 -0.05,0.047 0,-0.047 0.05,0 z" /><path + id="path4603" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.465 -0.05,0 0.023,0 0,0.047 0.027,-0.047 z" /><path + id="path4605" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.465 0,0.047 0,-0.047 0.05,0.047 -0.05,-0.047 z" /><path + id="path4607" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path + id="path4609" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.512 0,-0.047 -0.05,0 0.05,0.047 z" /><path + id="path4611" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path + id="path4613" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.465 0,0.047 0.05,-0.047 -0.05,0 z m 0.05,0 -0.05,0.047 0,-0.047 0.05,0 z" /><path + id="path4615" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.465 -0.05,0 0.023,0 0,0.047 0.027,-0.047 z" /><path + id="path4617" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.465 0,0.047 0,-0.047 0.05,0.047 -0.05,-0.047 z" /><path + id="path4619" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/DoNotEnter_R5-1.svg b/content/html/_images/DoNotEnter_R5-1.svg index 475de7b2557f674da1a2df764cdbe3efc4ff4bef..95faa0aa66876a8488fc1645927686a1f0cef0a9 100644 --- a/content/html/_images/DoNotEnter_R5-1.svg +++ b/content/html/_images/DoNotEnter_R5-1.svg @@ -1,26 +1,26 @@ -<svg version="1.1" viewBox="-15.05 -15.05 30.1 30.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> - <defs> - <clipPath id="a"> - <circle r="12.5"/> - </clipPath> - </defs> - <rect x="-15" y="-15" width="30" height="30" ry="1.875" fill="#fff" stroke="#000" stroke-width=".1"/> - <circle r="14.5" fill="#a6192e"/> - <path d="m13-2.5v5h-26v-5z" clip-path="url(#a)" fill="#fff"/> - <g transform="matrix(.015625 0 0 .015625 -9.75 -8.5)"> - <g fill="none" stroke="#fff" stroke-width="40"> - <path id="e" transform="translate(230)" d="M90 16A62 62 0 0 1 148.9152669 58.68701655 222.289 222.289 0 0 1 160 128 222.289 222.289 0 0 1 148.9152669 197.3129834 62 62 0 0 1 90 240 62 62 0 0 1 31.08473313 197.3129834 222.289 222.289 0 0 1 20 128 222.289 222.289 0 0 1 31.08473313 58.68701655 62 62 0 0 1 90 16Z"/> - <path id="b" transform="translate(120,832)" d="M114 124H20M148 20H20V236H156"/> - <path d="M20 20H 72.29A72 72 0 0 1 138.0597738 62.68122408 160 160 0 0 1 152 128 160 160 0 0 1 138.0597738 193.3187759 72 72 0 0 1 72.29 235H20Z"/> - <use transform="translate(657)" xlink:href="#e"/> - <use transform="translate(629)" xlink:href="#b"/> - </g> - <g fill="#fff"> - <path id="d" transform="translate(651)" d="M0 0V256H40V86L136 256H172V0H132V167.5664062L37.3671875 0H0"/> - <path id="c" transform="translate(1108)" d="M0 0V36H58V256H98V36H156V0"/> - <use transform="translate(-322,832)" xlink:href="#d"/> - <use transform="translate(-561,832)" xlink:href="#c"/> - <path transform="translate(956,832)" d="M0 0V256H40V144H96A72 72 0 0 0 96 0M40 40H96A32 32 0 0 1 96 104H40M83.77148438 132.1425781 129.3730469 256H172L123.3984375 124"/> - </g> - </g> -</svg> +<svg version="1.1" viewBox="-15.05 -15.05 30.1 30.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <clipPath id="a"> + <circle r="12.5"/> + </clipPath> + </defs> + <rect x="-15" y="-15" width="30" height="30" ry="1.875" fill="#fff" stroke="#000" stroke-width=".1"/> + <circle r="14.5" fill="#a6192e"/> + <path d="m13-2.5v5h-26v-5z" clip-path="url(#a)" fill="#fff"/> + <g transform="matrix(.015625 0 0 .015625 -9.75 -8.5)"> + <g fill="none" stroke="#fff" stroke-width="40"> + <path id="e" transform="translate(230)" d="M90 16A62 62 0 0 1 148.9152669 58.68701655 222.289 222.289 0 0 1 160 128 222.289 222.289 0 0 1 148.9152669 197.3129834 62 62 0 0 1 90 240 62 62 0 0 1 31.08473313 197.3129834 222.289 222.289 0 0 1 20 128 222.289 222.289 0 0 1 31.08473313 58.68701655 62 62 0 0 1 90 16Z"/> + <path id="b" transform="translate(120,832)" d="M114 124H20M148 20H20V236H156"/> + <path d="M20 20H 72.29A72 72 0 0 1 138.0597738 62.68122408 160 160 0 0 1 152 128 160 160 0 0 1 138.0597738 193.3187759 72 72 0 0 1 72.29 235H20Z"/> + <use transform="translate(657)" xlink:href="#e"/> + <use transform="translate(629)" xlink:href="#b"/> + </g> + <g fill="#fff"> + <path id="d" transform="translate(651)" d="M0 0V256H40V86L136 256H172V0H132V167.5664062L37.3671875 0H0"/> + <path id="c" transform="translate(1108)" d="M0 0V36H58V256H98V36H156V0"/> + <use transform="translate(-322,832)" xlink:href="#d"/> + <use transform="translate(-561,832)" xlink:href="#c"/> + <path transform="translate(956,832)" d="M0 0V256H40V144H96A72 72 0 0 0 96 0M40 40H96A32 32 0 0 1 96 104H40M83.77148438 132.1425781 129.3730469 256H172L123.3984375 124"/> + </g> + </g> +</svg> diff --git a/content/html/_images/DoNotPass_R4-1.svg b/content/html/_images/DoNotPass_R4-1.svg index 2a49a9709da0b526a5794f719b8ec2be5ca8d580..8c7e975a46fd15d59f58ab51a56cd02511448a14 100644 --- a/content/html/_images/DoNotPass_R4-1.svg +++ b/content/html/_images/DoNotPass_R4-1.svg @@ -1,115 +1,115 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="184.65625" - height="230.4375" - id="svg4779" - version="1.1" - inkscape:version="0.48.2 r9819" - sodipodi:docname="MUTCD R3-11b.svg"> - <defs - id="defs4781" /> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="1.979899" - inkscape:cx="112.78267" - inkscape:cy="109.45635" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:window-width="1280" - inkscape:window-height="1004" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" /> - <metadata - id="metadata4784"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(-778.1875,260.375)"> - <path - inkscape:connector-curvature="0" - d="m 962.08636,-42.13199 c 0,6.29625 -5.15125,11.4475 -11.4475,11.4475 l -160.2675,0 c -6.29625,0 -11.44875,-5.15125 -11.44875,-11.4475 l 0,-206.05875 c 0,-6.29625 5.1525,-11.4475 11.44875,-11.4475 l 160.2675,0 c 6.29625,0 11.4475,5.15125 11.4475,11.4475 l 0,206.05875 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - id="path7177" /> - <path - inkscape:connector-curvature="0" - d="m 950.63864,-256.7765 -160.2675,0 c -4.7225,0 -8.58625,3.86375 -8.58625,8.58625 l 0,206.05875 c 0,4.72125 3.86375,8.585 8.58625,8.585 l 160.2675,0 c 4.7225,0 8.58625,-3.86375 8.58625,-8.585 l 0,-206.05875 c 0,-4.7225 -3.86375,-8.58625 -8.58625,-8.58625 m 3.81625,214.645 c 0,2.09875 -1.7175,3.815 -3.81625,3.815 l -160.2675,0 c -2.09875,0 -3.81625,-1.71625 -3.81625,-3.815 l 0,-206.05875 c 0,-2.09875 1.7175,-3.81625 3.81625,-3.81625 l 160.2675,0 c 2.09875,0 3.81625,1.7175 3.81625,3.81625 l 0,206.05875 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path7185" /> - <path - inkscape:connector-curvature="0" - d="m 850.87237,-187.13625 -16.145,0 0,-45.79125 14.78875,0 c 4.68,0 6.44375,0.4075 8.81875,2.375 4.88375,4.1375 7.53,11.465 7.53,20.41875 0,13.5675 -6.9875,22.9975 -14.9925,22.9975 m -0.74625,-38.5325 -8.14,0 0,31.13875 8.005,0 c 6.58,0 8.5475,-9.295 8.5475,-15.60375 0,-5.29125 -1.08625,-15.535 -8.4125,-15.535" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path7189" /> - <path - inkscape:connector-curvature="0" - d="m 903.64376,-191.47786 c -2.64625,3.46 -6.24125,5.15625 -11.0575,5.15625 -6.445,0 -10.38,-2.57875 -13.16125,-8.20875 -1.89875,-3.8675 -3.25625,-9.9725 -3.25625,-15.4 0,-7.5975 1.9,-14.38125 5.02,-18.655 2.64625,-3.595 6.445,-5.15625 11.73625,-5.15625 12.68625,0 15.73875,13.56875 15.73875,23.81125 0,7.19125 -1.83125,14.3825 -5.02,18.4525 m -10.71875,-34.86875 c -4.07,0 -5.97,1.6275 -7.5975,5.63 -1.085,2.71375 -1.76375,6.92 -1.76375,10.78625 0,4.8175 1.0175,9.76875 2.78125,12.68625 1.425,2.37375 3.32375,3.5275 6.24125,3.5275 3.39125,0 5.495,-1.76375 7.055,-5.76625 0.95,-2.4425 1.76375,-6.92 1.76375,-10.4475 0,-5.29125 -1.15375,-16.41625 -8.48,-16.41625" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path7193" /> - <path - inkscape:connector-curvature="0" - d="m 840.88926,-122.26588 -17.5025,-31.0025 0,31.0025 -7.25875,0 0,-45.79125 7.25875,0 16.68875,29.23875 0,-29.23875 7.19,0 0,45.79125 -6.37625,0 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path7197" /> - <path - inkscape:connector-curvature="0" - d="m 886.00087,-126.60762 c -2.64625,3.46 -6.24125,5.15625 -11.0575,5.15625 -6.445,0 -10.38,-2.57875 -13.16125,-8.20875 -1.89875,-3.8675 -3.25625,-9.9725 -3.25625,-15.4 0,-7.5975 1.9,-14.38125 5.02,-18.655 2.64625,-3.595 6.445,-5.15625 11.73625,-5.15625 12.68625,0 15.73875,13.56875 15.73875,23.81125 0,7.19125 -1.83125,14.3825 -5.02,18.4525 m -10.71875,-34.86875 c -4.07,0 -5.97,1.6275 -7.5975,5.63 -1.085,2.71375 -1.76375,6.92 -1.76375,10.78625 0,4.8175 1.0175,9.76875 2.78125,12.68625 1.425,2.37375 3.32375,3.5275 6.24125,3.5275 3.39125,0 5.495,-1.76375 7.055,-5.76625 0.95,-2.4425 1.76375,-6.91875 1.76375,-10.4475 0,-5.29125 -1.15375,-16.41625 -8.48,-16.41625" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path7201" /> - <path - inkscape:connector-curvature="0" - d="m 916.20663,-161.61213 0,39.34625 -7.25875,0 0,-39.34625 -10.4475,0 0,-6.445 28.28875,0 0,6.445 -10.5825,0 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path7205" /> - <path - inkscape:connector-curvature="0" - d="m 815.17,-77.34001 -8.955,0 0,19.945 -7.25875,0 0,-45.79125 17.3675,0 c 10.65,0 13.77125,8.615 13.77125,12.82125 0,3.5275 -2.17125,13.025 -14.925,13.025 m 1.4925,-18.5875 -10.4475,0 0,11.19375 10.4475,0 c 3.595,0 6.105,-2.375 6.105,-5.63125 0,-2.71375 -2.1025,-5.5625 -6.105,-5.5625" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path7209" /> - <path - inkscape:connector-curvature="0" - d="m 864.86999,-57.39563 -4.4775,-12.82125 -14.31375,0 -4.4775,12.82125 -7.73375,0 15.73875,-45.79125 7.25875,0 15.73875,45.79125 -7.73375,0 z m -11.5325,-33.105 -4.68125,12.88875 9.15875,0 -4.4775,-12.88875 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path7213" /> - <path - inkscape:connector-curvature="0" - d="m 893.83638,-56.58149 c -7.86875,0 -13.635,-4.68125 -16.68875,-11.6 l 6.92,-2.57875 c 1.9,4.3425 5.4275,6.785 9.76875,6.785 4.20625,0 7.055,-2.9175 7.055,-6.785 0,-6.105 -7.055,-7.055 -13.025,-9.42875 -2.71375,-1.15375 -8.81875,-3.8675 -8.81875,-11.3975 0,-9.0225 6.105,-12.41375 14.31375,-12.41375 6.445,0 10.78625,3.73125 13.025,9.36125 l -6.445,1.9 c -0.6775,-2.035 -3.595,-4.0025 -6.85125,-4.0025 -3.46,0 -7.25875,1.085 -6.9875,5.29125 0.67875,8.48 22.18375,2.9175 22.18375,20.89375 0,8.345 -6.24125,13.975 -14.45,13.975" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path7217" /> - <path - inkscape:connector-curvature="0" - d="m 930.46537,-56.58149 c -7.86875,0 -13.635,-4.68125 -16.68875,-11.6 l 6.92,-2.57875 c 1.9,4.3425 5.4275,6.785 9.76875,6.785 4.20625,0 7.055,-2.9175 7.055,-6.785 0,-6.105 -7.055,-7.055 -13.025,-9.42875 -2.71375,-1.15375 -8.81875,-3.8675 -8.81875,-11.3975 0,-9.0225 6.105,-12.41375 14.31375,-12.41375 6.445,0 10.78625,3.73125 13.025,9.36125 l -6.445,1.9 c -0.6775,-2.035 -3.595,-4.0025 -6.85125,-4.0025 -3.46,0 -7.25875,1.085 -6.9875,5.29125 0.67875,8.48 22.18375,2.9175 22.18375,20.89375 0,8.345 -6.24125,13.975 -14.45,13.975" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path7221" /> - </g> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="184.65625" + height="230.4375" + id="svg4779" + version="1.1" + inkscape:version="0.48.2 r9819" + sodipodi:docname="MUTCD R3-11b.svg"> + <defs + id="defs4781" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.979899" + inkscape:cx="112.78267" + inkscape:cy="109.45635" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1280" + inkscape:window-height="1004" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + <metadata + id="metadata4784"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-778.1875,260.375)"> + <path + inkscape:connector-curvature="0" + d="m 962.08636,-42.13199 c 0,6.29625 -5.15125,11.4475 -11.4475,11.4475 l -160.2675,0 c -6.29625,0 -11.44875,-5.15125 -11.44875,-11.4475 l 0,-206.05875 c 0,-6.29625 5.1525,-11.4475 11.44875,-11.4475 l 160.2675,0 c 6.29625,0 11.4475,5.15125 11.4475,11.4475 l 0,206.05875 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path7177" /> + <path + inkscape:connector-curvature="0" + d="m 950.63864,-256.7765 -160.2675,0 c -4.7225,0 -8.58625,3.86375 -8.58625,8.58625 l 0,206.05875 c 0,4.72125 3.86375,8.585 8.58625,8.585 l 160.2675,0 c 4.7225,0 8.58625,-3.86375 8.58625,-8.585 l 0,-206.05875 c 0,-4.7225 -3.86375,-8.58625 -8.58625,-8.58625 m 3.81625,214.645 c 0,2.09875 -1.7175,3.815 -3.81625,3.815 l -160.2675,0 c -2.09875,0 -3.81625,-1.71625 -3.81625,-3.815 l 0,-206.05875 c 0,-2.09875 1.7175,-3.81625 3.81625,-3.81625 l 160.2675,0 c 2.09875,0 3.81625,1.7175 3.81625,3.81625 l 0,206.05875 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path7185" /> + <path + inkscape:connector-curvature="0" + d="m 850.87237,-187.13625 -16.145,0 0,-45.79125 14.78875,0 c 4.68,0 6.44375,0.4075 8.81875,2.375 4.88375,4.1375 7.53,11.465 7.53,20.41875 0,13.5675 -6.9875,22.9975 -14.9925,22.9975 m -0.74625,-38.5325 -8.14,0 0,31.13875 8.005,0 c 6.58,0 8.5475,-9.295 8.5475,-15.60375 0,-5.29125 -1.08625,-15.535 -8.4125,-15.535" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path7189" /> + <path + inkscape:connector-curvature="0" + d="m 903.64376,-191.47786 c -2.64625,3.46 -6.24125,5.15625 -11.0575,5.15625 -6.445,0 -10.38,-2.57875 -13.16125,-8.20875 -1.89875,-3.8675 -3.25625,-9.9725 -3.25625,-15.4 0,-7.5975 1.9,-14.38125 5.02,-18.655 2.64625,-3.595 6.445,-5.15625 11.73625,-5.15625 12.68625,0 15.73875,13.56875 15.73875,23.81125 0,7.19125 -1.83125,14.3825 -5.02,18.4525 m -10.71875,-34.86875 c -4.07,0 -5.97,1.6275 -7.5975,5.63 -1.085,2.71375 -1.76375,6.92 -1.76375,10.78625 0,4.8175 1.0175,9.76875 2.78125,12.68625 1.425,2.37375 3.32375,3.5275 6.24125,3.5275 3.39125,0 5.495,-1.76375 7.055,-5.76625 0.95,-2.4425 1.76375,-6.92 1.76375,-10.4475 0,-5.29125 -1.15375,-16.41625 -8.48,-16.41625" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path7193" /> + <path + inkscape:connector-curvature="0" + d="m 840.88926,-122.26588 -17.5025,-31.0025 0,31.0025 -7.25875,0 0,-45.79125 7.25875,0 16.68875,29.23875 0,-29.23875 7.19,0 0,45.79125 -6.37625,0 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path7197" /> + <path + inkscape:connector-curvature="0" + d="m 886.00087,-126.60762 c -2.64625,3.46 -6.24125,5.15625 -11.0575,5.15625 -6.445,0 -10.38,-2.57875 -13.16125,-8.20875 -1.89875,-3.8675 -3.25625,-9.9725 -3.25625,-15.4 0,-7.5975 1.9,-14.38125 5.02,-18.655 2.64625,-3.595 6.445,-5.15625 11.73625,-5.15625 12.68625,0 15.73875,13.56875 15.73875,23.81125 0,7.19125 -1.83125,14.3825 -5.02,18.4525 m -10.71875,-34.86875 c -4.07,0 -5.97,1.6275 -7.5975,5.63 -1.085,2.71375 -1.76375,6.92 -1.76375,10.78625 0,4.8175 1.0175,9.76875 2.78125,12.68625 1.425,2.37375 3.32375,3.5275 6.24125,3.5275 3.39125,0 5.495,-1.76375 7.055,-5.76625 0.95,-2.4425 1.76375,-6.91875 1.76375,-10.4475 0,-5.29125 -1.15375,-16.41625 -8.48,-16.41625" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path7201" /> + <path + inkscape:connector-curvature="0" + d="m 916.20663,-161.61213 0,39.34625 -7.25875,0 0,-39.34625 -10.4475,0 0,-6.445 28.28875,0 0,6.445 -10.5825,0 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path7205" /> + <path + inkscape:connector-curvature="0" + d="m 815.17,-77.34001 -8.955,0 0,19.945 -7.25875,0 0,-45.79125 17.3675,0 c 10.65,0 13.77125,8.615 13.77125,12.82125 0,3.5275 -2.17125,13.025 -14.925,13.025 m 1.4925,-18.5875 -10.4475,0 0,11.19375 10.4475,0 c 3.595,0 6.105,-2.375 6.105,-5.63125 0,-2.71375 -2.1025,-5.5625 -6.105,-5.5625" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path7209" /> + <path + inkscape:connector-curvature="0" + d="m 864.86999,-57.39563 -4.4775,-12.82125 -14.31375,0 -4.4775,12.82125 -7.73375,0 15.73875,-45.79125 7.25875,0 15.73875,45.79125 -7.73375,0 z m -11.5325,-33.105 -4.68125,12.88875 9.15875,0 -4.4775,-12.88875 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path7213" /> + <path + inkscape:connector-curvature="0" + d="m 893.83638,-56.58149 c -7.86875,0 -13.635,-4.68125 -16.68875,-11.6 l 6.92,-2.57875 c 1.9,4.3425 5.4275,6.785 9.76875,6.785 4.20625,0 7.055,-2.9175 7.055,-6.785 0,-6.105 -7.055,-7.055 -13.025,-9.42875 -2.71375,-1.15375 -8.81875,-3.8675 -8.81875,-11.3975 0,-9.0225 6.105,-12.41375 14.31375,-12.41375 6.445,0 10.78625,3.73125 13.025,9.36125 l -6.445,1.9 c -0.6775,-2.035 -3.595,-4.0025 -6.85125,-4.0025 -3.46,0 -7.25875,1.085 -6.9875,5.29125 0.67875,8.48 22.18375,2.9175 22.18375,20.89375 0,8.345 -6.24125,13.975 -14.45,13.975" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path7217" /> + <path + inkscape:connector-curvature="0" + d="m 930.46537,-56.58149 c -7.86875,0 -13.635,-4.68125 -16.68875,-11.6 l 6.92,-2.57875 c 1.9,4.3425 5.4275,6.785 9.76875,6.785 4.20625,0 7.055,-2.9175 7.055,-6.785 0,-6.105 -7.055,-7.055 -13.025,-9.42875 -2.71375,-1.15375 -8.81875,-3.8675 -8.81875,-11.3975 0,-9.0225 6.105,-12.41375 14.31375,-12.41375 6.445,0 10.78625,3.73125 13.025,9.36125 l -6.445,1.9 c -0.6775,-2.035 -3.595,-4.0025 -6.85125,-4.0025 -3.46,0 -7.25875,1.085 -6.9875,5.29125 0.67875,8.48 22.18375,2.9175 22.18375,20.89375 0,8.345 -6.24125,13.975 -14.45,13.975" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path7221" /> + </g> +</svg> diff --git a/content/html/_images/EndOfMaximumSpeedLimit-39.svg b/content/html/_images/EndOfMaximumSpeedLimit-39.svg index db1fd3a61d1ff2084ba3bdfa5a0e55c475e9c4ec..cc520b816c6495045f30c182db2a4c27fb572940 100644 --- a/content/html/_images/EndOfMaximumSpeedLimit-39.svg +++ b/content/html/_images/EndOfMaximumSpeedLimit-39.svg @@ -1,124 +1,124 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.1" - id="svg1293" - width="300" - height="300" - viewBox="0 0 300 300" - sodipodi:docname="China_road_sign_ç¦_39 (40).svg" - inkscape:version="1.0 (4035a4fb49, 2020-05-01)"> - <metadata - id="metadata1299"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title /> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs1297" /> - <sodipodi:namedview - inkscape:document-rotation="0" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="1920" - inkscape:window-height="1001" - id="namedview1295" - showgrid="false" - inkscape:zoom="2.3906258" - inkscape:cx="50.702837" - inkscape:cy="200.83727" - inkscape:window-x="-9" - inkscape:window-y="-9" - inkscape:window-maximized="1" - inkscape:current-layer="g1301" /> - <g - inkscape:groupmode="layer" - inkscape:label="Image" - id="g1301" - transform="translate(2.8026251e-4,-21.837122)"> - <g - transform="matrix(0.74996596,-0.00707162,0.00707162,0.74996596,369.88551,24.049091)" - id="g3929" - inkscape:label="Image" - style="opacity:1"> - <g - inkscape:label="Image" - id="g3722" - transform="matrix(0.85382035,0,0,0.85382035,-493.97813,-7.7682848)"> - <g - id="g3720" - transform="matrix(1.2901279,0,0,1.2901279,-1.2275844,2.3962852)"> - <path - id="path3714" - d="M 362.52362,181.56447 A 180.9592,180.9592 0 0 1 181.56442,362.52367 180.9592,180.9592 0 0 1 0.60522461,181.56447 180.9592,180.9592 0 0 1 181.56442,0.60527039 180.9592,180.9592 0 0 1 362.52362,181.56447 Z" - style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.21043;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" /> - </g> - </g> - <g - transform="matrix(1.2189513,0,0,1.2189513,-495.96377,-8.4666747)" - inkscape:label="Image" - id="g1122"> - <g - inkscape:label="Image" - id="g3929-2" - transform="matrix(0.85382035,0,0,0.85382035,-246.55141,544.07557)"> - <g - transform="translate(-493.79868,-8.1185834)" - id="g3722-4" - inkscape:label="Image"> - <g - transform="matrix(1.0595545,0,0,1.0595545,140.15804,-108.85065)" - id="g3720-5"> - <path - id="path884" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:7.6209" - d="M 200,6.6660156 A 193.33353,193.33353 0 0 0 6.6660156,200 193.33353,193.33353 0 0 0 94.769531,362.18555 193.33353,193.33353 0 0 0 200,393.33398 193.33353,193.33353 0 0 0 393.33398,200 193.33353,193.33353 0 0 0 200,6.6660156 Z m 0,36.5527344 a 157.128,157.128 0 0 1 0.002,0 157.128,157.128 0 0 1 0.16407,0 157.128,157.128 0 0 1 87.27343,26.466797 L 69.505859,287.62305 A 157.128,157.128 0 0 1 43.037109,200.34766 157.128,157.128 0 0 1 200,43.21875 Z m 93.66406,30.847656 A 157.128,157.128 0 0 1 299.5,78.601562 L 78.419922,299.68164 a 157.128,157.128 0 0 1 -4.533203,-5.83398 z m 11.54883,9.429688 a 157.128,157.128 0 0 1 5.33984,5.029297 L 88.345703,310.73438 a 157.128,157.128 0 0 1 -5.03125,-5.33985 z m 10.55273,10.427734 a 157.128,157.128 0 0 1 4.84766,5.521484 L 99.261719,320.79492 a 157.128,157.128 0 0 1 -5.521485,-4.84961 z m 9.55469,11.423832 a 157.128,157.128 0 0 1 4.34961,6.01953 L 111.18359,329.85156 a 157.128,157.128 0 0 1 -6.01953,-4.34765 z m 8.53321,12.43945 a 157.128,157.128 0 0 1 23.43945,82.56055 157.128,157.128 0 0 1 -157.12695,157.12695 157.128,157.128 0 0 1 -82.5586,-23.4375 z" - transform="matrix(0.90682575,0,0,0.90682575,607.1458,-488.52484)" /> - </g> - </g> - </g> - <ellipse - ry="163.52841" - rx="163.52853" - cy="166.32684" - cx="164.84457" - style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;stroke:#000000;stroke-width:1.09383;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" - id="path3003" /> - <g - transform="matrix(0.68364771,0,0,-0.68364711,7.8849452,335.48921)" - id="g5160"> - <g - id="g5162" /> - </g> - </g> - </g> - <g - style="font-style:normal;font-weight:normal;font-size:131.634px;line-height:1.25;font-family:sans-serif;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.29086" - id="text1353" - transform="scale(0.83105409,1.2032911)" - aria-label="40"> - <path - d="m 237.91133,107.24952 q -9.34601,0 -16.71752,9.08275 -7.23987,8.95111 -7.23987,24.08902 0,13.29504 6.1868,23.16759 6.9766,10.79399 17.77059,10.79399 11.05726,0 17.63896,-10.92563 6.05516,-9.74091 6.05516,-23.03595 0,-13.1634 -6.05516,-22.77268 -6.5817,-10.39909 -17.63896,-10.39909 z m 0,87.93152 q -20.9298,0 -33.3034,-16.98079 -11.18889,-15.26954 -11.18889,-37.77896 0,-22.50941 11.32052,-37.64732 12.3736,-16.585886 33.17177,-16.585886 21.06144,0 33.30341,16.717516 11.05725,15.13791 11.05725,37.25242 0,22.37779 -11.32052,38.04223 -12.3736,16.98079 -33.04014,16.98079 z m -98.56096,-42.91269 v -34.75137 l -33.96157,34.75137 z m 0,40.93818 V 172.27672 H 76.824219 V 152.66325 L 139.87691,87.899326 h 19.61346 v 64.237394 h 10.79399 v 20.14 h -10.79399 v 20.92981 z" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:BywayEMod;-inkscape-font-specification:BywayEMod;fill:#000000;stroke-width:3.29086" - id="path6529" /> - </g> - </g> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="svg1293" + width="300" + height="300" + viewBox="0 0 300 300" + sodipodi:docname="China_road_sign_ç¦_39 (40).svg" + inkscape:version="1.0 (4035a4fb49, 2020-05-01)"> + <metadata + id="metadata1299"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs1297" /> + <sodipodi:namedview + inkscape:document-rotation="0" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1001" + id="namedview1295" + showgrid="false" + inkscape:zoom="2.3906258" + inkscape:cx="50.702837" + inkscape:cy="200.83727" + inkscape:window-x="-9" + inkscape:window-y="-9" + inkscape:window-maximized="1" + inkscape:current-layer="g1301" /> + <g + inkscape:groupmode="layer" + inkscape:label="Image" + id="g1301" + transform="translate(2.8026251e-4,-21.837122)"> + <g + transform="matrix(0.74996596,-0.00707162,0.00707162,0.74996596,369.88551,24.049091)" + id="g3929" + inkscape:label="Image" + style="opacity:1"> + <g + inkscape:label="Image" + id="g3722" + transform="matrix(0.85382035,0,0,0.85382035,-493.97813,-7.7682848)"> + <g + id="g3720" + transform="matrix(1.2901279,0,0,1.2901279,-1.2275844,2.3962852)"> + <path + id="path3714" + d="M 362.52362,181.56447 A 180.9592,180.9592 0 0 1 181.56442,362.52367 180.9592,180.9592 0 0 1 0.60522461,181.56447 180.9592,180.9592 0 0 1 181.56442,0.60527039 180.9592,180.9592 0 0 1 362.52362,181.56447 Z" + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.21043;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" /> + </g> + </g> + <g + transform="matrix(1.2189513,0,0,1.2189513,-495.96377,-8.4666747)" + inkscape:label="Image" + id="g1122"> + <g + inkscape:label="Image" + id="g3929-2" + transform="matrix(0.85382035,0,0,0.85382035,-246.55141,544.07557)"> + <g + transform="translate(-493.79868,-8.1185834)" + id="g3722-4" + inkscape:label="Image"> + <g + transform="matrix(1.0595545,0,0,1.0595545,140.15804,-108.85065)" + id="g3720-5"> + <path + id="path884" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:7.6209" + d="M 200,6.6660156 A 193.33353,193.33353 0 0 0 6.6660156,200 193.33353,193.33353 0 0 0 94.769531,362.18555 193.33353,193.33353 0 0 0 200,393.33398 193.33353,193.33353 0 0 0 393.33398,200 193.33353,193.33353 0 0 0 200,6.6660156 Z m 0,36.5527344 a 157.128,157.128 0 0 1 0.002,0 157.128,157.128 0 0 1 0.16407,0 157.128,157.128 0 0 1 87.27343,26.466797 L 69.505859,287.62305 A 157.128,157.128 0 0 1 43.037109,200.34766 157.128,157.128 0 0 1 200,43.21875 Z m 93.66406,30.847656 A 157.128,157.128 0 0 1 299.5,78.601562 L 78.419922,299.68164 a 157.128,157.128 0 0 1 -4.533203,-5.83398 z m 11.54883,9.429688 a 157.128,157.128 0 0 1 5.33984,5.029297 L 88.345703,310.73438 a 157.128,157.128 0 0 1 -5.03125,-5.33985 z m 10.55273,10.427734 a 157.128,157.128 0 0 1 4.84766,5.521484 L 99.261719,320.79492 a 157.128,157.128 0 0 1 -5.521485,-4.84961 z m 9.55469,11.423832 a 157.128,157.128 0 0 1 4.34961,6.01953 L 111.18359,329.85156 a 157.128,157.128 0 0 1 -6.01953,-4.34765 z m 8.53321,12.43945 a 157.128,157.128 0 0 1 23.43945,82.56055 157.128,157.128 0 0 1 -157.12695,157.12695 157.128,157.128 0 0 1 -82.5586,-23.4375 z" + transform="matrix(0.90682575,0,0,0.90682575,607.1458,-488.52484)" /> + </g> + </g> + </g> + <ellipse + ry="163.52841" + rx="163.52853" + cy="166.32684" + cx="164.84457" + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;stroke:#000000;stroke-width:1.09383;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" + id="path3003" /> + <g + transform="matrix(0.68364771,0,0,-0.68364711,7.8849452,335.48921)" + id="g5160"> + <g + id="g5162" /> + </g> + </g> + </g> + <g + style="font-style:normal;font-weight:normal;font-size:131.634px;line-height:1.25;font-family:sans-serif;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.29086" + id="text1353" + transform="scale(0.83105409,1.2032911)" + aria-label="40"> + <path + d="m 237.91133,107.24952 q -9.34601,0 -16.71752,9.08275 -7.23987,8.95111 -7.23987,24.08902 0,13.29504 6.1868,23.16759 6.9766,10.79399 17.77059,10.79399 11.05726,0 17.63896,-10.92563 6.05516,-9.74091 6.05516,-23.03595 0,-13.1634 -6.05516,-22.77268 -6.5817,-10.39909 -17.63896,-10.39909 z m 0,87.93152 q -20.9298,0 -33.3034,-16.98079 -11.18889,-15.26954 -11.18889,-37.77896 0,-22.50941 11.32052,-37.64732 12.3736,-16.585886 33.17177,-16.585886 21.06144,0 33.30341,16.717516 11.05725,15.13791 11.05725,37.25242 0,22.37779 -11.32052,38.04223 -12.3736,16.98079 -33.04014,16.98079 z m -98.56096,-42.91269 v -34.75137 l -33.96157,34.75137 z m 0,40.93818 V 172.27672 H 76.824219 V 152.66325 L 139.87691,87.899326 h 19.61346 v 64.237394 h 10.79399 v 20.14 h -10.79399 v 20.92981 z" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:BywayEMod;-inkscape-font-specification:BywayEMod;fill:#000000;stroke-width:3.29086" + id="path6529" /> + </g> + </g> +</svg> diff --git a/content/html/_images/EndOfMaximumSpeedLimit_278-130.svg b/content/html/_images/EndOfMaximumSpeedLimit_278-130.svg index ae750ff9b7b4201722ef5f6da828f6fadbe258b1..5c84bd181c3fa4cebd96e9f3d372eca0d52009c4 100644 --- a/content/html/_images/EndOfMaximumSpeedLimit_278-130.svg +++ b/content/html/_images/EndOfMaximumSpeedLimit_278-130.svg @@ -1,34 +1,34 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - version="1.1" - id="svg31277" - xml:space="preserve" - width="601.00201" - height="601.00195" - viewBox="0 0 601.00201 601.00195" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg"><defs - id="defs31281" /><g - id="g31283" - transform="matrix(1.3333333,0,0,1.3333333,0,1.1691715e-5)"><g - id="g31285"><path - d="m 450.375,225.375 c 0,124.266 -100.734,225 -225,225 -124.266,0 -225,-100.734 -225,-225 0,-124.266 100.734,-225 225,-225 124.266,0 225,100.734 225,225 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path31287" /><path - d="M 225.375,0 C 100.906,0 0,100.906 0,225.375 0,349.84 100.906,450.75 225.375,450.75 349.84,450.75 450.75,349.84 450.75,225.375 450.75,100.906 349.84,0 225.375,0 Z m 0,0.375 c 124.266,0 225,100.734 225,225 0,124.266 -100.734,225 -225,225 -124.266,0 -225,-100.734 -225,-225 0,-124.266 100.734,-225 225,-225 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path31289" /><path - d="m 106.828,336.453 h 31.828 v -222.16 h -31.828 l -31.824,23.402 v 33.7 l 31.824,-23.403 z" - style="fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path31291" /><path - d="m 282.469,289.504 c 0,29.152 21.785,46.949 46.64,46.949 24.856,0 46.641,-17.797 46.641,-46.949 V 161.242 c 0,-29.152 -21.785,-46.949 -46.641,-46.949 -24.855,0 -46.64,17.797 -46.64,46.949 z M 313.77,161.242 c 0,-8.898 6.441,-15.648 15.339,-15.648 8.899,0 15.344,6.75 15.344,15.648 v 128.262 c 0,8.898 -6.445,15.648 -15.344,15.648 -8.898,0 -15.339,-6.75 -15.339,-15.648 z" - style="fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path31293" /><path - d="m 198.715,235.816 c 20.25,0 24.859,3.672 24.859,20.547 v 31.297 c 0,10.75 -5.844,17.5 -15.344,17.5 -9.515,0 -15.343,-7.062 -15.343,-16.875 V 272.02 H 161.59 v 17.796 c 0,34.36 26.39,46.641 46.328,46.641 19.031,0 30.984,-8.594 38.656,-19.953 6.453,-9.5 8.297,-15.953 8.297,-44.797 0,-30.984 0,-38.047 -19.344,-50.016 17.797,-10.734 19.344,-15.64 19.344,-45.718 0,-27.922 -3.687,-36.516 -11.969,-46.328 -5.531,-6.75 -17.187,-15.344 -34.062,-15.344 -25.781,0 -47.25,20.562 -47.25,46.328 v 18.109 h 31.297 v -17.797 c 0,-6.453 4.297,-15.343 15.343,-15.343 9.5,0 15.344,6.437 15.344,15.343 v 28.235 c 0,16.25 -6.14,19.015 -24.859,19.015 z" - style="fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path31295" /><path - d="M 225.375,7.926 C 105.352,7.926 7.93,105.352 7.93,225.375 c 0,120.023 97.422,217.445 217.445,217.445 120.023,0 217.449,-97.422 217.449,-217.445 0,-120.023 -97.426,-217.449 -217.449,-217.449 z m 0,11.25 c 43.414,0 83.672,13.402 116.883,36.285 L 55.457,342.258 C 32.578,309.047 19.176,268.789 19.176,225.375 19.176,111.43 111.43,19.176 225.375,19.176 Z m 123.676,41.156 c 2.265,1.703 4.492,3.453 6.687,5.246 l -290.16,290.16 c -1.793,-2.195 -3.543,-4.422 -5.246,-6.687 z m 12.988,10.609 c 2.109,1.868 4.184,3.774 6.215,5.723 L 76.664,368.25 c -1.949,-2.027 -3.855,-4.102 -5.723,-6.211 z M 374.086,82.5 c 1.949,2.027 3.855,4.102 5.723,6.211 L 88.711,379.809 c -2.109,-1.868 -4.184,-3.774 -6.211,-5.723 z m 11.086,12.508 c 1.793,2.195 3.543,4.422 5.246,6.687 L 101.699,390.418 c -2.265,-1.703 -4.496,-3.453 -6.687,-5.246 z m 10.121,13.484 c 22.879,33.215 36.285,73.469 36.285,116.883 0,113.945 -92.258,206.195 -206.203,206.195 -43.41,0 -83.672,-13.402 -116.883,-36.281 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path31297" /></g></g></svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + version="1.1" + id="svg31277" + xml:space="preserve" + width="601.00201" + height="601.00195" + viewBox="0 0 601.00201 601.00195" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"><defs + id="defs31281" /><g + id="g31283" + transform="matrix(1.3333333,0,0,1.3333333,0,1.1691715e-5)"><g + id="g31285"><path + d="m 450.375,225.375 c 0,124.266 -100.734,225 -225,225 -124.266,0 -225,-100.734 -225,-225 0,-124.266 100.734,-225 225,-225 124.266,0 225,100.734 225,225 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path31287" /><path + d="M 225.375,0 C 100.906,0 0,100.906 0,225.375 0,349.84 100.906,450.75 225.375,450.75 349.84,450.75 450.75,349.84 450.75,225.375 450.75,100.906 349.84,0 225.375,0 Z m 0,0.375 c 124.266,0 225,100.734 225,225 0,124.266 -100.734,225 -225,225 -124.266,0 -225,-100.734 -225,-225 0,-124.266 100.734,-225 225,-225 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path31289" /><path + d="m 106.828,336.453 h 31.828 v -222.16 h -31.828 l -31.824,23.402 v 33.7 l 31.824,-23.403 z" + style="fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path31291" /><path + d="m 282.469,289.504 c 0,29.152 21.785,46.949 46.64,46.949 24.856,0 46.641,-17.797 46.641,-46.949 V 161.242 c 0,-29.152 -21.785,-46.949 -46.641,-46.949 -24.855,0 -46.64,17.797 -46.64,46.949 z M 313.77,161.242 c 0,-8.898 6.441,-15.648 15.339,-15.648 8.899,0 15.344,6.75 15.344,15.648 v 128.262 c 0,8.898 -6.445,15.648 -15.344,15.648 -8.898,0 -15.339,-6.75 -15.339,-15.648 z" + style="fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path31293" /><path + d="m 198.715,235.816 c 20.25,0 24.859,3.672 24.859,20.547 v 31.297 c 0,10.75 -5.844,17.5 -15.344,17.5 -9.515,0 -15.343,-7.062 -15.343,-16.875 V 272.02 H 161.59 v 17.796 c 0,34.36 26.39,46.641 46.328,46.641 19.031,0 30.984,-8.594 38.656,-19.953 6.453,-9.5 8.297,-15.953 8.297,-44.797 0,-30.984 0,-38.047 -19.344,-50.016 17.797,-10.734 19.344,-15.64 19.344,-45.718 0,-27.922 -3.687,-36.516 -11.969,-46.328 -5.531,-6.75 -17.187,-15.344 -34.062,-15.344 -25.781,0 -47.25,20.562 -47.25,46.328 v 18.109 h 31.297 v -17.797 c 0,-6.453 4.297,-15.343 15.343,-15.343 9.5,0 15.344,6.437 15.344,15.343 v 28.235 c 0,16.25 -6.14,19.015 -24.859,19.015 z" + style="fill:#666666;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path31295" /><path + d="M 225.375,7.926 C 105.352,7.926 7.93,105.352 7.93,225.375 c 0,120.023 97.422,217.445 217.445,217.445 120.023,0 217.449,-97.422 217.449,-217.445 0,-120.023 -97.426,-217.449 -217.449,-217.449 z m 0,11.25 c 43.414,0 83.672,13.402 116.883,36.285 L 55.457,342.258 C 32.578,309.047 19.176,268.789 19.176,225.375 19.176,111.43 111.43,19.176 225.375,19.176 Z m 123.676,41.156 c 2.265,1.703 4.492,3.453 6.687,5.246 l -290.16,290.16 c -1.793,-2.195 -3.543,-4.422 -5.246,-6.687 z m 12.988,10.609 c 2.109,1.868 4.184,3.774 6.215,5.723 L 76.664,368.25 c -1.949,-2.027 -3.855,-4.102 -5.723,-6.211 z M 374.086,82.5 c 1.949,2.027 3.855,4.102 5.723,6.211 L 88.711,379.809 c -2.109,-1.868 -4.184,-3.774 -6.211,-5.723 z m 11.086,12.508 c 1.793,2.195 3.543,4.422 5.246,6.687 L 101.699,390.418 c -2.265,-1.703 -4.496,-3.453 -6.687,-5.246 z m 10.121,13.484 c 22.879,33.215 36.285,73.469 36.285,116.883 0,113.945 -92.258,206.195 -206.203,206.195 -43.41,0 -83.672,-13.402 -116.883,-36.281 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path31297" /></g></g></svg> diff --git a/content/html/_images/EndOfMaximumSpeedLimit_278-5.svg b/content/html/_images/EndOfMaximumSpeedLimit_278-5.svg index 80aec1e763076ad7c26713a3b29e668842566719..8af4faf8ac18711639e5da5ff24d8126bee28efc 100644 --- a/content/html/_images/EndOfMaximumSpeedLimit_278-5.svg +++ b/content/html/_images/EndOfMaximumSpeedLimit_278-5.svg @@ -1,29 +1,29 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 601 604.72064" - height="604.72064" - width="601" - xml:space="preserve" - id="svg3796" - version="1.1"><metadata - id="metadata5207"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs3800" /><path - id="path3806" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 600.49998,302.36032 c 0,166.71374 -134.31199,301.85724 -299.99999,301.85724 C 134.812,604.21756 0.49999999,469.07406 0.49999999,302.36032 0.49999999,135.64659 134.812,0.5030954 300.49999,0.5030954 c 165.688,0 299.99999,135.1434946 299.99999,301.8572246 z" /><path - id="path3808" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="M 300.49999,0 C 134.54133,0 0,135.37424 0,302.36032 c 0,166.98071 134.54133,302.36033 300.49999,302.36033 165.95333,0 300.49999,-135.37962 300.49999,-302.36033 C 600.99998,135.37424 466.45332,0 300.49999,0 Z m 0,0.5030954 c 165.688,0 299.99999,135.1434946 299.99999,301.8572246 0,166.71374 -134.31199,301.85724 -299.99999,301.85724 C 134.812,604.21756 0.49999999,469.07406 0.49999999,302.36032 0.49999999,135.64659 134.812,0.5030954 300.49999,0.5030954 Z" /><path - id="path5123" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:348.18942261px;line-height:125%;font-family:'DIN 1451 Std';-inkscape-font-specification:'DIN 1451 Std';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.07722671px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 223.48816,156.84851 H 377.1065 v 41.3432 H 262.3994 v 65.25738 q 19.86094,-15.80769 46.20708,-15.80769 16.61835,0 29.99409,6.48521 13.37574,6.07988 21.48225,14.59172 6.07988,6.48521 10.13315,12.97041 4.45857,6.07988 6.89053,14.99704 2.83727,8.91716 4.05324,21.07692 1.62132,12.15976 1.62132,29.99409 0,14.59171 -1.21599,25.13017 -0.81065,10.13314 -3.24259,18.23965 -2.02663,7.70117 -5.26924,13.78106 -3.2426,6.07988 -8.10651,12.15976 -8.91716,11.34911 -24.72486,21.07692 -15.80769,9.7278 -37.69527,9.7278 -14.18639,0 -28.37277,-4.05325 -13.78106,-4.05325 -25.5355,-12.9704 -11.75443,-9.3225 -19.86094,-23.50888 -8.10651,-14.18639 -10.53847,-34.45266 h 41.34319 q 3.24261,15.40236 13.37575,24.72485 10.53846,8.91715 27.96745,8.91715 14.99703,0 23.10354,-5.67455 8.51184,-6.07988 12.15977,-14.99705 4.05325,-9.32247 4.45858,-20.26626 0.81066,-10.94379 0.81066,-21.07693 0,-12.15975 -2.02663,-22.29289 -1.62132,-10.13313 -6.07989,-17.429 -4.45857,-7.29585 -12.97041,-11.34911 -8.10651,-4.45857 -20.67159,-4.45857 -11.75445,0 -21.07693,5.67455 -8.91716,5.26924 -16.21301,18.23965 h -38.91124 z" /><path - id="path3814" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 601 604.72064" + height="604.72064" + width="601" + xml:space="preserve" + id="svg3796" + version="1.1"><metadata + id="metadata5207"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs3800" /><path + id="path3806" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 600.49998,302.36032 c 0,166.71374 -134.31199,301.85724 -299.99999,301.85724 C 134.812,604.21756 0.49999999,469.07406 0.49999999,302.36032 0.49999999,135.64659 134.812,0.5030954 300.49999,0.5030954 c 165.688,0 299.99999,135.1434946 299.99999,301.8572246 z" /><path + id="path3808" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="M 300.49999,0 C 134.54133,0 0,135.37424 0,302.36032 c 0,166.98071 134.54133,302.36033 300.49999,302.36033 165.95333,0 300.49999,-135.37962 300.49999,-302.36033 C 600.99998,135.37424 466.45332,0 300.49999,0 Z m 0,0.5030954 c 165.688,0 299.99999,135.1434946 299.99999,301.8572246 0,166.71374 -134.31199,301.85724 -299.99999,301.85724 C 134.812,604.21756 0.49999999,469.07406 0.49999999,302.36032 0.49999999,135.64659 134.812,0.5030954 300.49999,0.5030954 Z" /><path + id="path5123" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:348.18942261px;line-height:125%;font-family:'DIN 1451 Std';-inkscape-font-specification:'DIN 1451 Std';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.07722671px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 223.48816,156.84851 H 377.1065 v 41.3432 H 262.3994 v 65.25738 q 19.86094,-15.80769 46.20708,-15.80769 16.61835,0 29.99409,6.48521 13.37574,6.07988 21.48225,14.59172 6.07988,6.48521 10.13315,12.97041 4.45857,6.07988 6.89053,14.99704 2.83727,8.91716 4.05324,21.07692 1.62132,12.15976 1.62132,29.99409 0,14.59171 -1.21599,25.13017 -0.81065,10.13314 -3.24259,18.23965 -2.02663,7.70117 -5.26924,13.78106 -3.2426,6.07988 -8.10651,12.15976 -8.91716,11.34911 -24.72486,21.07692 -15.80769,9.7278 -37.69527,9.7278 -14.18639,0 -28.37277,-4.05325 -13.78106,-4.05325 -25.5355,-12.9704 -11.75443,-9.3225 -19.86094,-23.50888 -8.10651,-14.18639 -10.53847,-34.45266 h 41.34319 q 3.24261,15.40236 13.37575,24.72485 10.53846,8.91715 27.96745,8.91715 14.99703,0 23.10354,-5.67455 8.51184,-6.07988 12.15977,-14.99705 4.05325,-9.32247 4.45858,-20.26626 0.81066,-10.94379 0.81066,-21.07693 0,-12.15975 -2.02663,-22.29289 -1.62132,-10.13313 -6.07989,-17.429 -4.45857,-7.29585 -12.97041,-11.34911 -8.10651,-4.45857 -20.67159,-4.45857 -11.75445,0 -21.07693,5.67455 -8.91716,5.26924 -16.21301,18.23965 h -38.91124 z" /><path + id="path3814" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" d="m 300.49999,10.633424 c -160.03066,0 -289.926657,130.705516 -289.926657,291.726896 0,161.02139 129.895997,291.72154 289.926657,291.72154 160.03067,0 289.932,-130.70015 289.932,-291.72154 0,-161.02138 -129.90133,-291.726896 -289.932,-291.726896 z m 0,15.092862 c 57.88533,0 111.56267,17.979958 155.844,48.67951 L 73.942665,459.16912 C 43.437332,414.61365 25.567999,360.60402 25.567999,302.36032 25.567999,149.49311 148.57333,25.726286 300.49999,25.726286 Z m 164.90133,55.214383 c 3.02,2.284724 5.98933,4.632502 8.916,7.03797 L 87.437331,477.25372 c -2.390666,-2.94478 -4.724,-5.9325 -6.994666,-8.9712 z m 17.31733,14.232904 c 2.812,2.506086 5.57867,5.063147 8.28667,7.677907 L 102.21866,494.03967 c -2.598662,-2.71941 -5.139996,-5.50319 -7.630662,-8.3326 z m 16.06267,15.507407 c 2.59867,2.7194 5.14,5.50319 7.63067,8.3326 l -388.13066,390.5335 c -2.812,-2.50609 -5.57867,-5.06315 -8.28133,-7.67791 z m 14.78133,16.78058 c 2.39067,2.94479 4.724,5.9325 6.99467,8.97119 L 135.59866,523.77998 c -3.02,-2.28472 -5.99466,-4.6325 -8.916,-7.03796 z m 13.49467,18.08997 c 30.50533,44.56083 48.38,98.5651 48.38,156.80879 0,152.86722 -123.01066,276.62867 -274.93733,276.62867 -57.88,0 -111.56266,-17.97995 -155.84399,-48.67413 z" /></svg> \ No newline at end of file diff --git a/content/html/_images/EndOfMinimumSpeedLimit_279.svg b/content/html/_images/EndOfMinimumSpeedLimit_279.svg index f697bb0417072be0c792467cc421c15d01e2cfa7..6e476e934f3e435b58fddd0537b2bcec72edc127 100644 --- a/content/html/_images/EndOfMinimumSpeedLimit_279.svg +++ b/content/html/_images/EndOfMinimumSpeedLimit_279.svg @@ -1,38 +1,38 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 602.02063 602.02252" - height="602.02252" - width="602.02063" - xml:space="preserve" - version="1.1" - id="svg12298"><metadata - id="metadata12304"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs12302" /><g - transform="matrix(1.25,0,0,-1.25,0,602.02251)" - id="g12306"><g - id="g12308"><path - id="path12310" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 410.824,410.778 c 31.278,-31.277 50.75,-64.996 62.203,-107.726 11.453,-42.77 11.453,-81.715 0,-124.485 C 461.578,135.837 442.086,102.098 410.789,70.802 379.512,39.524 345.789,20.048 303.039,8.579 260.293,-2.855 221.324,-2.87 178.578,8.598 135.844,20.052 102.125,39.524 70.848,70.802 39.551,102.098 20.059,135.837 8.59,178.587 c -11.453,42.73 -11.453,81.715 0,124.445 11.469,42.746 30.941,76.469 62.222,107.746 31.293,31.297 65.036,50.789 107.762,62.242 42.75,11.469 81.719,11.453 124.469,0.02 42.746,-11.473 76.484,-30.961 107.781,-62.262 z m -0.281,-0.281 C 379.289,441.751 345.629,461.2 302.938,472.653 260.246,484.071 221.367,484.091 178.68,472.634 136.004,461.196 102.348,441.751 71.094,410.497 39.859,379.259 20.426,345.618 8.973,302.931 -2.461,260.259 -2.461,221.364 8.977,178.692 20.43,136.001 39.879,102.341 71.133,71.087 102.367,39.852 136.012,20.423 178.68,8.985 221.371,-2.468 260.246,-2.448 302.938,8.966 c 42.691,11.453 76.332,30.882 107.57,62.117 31.254,31.254 50.699,64.914 62.133,107.59 11.437,42.707 11.437,81.566 0,124.273 -11.43,42.672 -30.864,76.317 -62.098,107.551 z" /><path - id="path12312" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 71.094,410.497 c 31.254,31.254 64.91,50.699 107.586,62.137 42.687,11.457 81.566,11.437 124.258,0.019 42.691,-11.457 76.351,-30.902 107.605,-62.156 31.238,-31.234 50.668,-64.879 62.098,-107.551 11.437,-42.707 11.437,-81.57 0.004,-124.277 C 461.207,135.997 441.762,102.337 410.508,71.083 379.27,39.848 345.629,20.419 302.941,8.966 260.25,-2.452 221.371,-2.468 178.68,8.985 136.012,20.423 102.371,39.848 71.133,71.087 39.879,102.341 20.434,136.001 8.977,178.692 c -11.438,42.672 -11.438,81.567 0,124.242 11.449,42.684 30.882,76.325 62.117,107.563 z" /><path - id="path12314" - style="fill:#154889;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 79.035,402.595 c 29.77,29.769 61.867,48.32 102.555,59.195 40.683,10.914 77.777,10.914 118.445,0.019 40.684,-10.875 72.801,-29.441 102.59,-59.23 29.773,-29.773 48.281,-61.871 59.176,-102.535 10.894,-40.707 10.894,-77.762 0.004,-118.465 C 450.906,140.911 432.379,108.794 402.609,79.024 372.816,49.235 340.719,30.684 300.035,19.809 259.367,8.915 222.273,8.915 181.586,19.829 140.902,30.704 108.824,49.235 79.051,79.005 c -29.789,29.793 -48.356,61.906 -59.227,102.59 -10.898,40.668 -10.898,77.761 0,118.429 10.871,40.684 29.422,72.782 59.211,102.571 z" /><path - id="path12316" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 82.223,180.595 34.914,0 c 4.746,-19.61 24.504,-31.676 44.125,-26.918 16.398,3.968 27.949,18.656 27.949,35.523 l 0,4.297 c 0,20.195 -16.371,36.555 -36.551,36.555 l -15.051,0 0,30.109 15.051,0 c 18.992,0 34.402,15.398 34.402,34.391 0,19.007 -15.41,34.406 -34.402,34.406 -16.508,0 -30.707,-11.735 -33.801,-27.949 l -34.695,0 c 3.555,37.828 37.109,65.609 74.938,62.05 35.351,-3.324 62.355,-33.007 62.355,-68.507 0,-19.586 -9.527,-37.95 -25.535,-49.223 17.297,-11.566 27.683,-31.02 27.683,-51.832 l 0,-4.297 c 0,-39.187 -31.761,-70.945 -70.945,-70.945 -35.863,0 -66.082,26.746 -70.437,62.34" /><path - id="path12318" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 292.418,187.052 c 0,-19.004 15.387,-34.407 34.402,-34.407 18.996,0 34.395,15.403 34.395,34.407 l 0,107.5 c 0,19.007 -15.399,34.406 -34.395,34.406 -19.015,0 -34.402,-15.399 -34.402,-34.406 l 0,-107.5 z m -34.406,0 0,107.5 c 0,38 30.8,68.812 68.808,68.812 37.989,0 68.789,-30.812 68.789,-68.812 l 0,-107.5 c 0,-37.996 -30.8,-68.797 -68.789,-68.797 -38.008,0 -68.808,30.801 -68.808,68.797" /><path - id="path12320" - style="fill:#af151b;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 602.02063 602.02252" + height="602.02252" + width="602.02063" + xml:space="preserve" + version="1.1" + id="svg12298"><metadata + id="metadata12304"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs12302" /><g + transform="matrix(1.25,0,0,-1.25,0,602.02251)" + id="g12306"><g + id="g12308"><path + id="path12310" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 410.824,410.778 c 31.278,-31.277 50.75,-64.996 62.203,-107.726 11.453,-42.77 11.453,-81.715 0,-124.485 C 461.578,135.837 442.086,102.098 410.789,70.802 379.512,39.524 345.789,20.048 303.039,8.579 260.293,-2.855 221.324,-2.87 178.578,8.598 135.844,20.052 102.125,39.524 70.848,70.802 39.551,102.098 20.059,135.837 8.59,178.587 c -11.453,42.73 -11.453,81.715 0,124.445 11.469,42.746 30.941,76.469 62.222,107.746 31.293,31.297 65.036,50.789 107.762,62.242 42.75,11.469 81.719,11.453 124.469,0.02 42.746,-11.473 76.484,-30.961 107.781,-62.262 z m -0.281,-0.281 C 379.289,441.751 345.629,461.2 302.938,472.653 260.246,484.071 221.367,484.091 178.68,472.634 136.004,461.196 102.348,441.751 71.094,410.497 39.859,379.259 20.426,345.618 8.973,302.931 -2.461,260.259 -2.461,221.364 8.977,178.692 20.43,136.001 39.879,102.341 71.133,71.087 102.367,39.852 136.012,20.423 178.68,8.985 221.371,-2.468 260.246,-2.448 302.938,8.966 c 42.691,11.453 76.332,30.882 107.57,62.117 31.254,31.254 50.699,64.914 62.133,107.59 11.437,42.707 11.437,81.566 0,124.273 -11.43,42.672 -30.864,76.317 -62.098,107.551 z" /><path + id="path12312" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 71.094,410.497 c 31.254,31.254 64.91,50.699 107.586,62.137 42.687,11.457 81.566,11.437 124.258,0.019 42.691,-11.457 76.351,-30.902 107.605,-62.156 31.238,-31.234 50.668,-64.879 62.098,-107.551 11.437,-42.707 11.437,-81.57 0.004,-124.277 C 461.207,135.997 441.762,102.337 410.508,71.083 379.27,39.848 345.629,20.419 302.941,8.966 260.25,-2.452 221.371,-2.468 178.68,8.985 136.012,20.423 102.371,39.848 71.133,71.087 39.879,102.341 20.434,136.001 8.977,178.692 c -11.438,42.672 -11.438,81.567 0,124.242 11.449,42.684 30.882,76.325 62.117,107.563 z" /><path + id="path12314" + style="fill:#154889;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 79.035,402.595 c 29.77,29.769 61.867,48.32 102.555,59.195 40.683,10.914 77.777,10.914 118.445,0.019 40.684,-10.875 72.801,-29.441 102.59,-59.23 29.773,-29.773 48.281,-61.871 59.176,-102.535 10.894,-40.707 10.894,-77.762 0.004,-118.465 C 450.906,140.911 432.379,108.794 402.609,79.024 372.816,49.235 340.719,30.684 300.035,19.809 259.367,8.915 222.273,8.915 181.586,19.829 140.902,30.704 108.824,49.235 79.051,79.005 c -29.789,29.793 -48.356,61.906 -59.227,102.59 -10.898,40.668 -10.898,77.761 0,118.429 10.871,40.684 29.422,72.782 59.211,102.571 z" /><path + id="path12316" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 82.223,180.595 34.914,0 c 4.746,-19.61 24.504,-31.676 44.125,-26.918 16.398,3.968 27.949,18.656 27.949,35.523 l 0,4.297 c 0,20.195 -16.371,36.555 -36.551,36.555 l -15.051,0 0,30.109 15.051,0 c 18.992,0 34.402,15.398 34.402,34.391 0,19.007 -15.41,34.406 -34.402,34.406 -16.508,0 -30.707,-11.735 -33.801,-27.949 l -34.695,0 c 3.555,37.828 37.109,65.609 74.938,62.05 35.351,-3.324 62.355,-33.007 62.355,-68.507 0,-19.586 -9.527,-37.95 -25.535,-49.223 17.297,-11.566 27.683,-31.02 27.683,-51.832 l 0,-4.297 c 0,-39.187 -31.761,-70.945 -70.945,-70.945 -35.863,0 -66.082,26.746 -70.437,62.34" /><path + id="path12318" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 292.418,187.052 c 0,-19.004 15.387,-34.407 34.402,-34.407 18.996,0 34.395,15.403 34.395,34.407 l 0,107.5 c 0,19.007 -15.399,34.406 -34.395,34.406 -19.015,0 -34.402,-15.399 -34.402,-34.406 l 0,-107.5 z m -34.406,0 0,107.5 c 0,38 30.8,68.812 68.808,68.812 37.989,0 68.789,-30.812 68.789,-68.812 l 0,-107.5 c 0,-37.996 -30.8,-68.797 -68.789,-68.797 -38.008,0 -68.808,30.801 -68.808,68.797" /><path + id="path12320" + style="fill:#af151b;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 384.781,418.837 384.648,418.704 62.785,96.852 C 72.906,84.341 84.328,72.919 96.852,62.798 l 0.121,0.121 c 0,0 0.004,-0.004 0.004,-0.004 l 321.726,321.723 0.133,0.132 c -10.121,12.524 -21.539,23.946 -34.055,34.067 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/EndOffAllSpeedLimitsAndOvertakingRestrictions_282.svg b/content/html/_images/EndOffAllSpeedLimitsAndOvertakingRestrictions_282.svg index bd707673402c1c3a47b17a79087da2f380abb6c5..e4fc4c1ef8a2d8650d22d5227b03dd8b2b737956 100644 --- a/content/html/_images/EndOffAllSpeedLimitsAndOvertakingRestrictions_282.svg +++ b/content/html/_images/EndOffAllSpeedLimitsAndOvertakingRestrictions_282.svg @@ -1,29 +1,29 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 601.00201 601.00195" - height="601.00195" - width="601.00201" - xml:space="preserve" - version="1.1" - id="svg13783"><metadata - id="metadata13789"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs13787" /><g - transform="matrix(1.25,0,0,-1.25,0,601.00197)" - id="g13791"><g - id="g13793"><path - id="path13795" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 480.402,240.403 c 0,-132.551 -107.453,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.547 107.45,240 240,240 132.547,0 240,-107.453 240,-240 z" /><path - id="path13797" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 240.398,480.802 C 107.633,480.802 0,373.169 0,240.403 0,107.638 107.633,0.001 240.398,0.001 c 132.766,0 240.403,107.637 240.403,240.402 0,132.766 -107.637,240.399 -240.403,240.399 z m 0,-0.399 c 132.551,0 240,-107.453 240,-240 0,-132.551 -107.449,-240 -240,-240 -132.546,0 -240,107.449 -240,240 0,132.547 107.454,240 240,240 z" /><path - id="path13799" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 601.00201 601.00195" + height="601.00195" + width="601.00201" + xml:space="preserve" + version="1.1" + id="svg13783"><metadata + id="metadata13789"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs13787" /><g + transform="matrix(1.25,0,0,-1.25,0,601.00197)" + id="g13791"><g + id="g13793"><path + id="path13795" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 480.402,240.403 c 0,-132.551 -107.453,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.547 107.45,240 240,240 132.547,0 240,-107.453 240,-240 z" /><path + id="path13797" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 240.398,480.802 C 107.633,480.802 0,373.169 0,240.403 0,107.638 107.633,0.001 240.398,0.001 c 132.766,0 240.403,107.637 240.403,240.402 0,132.766 -107.637,240.399 -240.403,240.399 z m 0,-0.399 c 132.551,0 240,-107.453 240,-240 0,-132.551 -107.449,-240 -240,-240 -132.546,0 -240,107.449 -240,240 0,132.547 107.454,240 240,240 z" /><path + id="path13799" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 240.398,472.348 C 112.375,472.348 8.457,368.427 8.457,240.403 8.457,112.376 112.375,8.458 240.398,8.458 c 128.028,0 231.946,103.918 231.946,231.945 0,128.024 -103.918,231.945 -231.946,231.945 z m 0,-12 c 46.309,0 89.25,-14.296 124.676,-38.703 L 59.156,115.727 c -24.406,35.426 -38.703,78.368 -38.703,124.676 0,121.539 98.406,219.945 219.945,219.945 z M 372.32,416.446 c 2.418,-1.816 4.793,-3.683 7.133,-5.594 L 69.949,101.348 c -1.91,2.34 -3.777,4.715 -5.594,7.133 L 372.32,416.446 Z m 13.856,-11.316 c 2.25,-1.992 4.461,-4.024 6.629,-6.102 L 81.773,88.001 c -2.078,2.164 -4.109,4.375 -6.101,6.625 L 386.176,405.13 Z m 12.847,-12.328 c 2.082,-2.164 4.114,-4.375 6.106,-6.625 L 94.625,75.673 c -2.25,1.992 -4.461,4.023 -6.625,6.105 l 311.023,311.024 z m 11.829,-13.344 c 1.91,-2.34 3.777,-4.715 5.593,-7.133 L 108.48,64.356 c -2.418,1.817 -4.796,3.684 -7.136,5.594 l 309.508,309.508 z m 10.793,-14.383 c 24.406,-35.426 38.703,-78.367 38.703,-124.672 0,-121.543 -98.407,-219.945 -219.95,-219.945 -46.304,0 -89.246,14.297 -124.671,38.703 l 305.918,305.914 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/EngineMap.svg b/content/html/_images/EngineMap.svg index 3b57b808729bd5b013ba82006a841d7872c2e0dc..715732327ddb1c03382a89e0a043e7bd28a49fc9 100644 --- a/content/html/_images/EngineMap.svg +++ b/content/html/_images/EngineMap.svg @@ -1,682 +1,682 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="122.63816mm" - viewBox="0 0 210 122.63816" - version="1.1" - id="svg12177" - sodipodi:docname="EngineMap.svg" - inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" - inkscape:export-filename="EngineMap.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xml:space="preserve" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"><title - id="title524">Engine Map</title><sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1.7058951" - inkscape:cx="354.06632" - inkscape:cy="299.84259" - inkscape:window-width="1920" - inkscape:window-height="991" - inkscape:window-x="-9" - inkscape:window-y="-9" - inkscape:window-maximized="1" - inkscape:current-layer="layer8" - showguides="true" /><style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style><defs - id="defs12174"><rect - x="566.85785" - y="208.10188" - width="250.30849" - height="233.89481" - id="rect20" /><rect - x="570.37506" - y="157.10226" - width="109.03367" - height="100.24063" - id="rect19" /><inkscape:path-effect - effect="offset" - id="path-effect38844" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /><inkscape:path-effect - effect="tiling" - id="path-effect38774" - is_visible="true" - lpeversion="1" - unit="px" - seed="1;1" - lpesatellites="" - num_rows="3" - num_cols="3" - gapx="0" - gapy="0" - offset="0" - offset_type="false" - scale="0" - rotate="0" - mirrorrowsx="false" - mirrorrowsy="false" - mirrorcolsx="false" - mirrorcolsy="false" - mirrortrans="false" - shrink_interp="false" - split_items="false" - link_styles="false" - interpolate_scalex="false" - interpolate_scaley="true" - interpolate_rotatex="false" - interpolate_rotatey="true" - random_scale="false" - random_rotate="false" - random_gap_y="false" - random_gap_x="false" - transformorigin="" /><inkscape:path-effect - effect="offset" - id="path-effect38772" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="0" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38550" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38546" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38542" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38538" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32727" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32707" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32687" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32667" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><linearGradient - id="linearGradient13254"><stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /><stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /></linearGradient><radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /><inkscape:path-effect - effect="offset" - id="path-effect38844-6" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter35050" - x="-0.0033200292" - y="-0.0025765463" - width="1.0066401" - height="1.0051531"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.056059462" - id="feGaussianBlur35052" /></filter><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter35054" - x="-0.0017818477" - y="-0.0060428969" - width="1.0035637" - height="1.0120858"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.057750982" - id="feGaussianBlur35056" /></filter><marker - style="overflow:visible" - id="Arrow3" - refX="0" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="Arrow3" - markerWidth="4.2071066" - markerHeight="7" - viewBox="0 0 4.2071068 7" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"><path - style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" - d="M 3,-3 0,0 3,3" - id="arrow3" - transform="rotate(180,0.125,0)" - sodipodi:nodetypes="ccc" /></marker><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter45" - x="-0.030064201" - y="-0.059677439" - width="1.0601284" - height="1.1193549"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.77132796" - id="feGaussianBlur45" /></filter></defs><g - inkscape:groupmode="layer" - id="layer10" - inkscape:label="Raster" - style="display:inline"><rect - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.238;paint-order:stroke fill markers" - id="rect1" - width="210" - height="122.63815" - x="6.12208e-07" - y="0" /><g - id="g35048" - style="stroke:#aaaaff;stroke-width:0.764143;stroke-opacity:1;filter:url(#filter35054)" - transform="matrix(2.6901212,0,0,1.5708027,58.347101,70.980283)"><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-11.699799 H -21.550344" - id="path34917" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-6.1504898 H -21.550344" - id="path34919" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-0.601181 H -21.550344" - id="path34921" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,4.9481278 H -21.550344" - id="path34923" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,10.497437 H -21.550344" - id="path34925" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,16.046745 H -21.550344" - id="path34927" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,21.596054 H -21.550344" - id="path34929" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,32.694672 H -21.550344" - id="path34931" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,27.145363 H -21.550344" - id="path34933" /></g><g - id="g42268" - transform="matrix(1.5708027,0,0,1.3997089,42.502098,53.176999)" - style="stroke-width:1.05936"><g - id="g34915" - transform="matrix(1,0,0,1.6561847,-5.3478445,-21.991099)" - style="stroke:#aaaaff;stroke-width:0.823166;stroke-opacity:1;filter:url(#filter35050)"><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M -10.356301,-9.2853008 V 42.932937" - id="path34560" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M -4.8069918,-9.2853008 V 42.932937" - id="path34560-2" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 0.742317,-9.2853008 V 42.932937" - id="path34560-2-5" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.2916258,-9.2853008 V 42.932937" - id="path34608" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 11.840935,-9.285301 V 42.932937" - id="path34560-9" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 17.390243,-9.285301 V 42.932937" - id="path34560-2-7" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 22.939552,-9.285301 V 42.932937" - id="path34560-2-5-5" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 34.03817,-9.285301 V 42.932937" - id="path34562-5" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 28.488861,-9.285301 V 42.932937" - id="path34608-6" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 39.587479,-9.285301 V 42.932937" - id="path34666" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 45.136787,-9.285301 V 42.932937" - id="path34668" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-9.285301 V 42.932937" - id="path34670" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 50.686096,-9.285301 V 42.932937" - id="path34672" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M -21.454918,-9.285301 V 42.932937" - id="path34678" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M -15.905609,-9.285301 V 42.932937" - id="path34682" /></g><g - id="g41858" - transform="matrix(1,0,0,1.6604409,72.342479,-22.174406)" - style="stroke:#aaaaff;stroke-width:0.822111;stroke-opacity:1;filter:url(#filter35050)"><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M -10.356301,-9.2853008 V 42.932937" - id="path41828" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M -4.8069918,-9.2853008 V 42.932937" - id="path41830" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 0.742317,-9.2853008 V 42.932937" - id="path41832" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.2916258,-9.2853008 V 42.932937" - id="path41834" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 11.840935,-9.285301 V 42.932937" - id="path41836" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 17.390243,-9.285301 V 42.932937" - id="path41838" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 22.939552,-9.285301 V 42.932937" - id="path41840" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 34.03817,-9.285301 V 42.932937" - id="path41842" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 28.488861,-9.285301 V 42.932937" - id="path41844" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M -15.905609,-9.285301 V 42.932937" - id="path41856" /></g></g><g - id="g42298" - style="stroke:#aaaaff;stroke-width:0.764143;stroke-opacity:1;filter:url(#filter35054)" - transform="matrix(2.6901212,0,0,1.5708027,58.347101,-16.18841)"><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,10.497437 H -21.550344" - id="path42284" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,16.046745 H -21.550344" - id="path42286" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,21.596054 H -21.550344" - id="path42288" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,32.694672 H -21.550344" - id="path42290" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,27.145363 H -21.550344" - id="path42292" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,38.243981 H -21.550344" - id="path42294" /></g></g><g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="Legend"><g - id="g1" - transform="translate(0,-72.593373)"><rect - style="mix-blend-mode:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.985999;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;filter:url(#filter45)" - id="rect45" - width="61.574467" - height="31.019882" - x="139.77576" - y="78.658936" /><text - xml:space="preserve" - style="font-size:3.17287px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="87.220894" - id="text13"><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="87.220894" - id="tspan16">n<tspan - style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" - id="tspan26">eng</tspan></tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="91.186981" - id="tspan20">n<tspan - style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" - id="tspan27">eng,min</tspan></tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="95.153069" - id="tspan21">n<tspan - style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" - id="tspan28">eng,max</tspan></tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="99.119156" - id="tspan22">M<tspan - style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" - id="tspan29">eng</tspan></tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="103.08524" - id="tspan23">M<tspan - style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" - id="tspan30">eng,drag</tspan></tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="107.05133" - id="tspan24">M<tspan - style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" - id="tspan25">eng,max</tspan></tspan></text><text - xml:space="preserve" - style="font-size:3.17287px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.77095" - x="158.44345" - y="87.220894" - id="text43"><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="158.44345" - y="87.220894" - id="tspan33">Engine Speed</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="158.44345" - y="91.186981" - id="tspan35">Minimum Engine Speed</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="158.44345" - y="95.153069" - id="tspan37">Maximum Engine Speed</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="158.44345" - y="99.119156" - id="tspan39">Engine Torque</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="158.44345" - y="103.08524" - id="tspan41">Engine Drag Torque</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="158.44345" - y="107.05133" - id="tspan43">Engine Maximum Torque</tspan></text><text - xml:space="preserve" - style="font-size:3.71278px;line-height:1.25;font-family:sans-serif;display:inline;stroke:#000000;stroke-width:0.171;stroke-dasharray:none;stroke-opacity:1" - x="144.03098" - y="82.839394" - id="text43-6" - transform="scale(0.9941455,1.005889)"><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke:#000000;stroke-width:0.171;stroke-dasharray:none;stroke-opacity:1" - x="144.03098" - y="82.839394" - id="tspan43-9">Legend</tspan></text></g></g><g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="CoorindateSystem"><text - xml:space="preserve" - style="font-size:3.45723px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;display:inline;stroke-width:1.58092" - x="-9.6636496" - y="8.0107098" - id="text34235" - transform="rotate(-90)"><tspan - sodipodi:role="line" - style="text-align:center;text-anchor:middle;stroke-width:1.58092" - x="-9.6636496" - y="8.0107098" - id="tspan34237">M<tspan - style="font-size:65%;text-align:center;baseline-shift:sub;text-anchor:middle" - id="tspan1">eng</tspan></tspan><tspan - sodipodi:role="line" - style="font-size:2.82222px;text-align:center;text-anchor:middle;stroke-width:1.58092" - x="-9.6636496" - y="12.332248" - id="tspan12">(Nm)</tspan></text><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="28.228691" - y="76.520775" - id="text34235-7"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="28.228691" - y="76.520775" - id="tspan34237-0">n<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan2">eng,min</tspan></tspan></text><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;white-space:pre;inline-size:3.40881;display:inline;stroke-width:1.58092" - x="5.7083039" - y="97.315834" - id="text34235-7-9-3" - transform="translate(8.7168724,-17.450701)"><tspan - x="5.7083039" - y="97.315834" - id="tspan3">0</tspan></text><path - style="display:inline;fill:none;stroke:#000000;stroke-width:0.478011;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" - d="M 17.833986,78.744308 H 139.1874" - id="path32829" - inkscape:label="Longitudinal" /><path - style="display:inline;fill:none;stroke:#000000;stroke-width:0.478011;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" - d="M 17.833984,113.6203 V 9.641386" - id="path32831" - inkscape:label="Longitudinal" /><path - style="display:inline;fill:none;stroke:#000000;stroke-width:0.986;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 26.550854,52.565391 C 33.36392,31.012854 47.589523,18.957301 58.858803,18.457147 78.833014,17.570651 94.023822,18.946762 131.15329,30.65481" - id="path39646" - sodipodi:nodetypes="csc" /><path - style="display:inline;fill:none;stroke:#656565;stroke-width:0.986;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 26.209718,91.342172 c 0,0 12.716659,5.424145 33.736889,5.858227 7.508308,0.15505 30.428712,-0.771087 41.008253,-2.015758 8.69945,-1.023471 13.62482,-1.969341 18.75424,-2.601946 6.06929,-0.748527 11.35556,-1.174746 11.35556,-1.174746" - id="path2" - sodipodi:nodetypes="csssc" /><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="52.575844" - y="101.74531" - id="text5"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="52.575844" - y="101.74531" - id="tspan5">M<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan4">eng,drag</tspan></tspan></text><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="56.225651" - y="15.652905" - id="text7"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="56.225651" - y="15.652905" - id="tspan7">M<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan6">eng,max</tspan></tspan></text><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;display:inline;stroke-width:1.58092" - x="139.59302" - y="83.318146" - id="text9"><tspan - sodipodi:role="line" - style="text-align:center;text-anchor:middle;stroke-width:1.58092" - x="139.59302" - y="83.318146" - id="tspan9">n<tspan - style="font-size:65%;text-align:center;baseline-shift:sub;text-anchor:middle" - id="tspan8">eng</tspan></tspan><tspan - sodipodi:role="line" - style="font-size:2.82222px;text-align:center;text-anchor:middle;stroke-width:1.58092" - x="139.59302" - y="87.174744" - id="tspan14">(rpm)</tspan></text><path - style="fill:none;stroke:#000000;stroke-width:0.386;paint-order:stroke fill markers;stroke-dasharray:0.38600001,0.38600001;stroke-dashoffset:0" - d="M 26.550852,52.565389 V 91.480343" - id="path14" /><path - style="fill:none;stroke:#000000;stroke-width:0.386;stroke-dasharray:0.38600001,0.38600001;stroke-dashoffset:0;paint-order:stroke fill markers" - d="m 131.15329,30.65481 -0.0886,60.753139" - id="path15" - sodipodi:nodetypes="cc" /><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="119.20499" - y="76.520775" - id="text42"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="119.20499" - y="76.520775" - id="tspan42">n<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan40">eng,max</tspan></tspan></text></g><metadata - id="metadata448"><rdf:RDF><cc:Work - rdf:about=""><cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>2024 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights><dc:title>Engine Map</dc:title></cc:Work></rdf:RDF></metadata></svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="122.63816mm" + viewBox="0 0 210 122.63816" + version="1.1" + id="svg12177" + sodipodi:docname="EngineMap.svg" + inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" + inkscape:export-filename="EngineMap.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xml:space="preserve" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"><title + id="title524">Engine Map</title><sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1.7058951" + inkscape:cx="354.06632" + inkscape:cy="299.84259" + inkscape:window-width="1920" + inkscape:window-height="991" + inkscape:window-x="-9" + inkscape:window-y="-9" + inkscape:window-maximized="1" + inkscape:current-layer="layer8" + showguides="true" /><style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style><defs + id="defs12174"><rect + x="566.85785" + y="208.10188" + width="250.30849" + height="233.89481" + id="rect20" /><rect + x="570.37506" + y="157.10226" + width="109.03367" + height="100.24063" + id="rect19" /><inkscape:path-effect + effect="offset" + id="path-effect38844" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /><inkscape:path-effect + effect="tiling" + id="path-effect38774" + is_visible="true" + lpeversion="1" + unit="px" + seed="1;1" + lpesatellites="" + num_rows="3" + num_cols="3" + gapx="0" + gapy="0" + offset="0" + offset_type="false" + scale="0" + rotate="0" + mirrorrowsx="false" + mirrorrowsy="false" + mirrorcolsx="false" + mirrorcolsy="false" + mirrortrans="false" + shrink_interp="false" + split_items="false" + link_styles="false" + interpolate_scalex="false" + interpolate_scaley="true" + interpolate_rotatex="false" + interpolate_rotatey="true" + random_scale="false" + random_rotate="false" + random_gap_y="false" + random_gap_x="false" + transformorigin="" /><inkscape:path-effect + effect="offset" + id="path-effect38772" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="0" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38550" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38546" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38542" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38538" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32727" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32707" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32687" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32667" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><linearGradient + id="linearGradient13254"><stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /><stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /></linearGradient><radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /><inkscape:path-effect + effect="offset" + id="path-effect38844-6" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter35050" + x="-0.0033200292" + y="-0.0025765463" + width="1.0066401" + height="1.0051531"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.056059462" + id="feGaussianBlur35052" /></filter><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter35054" + x="-0.0017818477" + y="-0.0060428969" + width="1.0035637" + height="1.0120858"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.057750982" + id="feGaussianBlur35056" /></filter><marker + style="overflow:visible" + id="Arrow3" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Arrow3" + markerWidth="4.2071066" + markerHeight="7" + viewBox="0 0 4.2071068 7" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"><path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" + d="M 3,-3 0,0 3,3" + id="arrow3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" /></marker><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter45" + x="-0.030064201" + y="-0.059677439" + width="1.0601284" + height="1.1193549"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.77132796" + id="feGaussianBlur45" /></filter></defs><g + inkscape:groupmode="layer" + id="layer10" + inkscape:label="Raster" + style="display:inline"><rect + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.238;paint-order:stroke fill markers" + id="rect1" + width="210" + height="122.63815" + x="6.12208e-07" + y="0" /><g + id="g35048" + style="stroke:#aaaaff;stroke-width:0.764143;stroke-opacity:1;filter:url(#filter35054)" + transform="matrix(2.6901212,0,0,1.5708027,58.347101,70.980283)"><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-11.699799 H -21.550344" + id="path34917" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-6.1504898 H -21.550344" + id="path34919" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-0.601181 H -21.550344" + id="path34921" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,4.9481278 H -21.550344" + id="path34923" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,10.497437 H -21.550344" + id="path34925" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,16.046745 H -21.550344" + id="path34927" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,21.596054 H -21.550344" + id="path34929" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,32.694672 H -21.550344" + id="path34931" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,27.145363 H -21.550344" + id="path34933" /></g><g + id="g42268" + transform="matrix(1.5708027,0,0,1.3997089,42.502098,53.176999)" + style="stroke-width:1.05936"><g + id="g34915" + transform="matrix(1,0,0,1.6561847,-5.3478445,-21.991099)" + style="stroke:#aaaaff;stroke-width:0.823166;stroke-opacity:1;filter:url(#filter35050)"><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M -10.356301,-9.2853008 V 42.932937" + id="path34560" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M -4.8069918,-9.2853008 V 42.932937" + id="path34560-2" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 0.742317,-9.2853008 V 42.932937" + id="path34560-2-5" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.2916258,-9.2853008 V 42.932937" + id="path34608" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 11.840935,-9.285301 V 42.932937" + id="path34560-9" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 17.390243,-9.285301 V 42.932937" + id="path34560-2-7" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 22.939552,-9.285301 V 42.932937" + id="path34560-2-5-5" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 34.03817,-9.285301 V 42.932937" + id="path34562-5" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 28.488861,-9.285301 V 42.932937" + id="path34608-6" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 39.587479,-9.285301 V 42.932937" + id="path34666" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 45.136787,-9.285301 V 42.932937" + id="path34668" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-9.285301 V 42.932937" + id="path34670" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 50.686096,-9.285301 V 42.932937" + id="path34672" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M -21.454918,-9.285301 V 42.932937" + id="path34678" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M -15.905609,-9.285301 V 42.932937" + id="path34682" /></g><g + id="g41858" + transform="matrix(1,0,0,1.6604409,72.342479,-22.174406)" + style="stroke:#aaaaff;stroke-width:0.822111;stroke-opacity:1;filter:url(#filter35050)"><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M -10.356301,-9.2853008 V 42.932937" + id="path41828" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M -4.8069918,-9.2853008 V 42.932937" + id="path41830" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 0.742317,-9.2853008 V 42.932937" + id="path41832" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.2916258,-9.2853008 V 42.932937" + id="path41834" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 11.840935,-9.285301 V 42.932937" + id="path41836" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 17.390243,-9.285301 V 42.932937" + id="path41838" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 22.939552,-9.285301 V 42.932937" + id="path41840" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 34.03817,-9.285301 V 42.932937" + id="path41842" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 28.488861,-9.285301 V 42.932937" + id="path41844" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M -15.905609,-9.285301 V 42.932937" + id="path41856" /></g></g><g + id="g42298" + style="stroke:#aaaaff;stroke-width:0.764143;stroke-opacity:1;filter:url(#filter35054)" + transform="matrix(2.6901212,0,0,1.5708027,58.347101,-16.18841)"><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,10.497437 H -21.550344" + id="path42284" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,16.046745 H -21.550344" + id="path42286" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,21.596054 H -21.550344" + id="path42288" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,32.694672 H -21.550344" + id="path42290" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,27.145363 H -21.550344" + id="path42292" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,38.243981 H -21.550344" + id="path42294" /></g></g><g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="Legend"><g + id="g1" + transform="translate(0,-72.593373)"><rect + style="mix-blend-mode:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.985999;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;filter:url(#filter45)" + id="rect45" + width="61.574467" + height="31.019882" + x="139.77576" + y="78.658936" /><text + xml:space="preserve" + style="font-size:3.17287px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="87.220894" + id="text13"><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="87.220894" + id="tspan16">n<tspan + style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" + id="tspan26">eng</tspan></tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="91.186981" + id="tspan20">n<tspan + style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" + id="tspan27">eng,min</tspan></tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="95.153069" + id="tspan21">n<tspan + style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" + id="tspan28">eng,max</tspan></tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="99.119156" + id="tspan22">M<tspan + style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" + id="tspan29">eng</tspan></tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="103.08524" + id="tspan23">M<tspan + style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" + id="tspan30">eng,drag</tspan></tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="107.05133" + id="tspan24">M<tspan + style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" + id="tspan25">eng,max</tspan></tspan></text><text + xml:space="preserve" + style="font-size:3.17287px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.77095" + x="158.44345" + y="87.220894" + id="text43"><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="158.44345" + y="87.220894" + id="tspan33">Engine Speed</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="158.44345" + y="91.186981" + id="tspan35">Minimum Engine Speed</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="158.44345" + y="95.153069" + id="tspan37">Maximum Engine Speed</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="158.44345" + y="99.119156" + id="tspan39">Engine Torque</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="158.44345" + y="103.08524" + id="tspan41">Engine Drag Torque</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="158.44345" + y="107.05133" + id="tspan43">Engine Maximum Torque</tspan></text><text + xml:space="preserve" + style="font-size:3.71278px;line-height:1.25;font-family:sans-serif;display:inline;stroke:#000000;stroke-width:0.171;stroke-dasharray:none;stroke-opacity:1" + x="144.03098" + y="82.839394" + id="text43-6" + transform="scale(0.9941455,1.005889)"><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke:#000000;stroke-width:0.171;stroke-dasharray:none;stroke-opacity:1" + x="144.03098" + y="82.839394" + id="tspan43-9">Legend</tspan></text></g></g><g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="CoorindateSystem"><text + xml:space="preserve" + style="font-size:3.45723px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;display:inline;stroke-width:1.58092" + x="-9.6636496" + y="8.0107098" + id="text34235" + transform="rotate(-90)"><tspan + sodipodi:role="line" + style="text-align:center;text-anchor:middle;stroke-width:1.58092" + x="-9.6636496" + y="8.0107098" + id="tspan34237">M<tspan + style="font-size:65%;text-align:center;baseline-shift:sub;text-anchor:middle" + id="tspan1">eng</tspan></tspan><tspan + sodipodi:role="line" + style="font-size:2.82222px;text-align:center;text-anchor:middle;stroke-width:1.58092" + x="-9.6636496" + y="12.332248" + id="tspan12">(Nm)</tspan></text><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="28.228691" + y="76.520775" + id="text34235-7"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="28.228691" + y="76.520775" + id="tspan34237-0">n<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan2">eng,min</tspan></tspan></text><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;white-space:pre;inline-size:3.40881;display:inline;stroke-width:1.58092" + x="5.7083039" + y="97.315834" + id="text34235-7-9-3" + transform="translate(8.7168724,-17.450701)"><tspan + x="5.7083039" + y="97.315834" + id="tspan3">0</tspan></text><path + style="display:inline;fill:none;stroke:#000000;stroke-width:0.478011;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" + d="M 17.833986,78.744308 H 139.1874" + id="path32829" + inkscape:label="Longitudinal" /><path + style="display:inline;fill:none;stroke:#000000;stroke-width:0.478011;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" + d="M 17.833984,113.6203 V 9.641386" + id="path32831" + inkscape:label="Longitudinal" /><path + style="display:inline;fill:none;stroke:#000000;stroke-width:0.986;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 26.550854,52.565391 C 33.36392,31.012854 47.589523,18.957301 58.858803,18.457147 78.833014,17.570651 94.023822,18.946762 131.15329,30.65481" + id="path39646" + sodipodi:nodetypes="csc" /><path + style="display:inline;fill:none;stroke:#656565;stroke-width:0.986;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 26.209718,91.342172 c 0,0 12.716659,5.424145 33.736889,5.858227 7.508308,0.15505 30.428712,-0.771087 41.008253,-2.015758 8.69945,-1.023471 13.62482,-1.969341 18.75424,-2.601946 6.06929,-0.748527 11.35556,-1.174746 11.35556,-1.174746" + id="path2" + sodipodi:nodetypes="csssc" /><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="52.575844" + y="101.74531" + id="text5"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="52.575844" + y="101.74531" + id="tspan5">M<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan4">eng,drag</tspan></tspan></text><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="56.225651" + y="15.652905" + id="text7"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="56.225651" + y="15.652905" + id="tspan7">M<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan6">eng,max</tspan></tspan></text><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;display:inline;stroke-width:1.58092" + x="139.59302" + y="83.318146" + id="text9"><tspan + sodipodi:role="line" + style="text-align:center;text-anchor:middle;stroke-width:1.58092" + x="139.59302" + y="83.318146" + id="tspan9">n<tspan + style="font-size:65%;text-align:center;baseline-shift:sub;text-anchor:middle" + id="tspan8">eng</tspan></tspan><tspan + sodipodi:role="line" + style="font-size:2.82222px;text-align:center;text-anchor:middle;stroke-width:1.58092" + x="139.59302" + y="87.174744" + id="tspan14">(rpm)</tspan></text><path + style="fill:none;stroke:#000000;stroke-width:0.386;paint-order:stroke fill markers;stroke-dasharray:0.38600001,0.38600001;stroke-dashoffset:0" + d="M 26.550852,52.565389 V 91.480343" + id="path14" /><path + style="fill:none;stroke:#000000;stroke-width:0.386;stroke-dasharray:0.38600001,0.38600001;stroke-dashoffset:0;paint-order:stroke fill markers" + d="m 131.15329,30.65481 -0.0886,60.753139" + id="path15" + sodipodi:nodetypes="cc" /><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="119.20499" + y="76.520775" + id="text42"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="119.20499" + y="76.520775" + id="tspan42">n<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan40">eng,max</tspan></tspan></text></g><metadata + id="metadata448"><rdf:RDF><cc:Work + rdf:about=""><cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>2024 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights><dc:title>Engine Map</dc:title></cc:Work></rdf:RDF></metadata></svg> diff --git a/content/html/_images/EngineMapCalculated.svg b/content/html/_images/EngineMapCalculated.svg index a97982071071dc923619313de9781c3f5b60cc93..2be68eae2cd12dbe406c85b5f9185d6190510a27 100644 --- a/content/html/_images/EngineMapCalculated.svg +++ b/content/html/_images/EngineMapCalculated.svg @@ -1,806 +1,806 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="122.63816mm" - viewBox="0 0 210 122.63816" - version="1.1" - id="svg12177" - sodipodi:docname="EngineMapCalculated.svg" - inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" - inkscape:export-filename="EngineMapCalculated.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xml:space="preserve" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"><title - id="title524">Engine Map Calculation</title><sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="6.8235804" - inkscape:cx="448.88458" - inkscape:cy="304.16583" - inkscape:window-width="1920" - inkscape:window-height="991" - inkscape:window-x="-9" - inkscape:window-y="-9" - inkscape:window-maximized="1" - inkscape:current-layer="layer8" - showguides="true" /><style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style><defs - id="defs12174"><rect - x="566.85785" - y="208.10188" - width="250.30849" - height="233.89481" - id="rect20" /><rect - x="570.37506" - y="157.10226" - width="109.03367" - height="100.24063" - id="rect19" /><inkscape:path-effect - effect="offset" - id="path-effect38844" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /><inkscape:path-effect - effect="tiling" - id="path-effect38774" - is_visible="true" - lpeversion="1" - unit="px" - seed="1;1" - lpesatellites="" - num_rows="3" - num_cols="3" - gapx="0" - gapy="0" - offset="0" - offset_type="false" - scale="0" - rotate="0" - mirrorrowsx="false" - mirrorrowsy="false" - mirrorcolsx="false" - mirrorcolsy="false" - mirrortrans="false" - shrink_interp="false" - split_items="false" - link_styles="false" - interpolate_scalex="false" - interpolate_scaley="true" - interpolate_rotatex="false" - interpolate_rotatey="true" - random_scale="false" - random_rotate="false" - random_gap_y="false" - random_gap_x="false" - transformorigin="" /><inkscape:path-effect - effect="offset" - id="path-effect38772" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="0" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38550" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38546" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38542" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38538" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32727" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32707" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32687" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32667" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /><linearGradient - id="linearGradient13254"><stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /><stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /></linearGradient><radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /><inkscape:path-effect - effect="offset" - id="path-effect38844-6" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter35050" - x="-0.0033200292" - y="-0.0025765463" - width="1.0066401" - height="1.0051531"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.056059462" - id="feGaussianBlur35052" /></filter><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter35054" - x="-0.0017818477" - y="-0.0060428969" - width="1.0035637" - height="1.0120858"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.057750982" - id="feGaussianBlur35056" /></filter><marker - style="overflow:visible" - id="Arrow3" - refX="0" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="Arrow3" - markerWidth="4.2071066" - markerHeight="7" - viewBox="0 0 4.2071068 7" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"><path - style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" - d="M 3,-3 0,0 3,3" - id="arrow3" - transform="rotate(180,0.125,0)" - sodipodi:nodetypes="ccc" /></marker><marker - style="overflow:visible" - id="Arrow3-5" - refX="0" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="Arrow3" - markerWidth="4.2071066" - markerHeight="6.9999995" - viewBox="0 0 4.2071068 7" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"><path - style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" - d="M 3,-3 0,0 3,3" - id="arrow3-6" - transform="rotate(180,0.125,0)" - sodipodi:nodetypes="ccc" /></marker><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter45" - x="-0.030064201" - y="-0.059677439" - width="1.0601284" - height="1.1193549"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.77132796" - id="feGaussianBlur45" /></filter></defs><g - inkscape:groupmode="layer" - id="layer10" - inkscape:label="Raster" - style="display:inline"><rect - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.238;paint-order:stroke fill markers" - id="rect1" - width="210" - height="122.63815" - x="6.12208e-07" - y="0" /><g - id="g35048" - style="stroke:#aaaaff;stroke-width:0.764143;stroke-opacity:1;filter:url(#filter35054)" - transform="matrix(2.6901212,0,0,1.5708027,58.347101,70.980283)"><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-11.699799 H -21.550344" - id="path34917" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-6.1504898 H -21.550344" - id="path34919" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-0.601181 H -21.550344" - id="path34921" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,4.9481278 H -21.550344" - id="path34923" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,10.497437 H -21.550344" - id="path34925" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,16.046745 H -21.550344" - id="path34927" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,21.596054 H -21.550344" - id="path34929" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,32.694672 H -21.550344" - id="path34931" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,27.145363 H -21.550344" - id="path34933" /></g><g - id="g42268" - transform="matrix(1.5708027,0,0,1.3997089,42.502098,53.176999)" - style="stroke-width:1.05936"><g - id="g34915" - transform="matrix(1,0,0,1.6561847,-5.3478445,-21.991099)" - style="stroke:#aaaaff;stroke-width:0.823166;stroke-opacity:1;filter:url(#filter35050)"><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M -10.356301,-9.2853008 V 42.932937" - id="path34560" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M -4.8069918,-9.2853008 V 42.932937" - id="path34560-2" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 0.742317,-9.2853008 V 42.932937" - id="path34560-2-5" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.2916258,-9.2853008 V 42.932937" - id="path34608" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 11.840935,-9.285301 V 42.932937" - id="path34560-9" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 17.390243,-9.285301 V 42.932937" - id="path34560-2-7" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 22.939552,-9.285301 V 42.932937" - id="path34560-2-5-5" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 34.03817,-9.285301 V 42.932937" - id="path34562-5" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 28.488861,-9.285301 V 42.932937" - id="path34608-6" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 39.587479,-9.285301 V 42.932937" - id="path34666" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 45.136787,-9.285301 V 42.932937" - id="path34668" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-9.285301 V 42.932937" - id="path34670" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M 50.686096,-9.285301 V 42.932937" - id="path34672" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M -21.454918,-9.285301 V 42.932937" - id="path34678" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" - d="M -15.905609,-9.285301 V 42.932937" - id="path34682" /></g><g - id="g41858" - transform="matrix(1,0,0,1.6604409,72.342479,-22.174406)" - style="stroke:#aaaaff;stroke-width:0.822111;stroke-opacity:1;filter:url(#filter35050)"><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M -10.356301,-9.2853008 V 42.932937" - id="path41828" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M -4.8069918,-9.2853008 V 42.932937" - id="path41830" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 0.742317,-9.2853008 V 42.932937" - id="path41832" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.2916258,-9.2853008 V 42.932937" - id="path41834" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 11.840935,-9.285301 V 42.932937" - id="path41836" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 17.390243,-9.285301 V 42.932937" - id="path41838" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 22.939552,-9.285301 V 42.932937" - id="path41840" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 34.03817,-9.285301 V 42.932937" - id="path41842" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M 28.488861,-9.285301 V 42.932937" - id="path41844" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" - d="M -15.905609,-9.285301 V 42.932937" - id="path41856" /></g></g><g - id="g42298" - style="stroke:#aaaaff;stroke-width:0.764143;stroke-opacity:1;filter:url(#filter35054)" - transform="matrix(2.6901212,0,0,1.5708027,58.347101,-16.18841)"><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,10.497437 H -21.550344" - id="path42284" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,16.046745 H -21.550344" - id="path42286" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,21.596054 H -21.550344" - id="path42288" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,32.694672 H -21.550344" - id="path42290" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,27.145363 H -21.550344" - id="path42292" /><path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,38.243981 H -21.550344" - id="path42294" /></g></g><g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="Legend"><g - id="g2" - transform="translate(4.3030648e-4,-72.593748)"><rect - style="mix-blend-mode:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.985999;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;filter:url(#filter45)" - id="rect45" - width="61.574467" - height="31.019882" - x="139.77576" - y="78.658936" /><text - xml:space="preserve" - style="font-size:3.17287px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="87.220894" - id="text13"><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="87.220894" - id="tspan16-6">n<tspan - style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" - id="tspan26">eng</tspan></tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="91.186981" - id="tspan20">n<tspan - style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" - id="tspan27">eng,min</tspan></tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="95.153069" - id="tspan21">n<tspan - style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" - id="tspan28">eng,max</tspan></tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="99.119156" - id="tspan22">M<tspan - style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" - id="tspan29">eng</tspan></tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="103.08524" - id="tspan23">M<tspan - style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" - id="tspan30">eng,drag</tspan></tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" - x="143.22543" - y="107.05133" - id="tspan24">M<tspan - style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" - id="tspan25">eng,max</tspan></tspan></text><text - xml:space="preserve" - style="font-size:3.17287px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.77095" - x="158.44345" - y="87.220894" - id="text43"><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="158.44345" - y="87.220894" - id="tspan33">Engine Speed</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="158.44345" - y="91.186981" - id="tspan35">Minimum Engine Speed</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="158.44345" - y="95.153069" - id="tspan37">Maximum Engine Speed</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="158.44345" - y="99.119156" - id="tspan39">Engine Torque</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="158.44345" - y="103.08524" - id="tspan41">Engine Drag Torque</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" - x="158.44345" - y="107.05133" - id="tspan43">Engine Maximum Torque</tspan></text><text - xml:space="preserve" - style="font-size:3.71278px;line-height:1.25;font-family:sans-serif;display:inline;stroke:#000000;stroke-width:0.171;stroke-dasharray:none;stroke-opacity:1" - x="144.03098" - y="82.839394" - id="text43-6" - transform="scale(0.9941455,1.005889)"><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke:#000000;stroke-width:0.171;stroke-dasharray:none;stroke-opacity:1" - x="144.03098" - y="82.839394" - id="tspan43-9">Legend</tspan></text></g></g><g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="CoorindateSystem"><text - xml:space="preserve" - style="font-size:3.45723px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;display:inline;stroke-width:1.58092" - x="-9.6636496" - y="8.0107098" - id="text34235" - transform="rotate(-90)"><tspan - sodipodi:role="line" - style="text-align:center;text-anchor:middle;stroke-width:1.58092" - x="-9.6636496" - y="8.0107098" - id="tspan34237">M<tspan - style="font-size:65%;text-align:center;baseline-shift:sub;text-anchor:middle" - id="tspan1">eng</tspan></tspan><tspan - sodipodi:role="line" - style="font-size:2.82222px;text-align:center;text-anchor:middle;stroke-width:1.58092" - x="-9.6636496" - y="12.332248" - id="tspan12">(Nm)</tspan></text><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="28.228691" - y="76.520775" - id="text34235-7"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="28.228691" - y="76.520775" - id="tspan34237-0">n<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan2">eng,min</tspan></tspan></text><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;white-space:pre;inline-size:3.40881;display:inline;stroke-width:1.58092" - x="5.7083039" - y="97.315834" - id="text34235-7-9-3" - transform="translate(8.7168724,-17.450701)"><tspan - x="5.7083039" - y="97.315834" - id="tspan10">0</tspan></text><path - style="display:inline;fill:none;stroke:#000000;stroke-width:0.478011;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" - d="M 17.833986,78.744308 H 139.1874" - id="path32829" - inkscape:label="Longitudinal" /><path - style="display:inline;fill:none;stroke:#000000;stroke-width:0.478011;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" - d="M 17.833984,113.6203 V 9.641386" - id="path32831" - inkscape:label="Longitudinal" /><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="52.575844" - y="101.74531" - id="text5"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="52.575844" - y="101.74531" - id="tspan5">M<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan42">eng,drag</tspan>(n<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan45">eng</tspan>)=0.1<tspan - style="font-size:1.41111px" - id="tspan59"> </tspan>M<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan46">eng</tspan>(n<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan47">eng</tspan>)</tspan></text><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="56.225651" - y="15.652905" - id="text7"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="56.225651" - y="15.652905" - id="tspan7">M<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan38">eng,max</tspan>(n<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan40">eng</tspan>)</tspan></text><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;display:inline;stroke-width:1.58092" - x="139.59302" - y="83.318146" - id="text9"><tspan - sodipodi:role="line" - style="text-align:center;text-anchor:middle;stroke-width:1.58092" - x="139.59302" - y="83.318146" - id="tspan9">n<tspan - style="font-size:65%;text-align:center;baseline-shift:sub;text-anchor:middle" - id="tspan8">eng</tspan></tspan><tspan - sodipodi:role="line" - style="font-size:2.82222px;text-align:center;text-anchor:middle;stroke-width:1.58092" - x="139.59302" - y="87.174744" - id="tspan14">(rpm)</tspan></text><path - style="fill:none;stroke:#000000;stroke-width:0.386;paint-order:stroke fill markers;stroke-dasharray:0.386,0.386;stroke-dashoffset:0;font-variation-settings:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 26.550852,52.565389 V 91.480343" - id="path14" /><path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.386;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.386, 0.386;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 131.15329,31.713229 -0.0886,59.69463" - id="path15" - sodipodi:nodetypes="cc" /><path - style="fill:none;stroke:#000000;stroke-width:0.386;stroke-dasharray:0.386,0.386;stroke-dashoffset:0;paint-order:stroke fill markers;font-variation-settings:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 26.550854,52.556571 H 17.985345" - id="path16" /><path - style="fill:none;stroke:#000000;stroke-width:0.386;stroke-dasharray:0.386,0.386;stroke-dashoffset:0;paint-order:stroke fill markers;font-variation-settings:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 61.411606,17.780389 V 97.49317" - id="path17" /><path - style="fill:none;stroke:#000000;stroke-width:0.386;stroke-dasharray:0.386,0.386;stroke-dashoffset:0;paint-order:stroke fill markers;font-variation-settings:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 96.333471,17.947058 -0.0886,79.763809" - id="path18" - sodipodi:nodetypes="cc" /><path - style="fill:none;stroke:#0000ff;stroke-width:0.886;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers" - d="m 26.550852,52.565389 34.860754,-34.785 34.921865,0.166669 35.012819,13.958804" - id="path19" - sodipodi:nodetypes="cccc" /><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="36.552277" - y="55.94112" - id="text15"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="36.552277" - y="55.94112" - id="tspan15">1000<tspan - style="font-size:1.76389px" - id="tspan16"> </tspan>rpm</tspan></text><path - style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.338;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow3-5);marker-end:url(#Arrow3-5);paint-order:stroke fill markers;stop-color:#000000" - d="M 29.850786,57.74479 H 58.111671" - id="path22" - sodipodi:nodetypes="cc" /><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="106.29396" - y="55.94112" - id="text32"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="106.29396" - y="55.94112" - id="tspan32">1000<tspan - style="font-size:1.76389px" - id="tspan19"> </tspan>rpm</tspan></text><path - style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.338;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow3-5);marker-end:url(#Arrow3-5);paint-order:stroke fill markers;stop-color:#000000" - d="M 99.592467,57.74479 H 127.85335" - id="path32" - sodipodi:nodetypes="cc" /><path - style="fill:none;stroke:#0000ff;stroke-width:0.886;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers" - d="m 26.550852,91.480343 34.860754,6.012825 h 34.874202 l 34.778882,-6.085219" - id="path40" /><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;text-align:end;text-anchor:end;display:inline;stroke-width:1.58092" - x="16.461882" - y="18.167492" - id="text50"><tspan - sodipodi:role="line" - style="text-align:end;text-anchor:end;stroke-width:1.58092" - x="16.461882" - y="18.167492" - id="tspan50">M<tspan - style="font-size:65%;text-align:end;baseline-shift:sub;text-anchor:end" - id="tspan48">eng,max</tspan></tspan></text><path - style="fill:none;stroke:#000000;stroke-width:0.386;stroke-dasharray:0.386,0.386;stroke-dashoffset:0;paint-order:stroke fill markers;font-variation-settings:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 61.287082,17.754545 H 17.776502" - id="path50" /><path - style="fill:none;stroke:#000000;stroke-width:0.386;stroke-dasharray:0.386,0.386;stroke-dashoffset:0;paint-order:stroke fill markers;font-variation-settings:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 131.34629,31.905862 H 18.259407" - id="path51" /><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;text-align:end;text-anchor:end;display:inline;stroke-width:1.58092" - x="16.461882" - y="51.338291" - id="text52"><tspan - sodipodi:role="line" - style="text-align:end;text-anchor:end;stroke-width:1.58092" - x="16.461882" - y="51.338291" - id="tspan52">M<tspan - style="font-size:65%;text-align:end;baseline-shift:sub;text-anchor:end" - id="tspan51">eng,max</tspan></tspan><tspan - sodipodi:role="line" - style="text-align:end;text-anchor:end;stroke-width:1.58092" - x="16.461882" - y="55.194893" - id="tspan53">-100<tspan - style="font-size:1.41111px;text-align:end;text-anchor:end" - id="tspan54"> </tspan>Nm</tspan></text><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;text-align:end;text-anchor:end;display:inline;stroke-width:1.58092" - x="16.461882" - y="30.44314" - id="text58"><tspan - sodipodi:role="line" - style="text-align:end;text-anchor:end;stroke-width:1.58092" - x="16.461882" - y="30.44314" - id="tspan56">M<tspan - style="font-size:65%;text-align:end;baseline-shift:sub;text-anchor:end" - id="tspan55">eng,max</tspan></tspan><tspan - sodipodi:role="line" - style="text-align:end;text-anchor:end;stroke-width:1.58092" - x="16.461882" - y="34.29974" - id="tspan58">-40<tspan - style="font-size:1.41111px;text-align:end;text-anchor:end" - id="tspan57"> </tspan>Nm</tspan></text><text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="119.2053" - y="76.520775" - id="text6"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="119.2053" - y="76.520775" - id="tspan6">n<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan4">eng,max</tspan></tspan></text></g><metadata - id="metadata448"><rdf:RDF><cc:Work - rdf:about=""><cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>2024 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights><dc:title>Engine Map Calculation</dc:title></cc:Work></rdf:RDF></metadata></svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="122.63816mm" + viewBox="0 0 210 122.63816" + version="1.1" + id="svg12177" + sodipodi:docname="EngineMapCalculated.svg" + inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" + inkscape:export-filename="EngineMapCalculated.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xml:space="preserve" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"><title + id="title524">Engine Map Calculation</title><sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="6.8235804" + inkscape:cx="448.88458" + inkscape:cy="304.16583" + inkscape:window-width="1920" + inkscape:window-height="991" + inkscape:window-x="-9" + inkscape:window-y="-9" + inkscape:window-maximized="1" + inkscape:current-layer="layer8" + showguides="true" /><style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style><defs + id="defs12174"><rect + x="566.85785" + y="208.10188" + width="250.30849" + height="233.89481" + id="rect20" /><rect + x="570.37506" + y="157.10226" + width="109.03367" + height="100.24063" + id="rect19" /><inkscape:path-effect + effect="offset" + id="path-effect38844" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /><inkscape:path-effect + effect="tiling" + id="path-effect38774" + is_visible="true" + lpeversion="1" + unit="px" + seed="1;1" + lpesatellites="" + num_rows="3" + num_cols="3" + gapx="0" + gapy="0" + offset="0" + offset_type="false" + scale="0" + rotate="0" + mirrorrowsx="false" + mirrorrowsy="false" + mirrorcolsx="false" + mirrorcolsy="false" + mirrortrans="false" + shrink_interp="false" + split_items="false" + link_styles="false" + interpolate_scalex="false" + interpolate_scaley="true" + interpolate_rotatex="false" + interpolate_rotatey="true" + random_scale="false" + random_rotate="false" + random_gap_y="false" + random_gap_x="false" + transformorigin="" /><inkscape:path-effect + effect="offset" + id="path-effect38772" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="0" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38550" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38546" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38542" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38538" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32727" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32707" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32687" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32667" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /><linearGradient + id="linearGradient13254"><stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /><stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /></linearGradient><radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /><inkscape:path-effect + effect="offset" + id="path-effect38844-6" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter35050" + x="-0.0033200292" + y="-0.0025765463" + width="1.0066401" + height="1.0051531"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.056059462" + id="feGaussianBlur35052" /></filter><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter35054" + x="-0.0017818477" + y="-0.0060428969" + width="1.0035637" + height="1.0120858"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.057750982" + id="feGaussianBlur35056" /></filter><marker + style="overflow:visible" + id="Arrow3" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Arrow3" + markerWidth="4.2071066" + markerHeight="7" + viewBox="0 0 4.2071068 7" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"><path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" + d="M 3,-3 0,0 3,3" + id="arrow3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" /></marker><marker + style="overflow:visible" + id="Arrow3-5" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Arrow3" + markerWidth="4.2071066" + markerHeight="6.9999995" + viewBox="0 0 4.2071068 7" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"><path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" + d="M 3,-3 0,0 3,3" + id="arrow3-6" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" /></marker><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter45" + x="-0.030064201" + y="-0.059677439" + width="1.0601284" + height="1.1193549"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.77132796" + id="feGaussianBlur45" /></filter></defs><g + inkscape:groupmode="layer" + id="layer10" + inkscape:label="Raster" + style="display:inline"><rect + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.238;paint-order:stroke fill markers" + id="rect1" + width="210" + height="122.63815" + x="6.12208e-07" + y="0" /><g + id="g35048" + style="stroke:#aaaaff;stroke-width:0.764143;stroke-opacity:1;filter:url(#filter35054)" + transform="matrix(2.6901212,0,0,1.5708027,58.347101,70.980283)"><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-11.699799 H -21.550344" + id="path34917" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-6.1504898 H -21.550344" + id="path34919" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-0.601181 H -21.550344" + id="path34921" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,4.9481278 H -21.550344" + id="path34923" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,10.497437 H -21.550344" + id="path34925" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,16.046745 H -21.550344" + id="path34927" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,21.596054 H -21.550344" + id="path34929" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,32.694672 H -21.550344" + id="path34931" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,27.145363 H -21.550344" + id="path34933" /></g><g + id="g42268" + transform="matrix(1.5708027,0,0,1.3997089,42.502098,53.176999)" + style="stroke-width:1.05936"><g + id="g34915" + transform="matrix(1,0,0,1.6561847,-5.3478445,-21.991099)" + style="stroke:#aaaaff;stroke-width:0.823166;stroke-opacity:1;filter:url(#filter35050)"><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M -10.356301,-9.2853008 V 42.932937" + id="path34560" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M -4.8069918,-9.2853008 V 42.932937" + id="path34560-2" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 0.742317,-9.2853008 V 42.932937" + id="path34560-2-5" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.2916258,-9.2853008 V 42.932937" + id="path34608" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 11.840935,-9.285301 V 42.932937" + id="path34560-9" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 17.390243,-9.285301 V 42.932937" + id="path34560-2-7" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 22.939552,-9.285301 V 42.932937" + id="path34560-2-5-5" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 34.03817,-9.285301 V 42.932937" + id="path34562-5" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 28.488861,-9.285301 V 42.932937" + id="path34608-6" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 39.587479,-9.285301 V 42.932937" + id="path34666" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 45.136787,-9.285301 V 42.932937" + id="path34668" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-9.285301 V 42.932937" + id="path34670" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M 50.686096,-9.285301 V 42.932937" + id="path34672" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M -21.454918,-9.285301 V 42.932937" + id="path34678" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0626245;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.626245, 0.626245;stroke-dashoffset:0;stroke-opacity:1" + d="M -15.905609,-9.285301 V 42.932937" + id="path34682" /></g><g + id="g41858" + transform="matrix(1,0,0,1.6604409,72.342479,-22.174406)" + style="stroke:#aaaaff;stroke-width:0.822111;stroke-opacity:1;filter:url(#filter35050)"><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M -10.356301,-9.2853008 V 42.932937" + id="path41828" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M -4.8069918,-9.2853008 V 42.932937" + id="path41830" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 0.742317,-9.2853008 V 42.932937" + id="path41832" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.2916258,-9.2853008 V 42.932937" + id="path41834" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 11.840935,-9.285301 V 42.932937" + id="path41836" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 17.390243,-9.285301 V 42.932937" + id="path41838" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 22.939552,-9.285301 V 42.932937" + id="path41840" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 34.03817,-9.285301 V 42.932937" + id="path41842" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M 28.488861,-9.285301 V 42.932937" + id="path41844" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0625442;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.625442, 0.625442;stroke-dashoffset:0;stroke-opacity:1" + d="M -15.905609,-9.285301 V 42.932937" + id="path41856" /></g></g><g + id="g42298" + style="stroke:#aaaaff;stroke-width:0.764143;stroke-opacity:1;filter:url(#filter35054)" + transform="matrix(2.6901212,0,0,1.5708027,58.347101,-16.18841)"><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,10.497437 H -21.550344" + id="path42284" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,16.046745 H -21.550344" + id="path42286" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,21.596054 H -21.550344" + id="path42288" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,32.694672 H -21.550344" + id="path42290" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,27.145363 H -21.550344" + id="path42292" /><path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,38.243981 H -21.550344" + id="path42294" /></g></g><g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="Legend"><g + id="g2" + transform="translate(4.3030648e-4,-72.593748)"><rect + style="mix-blend-mode:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.985999;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;filter:url(#filter45)" + id="rect45" + width="61.574467" + height="31.019882" + x="139.77576" + y="78.658936" /><text + xml:space="preserve" + style="font-size:3.17287px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="87.220894" + id="text13"><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="87.220894" + id="tspan16-6">n<tspan + style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" + id="tspan26">eng</tspan></tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="91.186981" + id="tspan20">n<tspan + style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" + id="tspan27">eng,min</tspan></tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="95.153069" + id="tspan21">n<tspan + style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" + id="tspan28">eng,max</tspan></tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="99.119156" + id="tspan22">M<tspan + style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" + id="tspan29">eng</tspan></tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="103.08524" + id="tspan23">M<tspan + style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" + id="tspan30">eng,drag</tspan></tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:0.271;stroke-dasharray:none" + x="143.22543" + y="107.05133" + id="tspan24">M<tspan + style="font-size:65%;baseline-shift:sub;stroke-width:0.271;stroke-dasharray:none" + id="tspan25">eng,max</tspan></tspan></text><text + xml:space="preserve" + style="font-size:3.17287px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.77095" + x="158.44345" + y="87.220894" + id="text43"><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="158.44345" + y="87.220894" + id="tspan33">Engine Speed</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="158.44345" + y="91.186981" + id="tspan35">Minimum Engine Speed</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="158.44345" + y="95.153069" + id="tspan37">Maximum Engine Speed</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="158.44345" + y="99.119156" + id="tspan39">Engine Torque</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="158.44345" + y="103.08524" + id="tspan41">Engine Drag Torque</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke-width:1.77095" + x="158.44345" + y="107.05133" + id="tspan43">Engine Maximum Torque</tspan></text><text + xml:space="preserve" + style="font-size:3.71278px;line-height:1.25;font-family:sans-serif;display:inline;stroke:#000000;stroke-width:0.171;stroke-dasharray:none;stroke-opacity:1" + x="144.03098" + y="82.839394" + id="text43-6" + transform="scale(0.9941455,1.005889)"><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:Sans;stroke:#000000;stroke-width:0.171;stroke-dasharray:none;stroke-opacity:1" + x="144.03098" + y="82.839394" + id="tspan43-9">Legend</tspan></text></g></g><g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="CoorindateSystem"><text + xml:space="preserve" + style="font-size:3.45723px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;display:inline;stroke-width:1.58092" + x="-9.6636496" + y="8.0107098" + id="text34235" + transform="rotate(-90)"><tspan + sodipodi:role="line" + style="text-align:center;text-anchor:middle;stroke-width:1.58092" + x="-9.6636496" + y="8.0107098" + id="tspan34237">M<tspan + style="font-size:65%;text-align:center;baseline-shift:sub;text-anchor:middle" + id="tspan1">eng</tspan></tspan><tspan + sodipodi:role="line" + style="font-size:2.82222px;text-align:center;text-anchor:middle;stroke-width:1.58092" + x="-9.6636496" + y="12.332248" + id="tspan12">(Nm)</tspan></text><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="28.228691" + y="76.520775" + id="text34235-7"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="28.228691" + y="76.520775" + id="tspan34237-0">n<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan2">eng,min</tspan></tspan></text><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;white-space:pre;inline-size:3.40881;display:inline;stroke-width:1.58092" + x="5.7083039" + y="97.315834" + id="text34235-7-9-3" + transform="translate(8.7168724,-17.450701)"><tspan + x="5.7083039" + y="97.315834" + id="tspan10">0</tspan></text><path + style="display:inline;fill:none;stroke:#000000;stroke-width:0.478011;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" + d="M 17.833986,78.744308 H 139.1874" + id="path32829" + inkscape:label="Longitudinal" /><path + style="display:inline;fill:none;stroke:#000000;stroke-width:0.478011;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" + d="M 17.833984,113.6203 V 9.641386" + id="path32831" + inkscape:label="Longitudinal" /><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="52.575844" + y="101.74531" + id="text5"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="52.575844" + y="101.74531" + id="tspan5">M<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan42">eng,drag</tspan>(n<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan45">eng</tspan>)=0.1<tspan + style="font-size:1.41111px" + id="tspan59"> </tspan>M<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan46">eng</tspan>(n<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan47">eng</tspan>)</tspan></text><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="56.225651" + y="15.652905" + id="text7"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="56.225651" + y="15.652905" + id="tspan7">M<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan38">eng,max</tspan>(n<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan40">eng</tspan>)</tspan></text><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;text-align:center;text-anchor:middle;display:inline;stroke-width:1.58092" + x="139.59302" + y="83.318146" + id="text9"><tspan + sodipodi:role="line" + style="text-align:center;text-anchor:middle;stroke-width:1.58092" + x="139.59302" + y="83.318146" + id="tspan9">n<tspan + style="font-size:65%;text-align:center;baseline-shift:sub;text-anchor:middle" + id="tspan8">eng</tspan></tspan><tspan + sodipodi:role="line" + style="font-size:2.82222px;text-align:center;text-anchor:middle;stroke-width:1.58092" + x="139.59302" + y="87.174744" + id="tspan14">(rpm)</tspan></text><path + style="fill:none;stroke:#000000;stroke-width:0.386;paint-order:stroke fill markers;stroke-dasharray:0.386,0.386;stroke-dashoffset:0;font-variation-settings:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 26.550852,52.565389 V 91.480343" + id="path14" /><path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.386;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.386, 0.386;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 131.15329,31.713229 -0.0886,59.69463" + id="path15" + sodipodi:nodetypes="cc" /><path + style="fill:none;stroke:#000000;stroke-width:0.386;stroke-dasharray:0.386,0.386;stroke-dashoffset:0;paint-order:stroke fill markers;font-variation-settings:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 26.550854,52.556571 H 17.985345" + id="path16" /><path + style="fill:none;stroke:#000000;stroke-width:0.386;stroke-dasharray:0.386,0.386;stroke-dashoffset:0;paint-order:stroke fill markers;font-variation-settings:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 61.411606,17.780389 V 97.49317" + id="path17" /><path + style="fill:none;stroke:#000000;stroke-width:0.386;stroke-dasharray:0.386,0.386;stroke-dashoffset:0;paint-order:stroke fill markers;font-variation-settings:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 96.333471,17.947058 -0.0886,79.763809" + id="path18" + sodipodi:nodetypes="cc" /><path + style="fill:none;stroke:#0000ff;stroke-width:0.886;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers" + d="m 26.550852,52.565389 34.860754,-34.785 34.921865,0.166669 35.012819,13.958804" + id="path19" + sodipodi:nodetypes="cccc" /><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="36.552277" + y="55.94112" + id="text15"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="36.552277" + y="55.94112" + id="tspan15">1000<tspan + style="font-size:1.76389px" + id="tspan16"> </tspan>rpm</tspan></text><path + style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.338;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow3-5);marker-end:url(#Arrow3-5);paint-order:stroke fill markers;stop-color:#000000" + d="M 29.850786,57.74479 H 58.111671" + id="path22" + sodipodi:nodetypes="cc" /><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="106.29396" + y="55.94112" + id="text32"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="106.29396" + y="55.94112" + id="tspan32">1000<tspan + style="font-size:1.76389px" + id="tspan19"> </tspan>rpm</tspan></text><path + style="font-variation-settings:normal;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.338;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-start:url(#Arrow3-5);marker-end:url(#Arrow3-5);paint-order:stroke fill markers;stop-color:#000000" + d="M 99.592467,57.74479 H 127.85335" + id="path32" + sodipodi:nodetypes="cc" /><path + style="fill:none;stroke:#0000ff;stroke-width:0.886;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers" + d="m 26.550852,91.480343 34.860754,6.012825 h 34.874202 l 34.778882,-6.085219" + id="path40" /><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;text-align:end;text-anchor:end;display:inline;stroke-width:1.58092" + x="16.461882" + y="18.167492" + id="text50"><tspan + sodipodi:role="line" + style="text-align:end;text-anchor:end;stroke-width:1.58092" + x="16.461882" + y="18.167492" + id="tspan50">M<tspan + style="font-size:65%;text-align:end;baseline-shift:sub;text-anchor:end" + id="tspan48">eng,max</tspan></tspan></text><path + style="fill:none;stroke:#000000;stroke-width:0.386;stroke-dasharray:0.386,0.386;stroke-dashoffset:0;paint-order:stroke fill markers;font-variation-settings:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 61.287082,17.754545 H 17.776502" + id="path50" /><path + style="fill:none;stroke:#000000;stroke-width:0.386;stroke-dasharray:0.386,0.386;stroke-dashoffset:0;paint-order:stroke fill markers;font-variation-settings:normal;opacity:1;vector-effect:none;fill-opacity:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 131.34629,31.905862 H 18.259407" + id="path51" /><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;text-align:end;text-anchor:end;display:inline;stroke-width:1.58092" + x="16.461882" + y="51.338291" + id="text52"><tspan + sodipodi:role="line" + style="text-align:end;text-anchor:end;stroke-width:1.58092" + x="16.461882" + y="51.338291" + id="tspan52">M<tspan + style="font-size:65%;text-align:end;baseline-shift:sub;text-anchor:end" + id="tspan51">eng,max</tspan></tspan><tspan + sodipodi:role="line" + style="text-align:end;text-anchor:end;stroke-width:1.58092" + x="16.461882" + y="55.194893" + id="tspan53">-100<tspan + style="font-size:1.41111px;text-align:end;text-anchor:end" + id="tspan54"> </tspan>Nm</tspan></text><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;text-align:end;text-anchor:end;display:inline;stroke-width:1.58092" + x="16.461882" + y="30.44314" + id="text58"><tspan + sodipodi:role="line" + style="text-align:end;text-anchor:end;stroke-width:1.58092" + x="16.461882" + y="30.44314" + id="tspan56">M<tspan + style="font-size:65%;text-align:end;baseline-shift:sub;text-anchor:end" + id="tspan55">eng,max</tspan></tspan><tspan + sodipodi:role="line" + style="text-align:end;text-anchor:end;stroke-width:1.58092" + x="16.461882" + y="34.29974" + id="tspan58">-40<tspan + style="font-size:1.41111px;text-align:end;text-anchor:end" + id="tspan57"> </tspan>Nm</tspan></text><text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="119.2053" + y="76.520775" + id="text6"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="119.2053" + y="76.520775" + id="tspan6">n<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan4">eng,max</tspan></tspan></text></g><metadata + id="metadata448"><rdf:RDF><cc:Work + rdf:about=""><cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><dc:rights><cc:Agent><dc:title>2024 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights><dc:title>Engine Map Calculation</dc:title></cc:Work></rdf:RDF></metadata></svg> diff --git a/content/html/_images/EnvironmentalZoneBegin_270.1.svg b/content/html/_images/EnvironmentalZoneBegin_270.1.svg index f413a4d6dacb3e5efcb483f33c8ec2e56a81147d..f4e598620a14f07bbf3d7d7bf26d554e1d026785 100644 --- a/content/html/_images/EnvironmentalZoneBegin_270.1.svg +++ b/content/html/_images/EnvironmentalZoneBegin_270.1.svg @@ -1,42 +1,42 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 586.26202 586.26202" - height="586.26202" - width="586.26202" - xml:space="preserve" - version="1.1" - id="svg4136"><metadata - id="metadata4142"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs4140" /><g - transform="matrix(1.25,0,0,-1.25,0,586.26202)" - id="g4144"><g - id="g4146"><g - transform="matrix(1,0,0,-1,0,469.00961)" - id="g4148"><path - id="path4150" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 437.367,468.609 c 17.219,0 31.18,-13.961 31.18,-31.179 L 468.609,31.645 C 468.609,14.422 454.648,0.461 437.43,0.461 L 31.645,0.398 C 14.422,0.398 0.461,14.359 0.461,31.582 L 0.398,437.367 c 0,17.223 13.961,31.18 31.184,31.18 l 405.785,0.062 z" /></g><g - transform="matrix(1,0,0,-1,0,469.00961)" - id="g4152"><path - id="path4154" - style="fill:none;stroke:#000000;stroke-width:11.19999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 31.582,454.949 C 21.887,454.949 14,447.063 14,437.367 L 14.063,31.582 C 14.063,21.887 21.949,14 31.645,14 l 405.781,0.063 c 9.699,0 17.582,7.886 17.582,17.582 l -0.063,405.781 c 0,9.699 -7.882,17.582 -17.578,17.582 L 31.582,454.949 Z" /></g><path - id="path4156" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 382.516,278.506 c 0,-81.782 -66.297,-148.082 -148.082,-148.082 -81.782,0 -148.082,66.3 -148.082,148.082 0,81.785 66.3,148.082 148.082,148.082 81.785,0 148.082,-66.297 148.082,-148.082 z" /><path - id="path4158" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 343.547,278.506 c 0,-60.258 -48.852,-109.11 -109.113,-109.11 -60.258,0 -109.11,48.852 -109.11,109.11 0,60.261 48.852,109.109 109.11,109.109 60.261,0 109.113,-48.848 109.113,-109.109 z" /><path - id="path4160" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 133.508,300.599 6.625,0 0,-28.449 c 0,-4.949 4.012,-8.961 8.961,-8.961 4.953,0 8.965,4.012 8.965,8.961 l 0,28.449 6.625,0 0,-28.449 c 0,-8.605 -6.981,-15.586 -15.59,-15.586 -8.606,0 -15.586,6.981 -15.586,15.586 l 0,28.449 z m 39.746,-43.644 0,31.176 6.234,0 0,-3.52 c 2,2.473 5.008,3.906 8.184,3.906 3.351,0 6.5,-1.593 8.484,-4.293 2.219,2.715 5.543,4.293 9.051,4.293 6.457,0 11.691,-5.234 11.691,-11.687 l 0,-19.875 -6.234,0 0,19.094 c 0,3.445 -2.793,6.234 -6.234,6.234 -3.446,0 -6.235,-2.789 -6.235,-6.234 l 0,-19.094 -6.234,0 0,19.094 c 0,3.445 -2.793,6.234 -6.234,6.234 -3.446,0 -6.239,-2.789 -6.239,-6.234 l 0,-19.094 -6.234,0 z m 59.621,0 -9.742,31.176 6.625,0 5.844,-21.825 7.019,21.825 4.676,0 7.012,-21.825 5.847,21.825 6.621,0 -9.738,-31.176 -5.457,0 -6.625,21.824 -6.621,-21.824 -5.461,0 z m 64.301,13.25 -19.485,0 0,-0.781 c 0,-2.707 1.649,-5.145 4.164,-6.149 1.028,-0.414 2.129,-0.625 3.239,-0.625 2.543,0 4.961,1.114 6.617,3.043 l 4.734,-4.062 c -2.843,-3.309 -6.988,-5.215 -11.351,-5.215 -1.903,0 -3.789,0.363 -5.555,1.07 -4.883,1.953 -8.086,6.68 -8.086,11.938 l 0,6.238 c 0,7.102 5.758,12.859 12.86,12.859 7.101,0 12.863,-5.757 12.863,-12.859 l 0,-5.457 z m -19.488,5.453 13.25,0 c 0,3.66 -2.965,6.625 -6.625,6.625 -3.657,0 -6.625,-2.965 -6.625,-6.625 z m 38.968,-18.703 -3.894,0 c -3.875,0 -7.016,3.141 -7.016,7.016 l 0,36.628 6.234,0 0,-35.851 c 0,-1.074 0.872,-1.949 1.95,-1.949 l 2.726,0 0,-5.844 z m 18.707,0 -3.898,0 c -3.875,0 -7.012,3.141 -7.012,7.016 l 0,19.093 -3.121,0 0,5.067 3.121,0 0,9.351 6.231,0 0,-9.351 4.679,0 0,-5.067 -4.679,0 0,-18.316 c 0,-1.074 0.875,-1.949 1.949,-1.949 l 2.73,0 0,-5.844 z" /><path - id="path4162" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 586.26202 586.26202" + height="586.26202" + width="586.26202" + xml:space="preserve" + version="1.1" + id="svg4136"><metadata + id="metadata4142"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs4140" /><g + transform="matrix(1.25,0,0,-1.25,0,586.26202)" + id="g4144"><g + id="g4146"><g + transform="matrix(1,0,0,-1,0,469.00961)" + id="g4148"><path + id="path4150" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 437.367,468.609 c 17.219,0 31.18,-13.961 31.18,-31.179 L 468.609,31.645 C 468.609,14.422 454.648,0.461 437.43,0.461 L 31.645,0.398 C 14.422,0.398 0.461,14.359 0.461,31.582 L 0.398,437.367 c 0,17.223 13.961,31.18 31.184,31.18 l 405.785,0.062 z" /></g><g + transform="matrix(1,0,0,-1,0,469.00961)" + id="g4152"><path + id="path4154" + style="fill:none;stroke:#000000;stroke-width:11.19999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 31.582,454.949 C 21.887,454.949 14,447.063 14,437.367 L 14.063,31.582 C 14.063,21.887 21.949,14 31.645,14 l 405.781,0.063 c 9.699,0 17.582,7.886 17.582,17.582 l -0.063,405.781 c 0,9.699 -7.882,17.582 -17.578,17.582 L 31.582,454.949 Z" /></g><path + id="path4156" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 382.516,278.506 c 0,-81.782 -66.297,-148.082 -148.082,-148.082 -81.782,0 -148.082,66.3 -148.082,148.082 0,81.785 66.3,148.082 148.082,148.082 81.785,0 148.082,-66.297 148.082,-148.082 z" /><path + id="path4158" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 343.547,278.506 c 0,-60.258 -48.852,-109.11 -109.113,-109.11 -60.258,0 -109.11,48.852 -109.11,109.11 0,60.261 48.852,109.109 109.11,109.109 60.261,0 109.113,-48.848 109.113,-109.109 z" /><path + id="path4160" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 133.508,300.599 6.625,0 0,-28.449 c 0,-4.949 4.012,-8.961 8.961,-8.961 4.953,0 8.965,4.012 8.965,8.961 l 0,28.449 6.625,0 0,-28.449 c 0,-8.605 -6.981,-15.586 -15.59,-15.586 -8.606,0 -15.586,6.981 -15.586,15.586 l 0,28.449 z m 39.746,-43.644 0,31.176 6.234,0 0,-3.52 c 2,2.473 5.008,3.906 8.184,3.906 3.351,0 6.5,-1.593 8.484,-4.293 2.219,2.715 5.543,4.293 9.051,4.293 6.457,0 11.691,-5.234 11.691,-11.687 l 0,-19.875 -6.234,0 0,19.094 c 0,3.445 -2.793,6.234 -6.234,6.234 -3.446,0 -6.235,-2.789 -6.235,-6.234 l 0,-19.094 -6.234,0 0,19.094 c 0,3.445 -2.793,6.234 -6.234,6.234 -3.446,0 -6.239,-2.789 -6.239,-6.234 l 0,-19.094 -6.234,0 z m 59.621,0 -9.742,31.176 6.625,0 5.844,-21.825 7.019,21.825 4.676,0 7.012,-21.825 5.847,21.825 6.621,0 -9.738,-31.176 -5.457,0 -6.625,21.824 -6.621,-21.824 -5.461,0 z m 64.301,13.25 -19.485,0 0,-0.781 c 0,-2.707 1.649,-5.145 4.164,-6.149 1.028,-0.414 2.129,-0.625 3.239,-0.625 2.543,0 4.961,1.114 6.617,3.043 l 4.734,-4.062 c -2.843,-3.309 -6.988,-5.215 -11.351,-5.215 -1.903,0 -3.789,0.363 -5.555,1.07 -4.883,1.953 -8.086,6.68 -8.086,11.938 l 0,6.238 c 0,7.102 5.758,12.859 12.86,12.859 7.101,0 12.863,-5.757 12.863,-12.859 l 0,-5.457 z m -19.488,5.453 13.25,0 c 0,3.66 -2.965,6.625 -6.625,6.625 -3.657,0 -6.625,-2.965 -6.625,-6.625 z m 38.968,-18.703 -3.894,0 c -3.875,0 -7.016,3.141 -7.016,7.016 l 0,36.628 6.234,0 0,-35.851 c 0,-1.074 0.872,-1.949 1.95,-1.949 l 2.726,0 0,-5.844 z m 18.707,0 -3.898,0 c -3.875,0 -7.012,3.141 -7.012,7.016 l 0,19.093 -3.121,0 0,5.067 3.121,0 0,9.351 6.231,0 0,-9.351 4.679,0 0,-5.067 -4.679,0 0,-18.316 c 0,-1.074 0.875,-1.949 1.949,-1.949 l 2.73,0 0,-5.844 z" /><path + id="path4162" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 125.805,42.154 0,8.176 29.785,48.476 -28.617,0 0,8.762 40.882,0 0,-7.59 -29.789,-48.476 29.789,0 0,-9.348 -42.05,0 z m 51.394,22.777 0,19.86 c 0,12.898 10.461,23.359 23.364,23.359 12.902,0 23.359,-10.461 23.359,-23.359 l 0,-19.86 c 0,-12.902 -10.457,-23.359 -23.359,-23.359 -12.903,0 -23.364,10.457 -23.364,23.359 z m 9.93,0 c 0,-7.417 6.016,-13.433 13.434,-13.433 7.417,0 13.433,6.016 13.433,13.433 l 0,19.86 c 0,7.418 -6.016,13.43 -13.433,13.43 -7.418,0 -13.434,-6.012 -13.434,-13.43 l 0,-19.86 z m 49.644,-22.777 0,65.414 9.344,0 29.785,-46.722 0,46.722 9.93,0 0,-65.414 -9.344,0 -29.785,46.723 0,-46.723 -9.93,0 z m 64.243,0 0,65.414 42.05,0 0,-9.344 -32.121,0 0,-18.691 27.45,0 0,-8.758 -27.45,0 0,-19.273 32.121,0 0,-9.348 -42.05,0 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/EnvironmentalZoneEnd_270.2.svg b/content/html/_images/EnvironmentalZoneEnd_270.2.svg index d64af5878be9f1427cfe8ad97a1dcd24d2e079dc..c079b829f491b376ea595842f0abfe22b1b8e85a 100644 --- a/content/html/_images/EnvironmentalZoneEnd_270.2.svg +++ b/content/html/_images/EnvironmentalZoneEnd_270.2.svg @@ -1,68 +1,68 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 586.26202 586.26202" - height="586.26202" - width="586.26202" - xml:space="preserve" - version="1.1" - id="svg4322"><metadata - id="metadata4328"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs4326" /><g - transform="matrix(1.25,0,0,-1.25,0,586.26202)" - id="g4330"><g - id="g4332"><path - id="path4334" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 437.367,0.4 c 17.219,0 31.18,13.961 31.18,31.18 l 0.062,405.785 c 0,17.223 -13.961,31.184 -31.179,31.184 L 31.645,468.611 C 14.422,468.611 0.461,454.65 0.461,437.428 L 0.398,31.642 C 0.398,14.42 14.359,0.463 31.582,0.463 L 437.367,0.4 Z" /><g - transform="matrix(1,0,0,-1,0,469.00961)" - id="g4336"><path - id="path4338" - style="fill:none;stroke:#000000;stroke-width:11.19999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 31.582,454.949 C 21.887,454.949 14,447.062 14,437.367 L 14.062,31.582 C 14.062,21.887 21.949,14 31.645,14 l 405.781,0.062 c 9.699,0 17.582,7.887 17.582,17.583 l -0.063,405.781 c 0,9.699 -7.883,17.582 -17.578,17.582 L 31.582,454.949 Z" /></g><path - id="path4340" - style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 382.516,278.506 c 0,-81.782 -66.297,-148.082 -148.082,-148.082 -81.782,0 -148.082,66.3 -148.082,148.082 0,81.785 66.3,148.082 148.082,148.082 81.785,0 148.082,-66.297 148.082,-148.082 z" /><path - id="path4342" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 343.547,278.506 c 0,-60.258 -48.852,-109.11 -109.113,-109.11 -60.258,0 -109.11,48.852 -109.11,109.11 0,60.261 48.852,109.109 109.11,109.109 60.261,0 109.113,-48.848 109.113,-109.109 z" /><path - id="path4344" - style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 133.508,300.599 6.625,0 0,-28.449 c 0,-4.949 4.012,-8.961 8.961,-8.961 4.953,0 8.965,4.012 8.965,8.961 l 0,28.449 6.625,0 0,-28.449 c 0,-8.605 -6.981,-15.586 -15.59,-15.586 -8.606,0 -15.586,6.981 -15.586,15.586 l 0,28.449 z m 39.746,-43.644 0,31.176 6.234,0 0,-3.52 c 2,2.473 5.008,3.906 8.184,3.906 3.351,0 6.5,-1.593 8.484,-4.293 2.219,2.715 5.543,4.293 9.051,4.293 6.457,0 11.691,-5.234 11.691,-11.687 l 0,-19.875 -6.234,0 0,19.094 c 0,3.445 -2.793,6.234 -6.234,6.234 -3.446,0 -6.235,-2.789 -6.235,-6.234 l 0,-19.094 -6.234,0 0,19.094 c 0,3.445 -2.793,6.234 -6.234,6.234 -3.446,0 -6.239,-2.789 -6.239,-6.234 l 0,-19.094 -6.234,0 z m 59.621,0 -9.742,31.176 6.625,0 5.844,-21.825 7.019,21.825 4.676,0 7.012,-21.825 5.847,21.825 6.621,0 -9.738,-31.176 -5.457,0 -6.625,21.824 -6.621,-21.824 -5.461,0 z m 64.301,13.25 -19.485,0 0,-0.781 c 0,-2.707 1.649,-5.145 4.164,-6.149 1.028,-0.414 2.129,-0.625 3.239,-0.625 2.543,0 4.961,1.114 6.617,3.043 l 4.734,-4.062 c -2.843,-3.309 -6.988,-5.215 -11.351,-5.215 -1.903,0 -3.789,0.363 -5.555,1.07 -4.883,1.953 -8.086,6.68 -8.086,11.938 l 0,6.238 c 0,7.102 5.758,12.859 12.859,12.859 7.102,0 12.864,-5.757 12.864,-12.859 l 0,-5.457 z m -19.488,5.453 13.25,0 c 0,3.66 -2.965,6.625 -6.626,6.625 -3.656,0 -6.624,-2.965 -6.624,-6.625 z m 38.968,-18.703 -3.894,0 c -3.875,0 -7.016,3.141 -7.016,7.016 l 0,36.628 6.234,0 0,-35.851 c 0,-1.074 0.872,-1.949 1.95,-1.949 l 2.726,0 0,-5.844 z m 18.707,0 -3.898,0 c -3.875,0 -7.012,3.141 -7.012,7.016 l 0,19.093 -3.121,0 0,5.067 3.121,0 0,9.351 6.231,0 0,-9.351 4.679,0 0,-5.067 -4.679,0 0,-18.316 c 0,-1.074 0.875,-1.949 1.949,-1.949 l 2.73,0 0,-5.844 z" /><path - id="path4346" - style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 125.805,42.154 0,8.176 29.785,48.476 -28.617,0 0,8.762 40.882,0 0,-7.59 -29.789,-48.476 29.789,0 0,-9.348 -42.05,0 z m 51.394,22.777 0,19.86 c 0,12.898 10.461,23.359 23.363,23.359 12.903,0 23.36,-10.461 23.36,-23.359 l 0,-19.86 c 0,-12.902 -10.457,-23.359 -23.36,-23.359 -12.902,0 -23.363,10.457 -23.363,23.359 z m 9.93,0 c 0,-7.417 6.016,-13.433 13.433,-13.433 7.418,0 13.434,6.016 13.434,13.433 l 0,19.86 c 0,7.418 -6.016,13.43 -13.434,13.43 -7.417,0 -13.433,-6.012 -13.433,-13.43 l 0,-19.86 z m 49.644,-22.777 0,65.414 9.344,0 29.785,-46.722 0,46.722 9.93,0 0,-65.414 -9.344,0 -29.785,46.723 0,-46.723 -9.93,0 z m 64.243,0 0,65.414 42.05,0 0,-9.344 -32.121,0 0,-18.691 27.45,0 0,-8.758 -27.45,0 0,-19.273 32.121,0 0,-9.348 -42.05,0 z" /><g - transform="matrix(1,0,0,-1,0,469.00961)" - id="g4348"><path - id="path4350" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 455.008,37.129 37.195,454.949" /></g><g - transform="matrix(1,0,0,-1,0,469.00961)" - id="g4352"><path - id="path4354" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="m 455.004,60.945 -394,394.008" /></g><g - transform="matrix(1,0,0,-1,0,469.00961)" - id="g4356"><path - id="path4358" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 449.477,18.852 18.855,449.48" /></g><g - transform="matrix(1,0,0,-1,0,469.00961)" - id="g4360"><path - id="path4362" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 430.453,14.062 14,430.523" /></g><g - transform="matrix(1,0,0,-1,0,469.00961)" - id="g4364"><path - id="path4366" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 406.648,14.059 14.004,406.707" /></g><path - id="path4368" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 586.26202 586.26202" + height="586.26202" + width="586.26202" + xml:space="preserve" + version="1.1" + id="svg4322"><metadata + id="metadata4328"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs4326" /><g + transform="matrix(1.25,0,0,-1.25,0,586.26202)" + id="g4330"><g + id="g4332"><path + id="path4334" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 437.367,0.4 c 17.219,0 31.18,13.961 31.18,31.18 l 0.062,405.785 c 0,17.223 -13.961,31.184 -31.179,31.184 L 31.645,468.611 C 14.422,468.611 0.461,454.65 0.461,437.428 L 0.398,31.642 C 0.398,14.42 14.359,0.463 31.582,0.463 L 437.367,0.4 Z" /><g + transform="matrix(1,0,0,-1,0,469.00961)" + id="g4336"><path + id="path4338" + style="fill:none;stroke:#000000;stroke-width:11.19999981;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 31.582,454.949 C 21.887,454.949 14,447.062 14,437.367 L 14.062,31.582 C 14.062,21.887 21.949,14 31.645,14 l 405.781,0.062 c 9.699,0 17.582,7.887 17.582,17.583 l -0.063,405.781 c 0,9.699 -7.883,17.582 -17.578,17.582 L 31.582,454.949 Z" /></g><path + id="path4340" + style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 382.516,278.506 c 0,-81.782 -66.297,-148.082 -148.082,-148.082 -81.782,0 -148.082,66.3 -148.082,148.082 0,81.785 66.3,148.082 148.082,148.082 81.785,0 148.082,-66.297 148.082,-148.082 z" /><path + id="path4342" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 343.547,278.506 c 0,-60.258 -48.852,-109.11 -109.113,-109.11 -60.258,0 -109.11,48.852 -109.11,109.11 0,60.261 48.852,109.109 109.11,109.109 60.261,0 109.113,-48.848 109.113,-109.109 z" /><path + id="path4344" + style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 133.508,300.599 6.625,0 0,-28.449 c 0,-4.949 4.012,-8.961 8.961,-8.961 4.953,0 8.965,4.012 8.965,8.961 l 0,28.449 6.625,0 0,-28.449 c 0,-8.605 -6.981,-15.586 -15.59,-15.586 -8.606,0 -15.586,6.981 -15.586,15.586 l 0,28.449 z m 39.746,-43.644 0,31.176 6.234,0 0,-3.52 c 2,2.473 5.008,3.906 8.184,3.906 3.351,0 6.5,-1.593 8.484,-4.293 2.219,2.715 5.543,4.293 9.051,4.293 6.457,0 11.691,-5.234 11.691,-11.687 l 0,-19.875 -6.234,0 0,19.094 c 0,3.445 -2.793,6.234 -6.234,6.234 -3.446,0 -6.235,-2.789 -6.235,-6.234 l 0,-19.094 -6.234,0 0,19.094 c 0,3.445 -2.793,6.234 -6.234,6.234 -3.446,0 -6.239,-2.789 -6.239,-6.234 l 0,-19.094 -6.234,0 z m 59.621,0 -9.742,31.176 6.625,0 5.844,-21.825 7.019,21.825 4.676,0 7.012,-21.825 5.847,21.825 6.621,0 -9.738,-31.176 -5.457,0 -6.625,21.824 -6.621,-21.824 -5.461,0 z m 64.301,13.25 -19.485,0 0,-0.781 c 0,-2.707 1.649,-5.145 4.164,-6.149 1.028,-0.414 2.129,-0.625 3.239,-0.625 2.543,0 4.961,1.114 6.617,3.043 l 4.734,-4.062 c -2.843,-3.309 -6.988,-5.215 -11.351,-5.215 -1.903,0 -3.789,0.363 -5.555,1.07 -4.883,1.953 -8.086,6.68 -8.086,11.938 l 0,6.238 c 0,7.102 5.758,12.859 12.859,12.859 7.102,0 12.864,-5.757 12.864,-12.859 l 0,-5.457 z m -19.488,5.453 13.25,0 c 0,3.66 -2.965,6.625 -6.626,6.625 -3.656,0 -6.624,-2.965 -6.624,-6.625 z m 38.968,-18.703 -3.894,0 c -3.875,0 -7.016,3.141 -7.016,7.016 l 0,36.628 6.234,0 0,-35.851 c 0,-1.074 0.872,-1.949 1.95,-1.949 l 2.726,0 0,-5.844 z m 18.707,0 -3.898,0 c -3.875,0 -7.012,3.141 -7.012,7.016 l 0,19.093 -3.121,0 0,5.067 3.121,0 0,9.351 6.231,0 0,-9.351 4.679,0 0,-5.067 -4.679,0 0,-18.316 c 0,-1.074 0.875,-1.949 1.949,-1.949 l 2.73,0 0,-5.844 z" /><path + id="path4346" + style="fill:#999999;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 125.805,42.154 0,8.176 29.785,48.476 -28.617,0 0,8.762 40.882,0 0,-7.59 -29.789,-48.476 29.789,0 0,-9.348 -42.05,0 z m 51.394,22.777 0,19.86 c 0,12.898 10.461,23.359 23.363,23.359 12.903,0 23.36,-10.461 23.36,-23.359 l 0,-19.86 c 0,-12.902 -10.457,-23.359 -23.36,-23.359 -12.902,0 -23.363,10.457 -23.363,23.359 z m 9.93,0 c 0,-7.417 6.016,-13.433 13.433,-13.433 7.418,0 13.434,6.016 13.434,13.433 l 0,19.86 c 0,7.418 -6.016,13.43 -13.434,13.43 -7.417,0 -13.433,-6.012 -13.433,-13.43 l 0,-19.86 z m 49.644,-22.777 0,65.414 9.344,0 29.785,-46.722 0,46.722 9.93,0 0,-65.414 -9.344,0 -29.785,46.723 0,-46.723 -9.93,0 z m 64.243,0 0,65.414 42.05,0 0,-9.344 -32.121,0 0,-18.691 27.45,0 0,-8.758 -27.45,0 0,-19.273 32.121,0 0,-9.348 -42.05,0 z" /><g + transform="matrix(1,0,0,-1,0,469.00961)" + id="g4348"><path + id="path4350" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 455.008,37.129 37.195,454.949" /></g><g + transform="matrix(1,0,0,-1,0,469.00961)" + id="g4352"><path + id="path4354" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 455.004,60.945 -394,394.008" /></g><g + transform="matrix(1,0,0,-1,0,469.00961)" + id="g4356"><path + id="path4358" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 449.477,18.852 18.855,449.48" /></g><g + transform="matrix(1,0,0,-1,0,469.00961)" + id="g4360"><path + id="path4362" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 430.453,14.062 14,430.523" /></g><g + transform="matrix(1,0,0,-1,0,469.00961)" + id="g4364"><path + id="path4366" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 406.648,14.059 14.004,406.707" /></g><path + id="path4368" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 31.645,469.01 C 14.207,469.01 0.062,454.865 0.062,437.428 L 0,31.642 C 0,14.205 14.145,0.06 31.582,0.06 L 437.367,0.002 c 17.438,0 31.578,14.144 31.578,31.578 l 0.063,405.785 c 0,17.438 -14.145,31.582 -31.578,31.582 L 31.645,469.01 Z m 0,-0.399 405.785,-0.062 c 17.218,0 31.179,-13.961 31.179,-31.184 L 468.547,31.58 C 468.547,14.361 454.586,0.4 437.367,0.4 L 31.582,0.463 C 14.359,0.463 0.398,14.424 0.398,31.642 l 0.063,405.786 c 0,17.222 13.961,31.183 31.184,31.183 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/GetObstruction.svg b/content/html/_images/GetObstruction.svg index 4ed5b65deda7cfe51cc6b62be969e7776d802cf2..5bb21305f28a3a8fd51f29affb6b3ea3d7c3f3bf 100644 --- a/content/html/_images/GetObstruction.svg +++ b/content/html/_images/GetObstruction.svg @@ -1,824 +1,824 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="131mm" - viewBox="1 0 208 129.75238" - version="1.1" - id="svg12177" - sodipodi:docname="obstruction.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - inkscape:export-filename="obstruction.png" - inkscape:export-xdpi="72" - inkscape:export-ydpi="72" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title4545">Obstruction</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="false" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="true" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="4.6077266" - inkscape:cx="347.24282" - inkscape:cy="250.88294" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="layer5" - showguides="true" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <linearGradient - id="linearGradient10589" - inkscape:swatch="solid"> - <stop - style="stop-color:#a0a0a0;stop-opacity:1;" - offset="0" - id="stop10587" /> - </linearGradient> - <marker - style="overflow:visible" - id="TriangleStart" - refX="3" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="TriangleStart" - markerWidth="5.3244081" - markerHeight="6.155385" - viewBox="0 0 5.3244081 6.1553851" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path135" /> - </marker> - <inkscape:path-effect - effect="offset" - id="path-effect38844" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="tiling" - id="path-effect38774" - is_visible="true" - lpeversion="1" - unit="px" - seed="1;1" - lpesatellites="" - num_rows="3" - num_cols="3" - gapx="0" - gapy="0" - offset="0" - offset_type="false" - scale="0" - rotate="0" - mirrorrowsx="false" - mirrorrowsy="false" - mirrorcolsx="false" - mirrorcolsy="false" - mirrortrans="false" - shrink_interp="false" - split_items="false" - link_styles="false" - interpolate_scalex="false" - interpolate_scaley="true" - interpolate_rotatex="false" - interpolate_rotatey="true" - random_scale="false" - random_rotate="false" - random_gap_y="false" - random_gap_x="false" - transformorigin="" /> - <inkscape:path-effect - effect="offset" - id="path-effect38772" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="0" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38550" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38546" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38542" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38538" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32727" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32707" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32687" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32667" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <linearGradient - inkscape:collect="always" - id="linearGradient30868"> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="0" - id="stop30858" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.1" - id="stop30860" /> - <stop - style="stop-color:#20ff00;stop-opacity:1;" - offset="0.5" - id="stop30862" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.89999998" - id="stop30864" /> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="1" - id="stop30866" /> - </linearGradient> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient30868" - id="radialGradient30820" - cx="-9.1586399" - cy="32.64447" - fx="-9.1586399" - fy="32.64447" - r="0.83166844" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.7927408,2.1927797e-8,-2.1927797e-8,1.7927408,85.66174,19.804089)" /> - <inkscape:path-effect - effect="offset" - id="path-effect38844-6" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter42722" - x="-0.002434917" - y="-0.0039295726" - width="1.0048698" - height="1.0078591"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.1160647" - id="feGaussianBlur42724" /> - </filter> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient30868" - id="radialGradient30820-6" - cx="-9.1586399" - cy="32.64447" - fx="-9.1586399" - fy="32.64447" - r="0.83166844" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.7927407,1.6724812e-8,-1.6724812e-8,1.7927407,130.47592,36.479931)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient30868" - id="radialGradient64572" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.7927407,1.6724812e-8,-1.6724812e-8,1.7927407,191.10991,30.209754)" - cx="-9.1586399" - cy="32.64447" - fx="-9.1586399" - fy="32.64447" - r="0.83166844" /> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,6.9809906,6.734537)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> - <rect - style="mix-blend-mode:normal;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.379958;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.882038, 0.441021;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="274.94946" - height="145.31967" - x="-8.5125656" - y="-7.4706922" - inkscape:label="Greenfield" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline" - transform="translate(-1.9497955,-0.20000441)"> - <g - id="g42304" - transform="matrix(1.826688,0,0,1.7927408,41.719742,45.993054)" - style="stroke-width:0.990665"> - <path - id="path39516" - style="color:#000000;opacity:1;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.990665;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter42722)" - d="M 92.907256,-25.137274 C 63.764604,-4.8227696 24.24101,-3.3459035 -21.493059,-5.2482334 V 45.003144 C 16.014542,46.664281 56.00228,46.813766 92.907256,31.616668 v -56.753942" - sodipodi:nodetypes="ccccc" - inkscape:label="Asphalt" /> - <path - id="path38770" - style="color:#000000;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.990665;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none" - d="m -21.469878,45.003144 c 37.5,1.661137 77.479636,1.810622 114.377134,-13.386476 m 0,-56.753942 C 63.770509,-4.8227696 24.254924,-3.3459035 -21.469878,-5.2482334" - sodipodi:nodetypes="cccc" - inkscape:label="BoundaryMarkings" /> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - transform="translate(-1.9497955,-0.20000441)"> - <g - id="g38512" - inkscape:label="Front Car" - style="display:inline;opacity:0.5" - transform="matrix(1.3936411,-1.1276896,1.1276896,1.3936411,118.69977,18.780462)"> - <path - id="path38490" - style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> - <g - id="g38510" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - inkscape:label="Paths"> - <path - id="path38492" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="path38494" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="path38496" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38498" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38500" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path38502" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38504" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="path38506" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path38508" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - <rect - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.247252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-end:url(#Arrow3-3);paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect64258" - width="30.949926" - height="12.919933" - x="25.934574" - y="41.703167" - transform="rotate(-0.04174798,-21022.64,59063.494)" - inkscape:label="Bounding Box" /> - </g> - <g - id="g10990" - inkscape:label="Rear Car" - style="display:inline;opacity:1" - transform="matrix(1.7877985,0.13302624,-0.13302624,1.7877985,43.062484,22.391669)"> - <path - id="rect5329-3" - style="display:inline;opacity:1;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - inkscape:label="Chassis" /> - <g - id="g3439" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - inkscape:label="Paths"> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="Axles" - transform="translate(-1.9497955,-0.20000441)" /> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="CoorindateSystem" - transform="translate(-1.9497955,-0.20000441)"> - <path - style="color:#000000;font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545549;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.0911, 0.545549;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 101.36787,82.216712 c -13.288168,0.96048 -26.081443,1.187892 -38.145361,0.945419" - id="path2805" /> - <path - style="color:#000000;font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545549;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.0911, 0.545549;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 211.61885,54.915652 c -8.95377,3.624151 -18.01402,7.728141 -27.1443,10.750532 -25.46221,8.428735 -51.21755,13.568824 -74.79189,15.857382" - id="path54407" - sodipodi:nodetypes="csc" /> - <circle - style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820);fill-opacity:1;stroke:#000000;stroke-width:0.136387;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - id="path30810" - cx="69.242676" - cy="78.327164" - r="1.422772" - inkscape:label="Reference Point" - transform="rotate(4.2554137)" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545548;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 118.92698,33.607757 12.47024,89.750923" - id="path64674" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 125.15627,79.786874 59.3183,-14.12069" - id="path64678" - sodipodi:nodetypes="cc" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 172.23673,20.862058 24.04874,86.844712" - id="path64737" /> - <circle - style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient64572);fill-opacity:1;stroke:#000000;stroke-width:0.136387;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000" - id="circle64570" - cx="174.69084" - cy="88.732834" - r="1.422772" - inkscape:label="Reference Point" - transform="rotate(-7.3345871)" /> - <circle - style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820-6);fill-opacity:1;stroke:#000000;stroke-width:0.136387;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000" - id="path30810-1" - cx="114.05687" - cy="95.002998" - r="1.422772" - inkscape:label="Reference Point" - transform="rotate(-7.3345871)" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 127.53825,95.584813 139.23391,92.80067" - id="path64878" - sodipodi:nodetypes="cc" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 121.26404,50.824459 167.5443,39.80746" - id="path64880" - sodipodi:nodetypes="cc" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 99.811694,55.931181 121.08738,50.866518" - id="path64882" - sodipodi:nodetypes="cc" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 110.37406,99.670745 17.16419,-4.085932" - id="path64884" - sodipodi:nodetypes="cc" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 106.6873,84.183407 18.64995,-4.439613" - id="path64886" - sodipodi:nodetypes="cc" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-start:url(#TriangleStart);marker-end:url(#TriangleStart);stop-color:#000000;stop-opacity:1" - d="m 106.6873,84.183407 3.68676,15.487338" - id="path64993" - sodipodi:nodetypes="cc" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-start:url(#TriangleStart);marker-end:url(#TriangleStart);stop-color:#000000;stop-opacity:1" - d="M 99.896216,55.911055 106.6873,84.183407" - id="path64888" /> - <text - xml:space="preserve" - style="font-size:3.60857px;line-height:1.25;font-family:sans-serif;stroke-width:1.80429" - x="88.804375" - y="-86.478142" - id="text2966" - transform="rotate(76.96401)"><tspan - sodipodi:role="line" - id="tspan2964" - style="font-size:3.60857px;stroke-width:1.80429" - x="88.804375" - y="-86.478142">left</tspan></text> - <text - xml:space="preserve" - style="font-size:3.60857px;line-height:1.25;font-family:sans-serif;stroke-width:1.80429" - x="109.92478" - y="-86.25737" - id="text2970" - transform="rotate(76.71919)"><tspan - sodipodi:role="line" - id="tspan2968" - style="font-size:3.60857px;stroke-width:1.80429" - x="109.92478" - y="-86.25737">right</tspan></text> - </g> - <metadata - id="metadata4531"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - <dc:title>Obstruction</dc:title> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="131mm" + viewBox="1 0 208 129.75238" + version="1.1" + id="svg12177" + sodipodi:docname="obstruction.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:export-filename="obstruction.png" + inkscape:export-xdpi="72" + inkscape:export-ydpi="72" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title4545">Obstruction</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="false" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="true" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="4.6077266" + inkscape:cx="347.24282" + inkscape:cy="250.88294" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer5" + showguides="true" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <linearGradient + id="linearGradient10589" + inkscape:swatch="solid"> + <stop + style="stop-color:#a0a0a0;stop-opacity:1;" + offset="0" + id="stop10587" /> + </linearGradient> + <marker + style="overflow:visible" + id="TriangleStart" + refX="3" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="5.3244081" + markerHeight="6.155385" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135" /> + </marker> + <inkscape:path-effect + effect="offset" + id="path-effect38844" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="tiling" + id="path-effect38774" + is_visible="true" + lpeversion="1" + unit="px" + seed="1;1" + lpesatellites="" + num_rows="3" + num_cols="3" + gapx="0" + gapy="0" + offset="0" + offset_type="false" + scale="0" + rotate="0" + mirrorrowsx="false" + mirrorrowsy="false" + mirrorcolsx="false" + mirrorcolsy="false" + mirrortrans="false" + shrink_interp="false" + split_items="false" + link_styles="false" + interpolate_scalex="false" + interpolate_scaley="true" + interpolate_rotatex="false" + interpolate_rotatey="true" + random_scale="false" + random_rotate="false" + random_gap_y="false" + random_gap_x="false" + transformorigin="" /> + <inkscape:path-effect + effect="offset" + id="path-effect38772" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="0" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38550" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38546" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38542" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38538" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32727" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32707" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32687" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32667" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <linearGradient + inkscape:collect="always" + id="linearGradient30868"> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="0" + id="stop30858" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.1" + id="stop30860" /> + <stop + style="stop-color:#20ff00;stop-opacity:1;" + offset="0.5" + id="stop30862" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.89999998" + id="stop30864" /> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="1" + id="stop30866" /> + </linearGradient> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient30868" + id="radialGradient30820" + cx="-9.1586399" + cy="32.64447" + fx="-9.1586399" + fy="32.64447" + r="0.83166844" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.7927408,2.1927797e-8,-2.1927797e-8,1.7927408,85.66174,19.804089)" /> + <inkscape:path-effect + effect="offset" + id="path-effect38844-6" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter42722" + x="-0.002434917" + y="-0.0039295726" + width="1.0048698" + height="1.0078591"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.1160647" + id="feGaussianBlur42724" /> + </filter> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient30868" + id="radialGradient30820-6" + cx="-9.1586399" + cy="32.64447" + fx="-9.1586399" + fy="32.64447" + r="0.83166844" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.7927407,1.6724812e-8,-1.6724812e-8,1.7927407,130.47592,36.479931)" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient30868" + id="radialGradient64572" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.7927407,1.6724812e-8,-1.6724812e-8,1.7927407,191.10991,30.209754)" + cx="-9.1586399" + cy="32.64447" + fx="-9.1586399" + fy="32.64447" + r="0.83166844" /> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,6.9809906,6.734537)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> + <rect + style="mix-blend-mode:normal;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.379958;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.882038, 0.441021;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="274.94946" + height="145.31967" + x="-8.5125656" + y="-7.4706922" + inkscape:label="Greenfield" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline" + transform="translate(-1.9497955,-0.20000441)"> + <g + id="g42304" + transform="matrix(1.826688,0,0,1.7927408,41.719742,45.993054)" + style="stroke-width:0.990665"> + <path + id="path39516" + style="color:#000000;opacity:1;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.990665;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter42722)" + d="M 92.907256,-25.137274 C 63.764604,-4.8227696 24.24101,-3.3459035 -21.493059,-5.2482334 V 45.003144 C 16.014542,46.664281 56.00228,46.813766 92.907256,31.616668 v -56.753942" + sodipodi:nodetypes="ccccc" + inkscape:label="Asphalt" /> + <path + id="path38770" + style="color:#000000;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.990665;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none" + d="m -21.469878,45.003144 c 37.5,1.661137 77.479636,1.810622 114.377134,-13.386476 m 0,-56.753942 C 63.770509,-4.8227696 24.254924,-3.3459035 -21.469878,-5.2482334" + sodipodi:nodetypes="cccc" + inkscape:label="BoundaryMarkings" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + transform="translate(-1.9497955,-0.20000441)"> + <g + id="g38512" + inkscape:label="Front Car" + style="display:inline;opacity:0.5" + transform="matrix(1.3936411,-1.1276896,1.1276896,1.3936411,118.69977,18.780462)"> + <path + id="path38490" + style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> + <g + id="g38510" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + inkscape:label="Paths"> + <path + id="path38492" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="path38494" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="path38496" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38498" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38500" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path38502" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38504" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="path38506" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path38508" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + <rect + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.247252;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-end:url(#Arrow3-3);paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect64258" + width="30.949926" + height="12.919933" + x="25.934574" + y="41.703167" + transform="rotate(-0.04174798,-21022.64,59063.494)" + inkscape:label="Bounding Box" /> + </g> + <g + id="g10990" + inkscape:label="Rear Car" + style="display:inline;opacity:1" + transform="matrix(1.7877985,0.13302624,-0.13302624,1.7877985,43.062484,22.391669)"> + <path + id="rect5329-3" + style="display:inline;opacity:1;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + inkscape:label="Chassis" /> + <g + id="g3439" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + inkscape:label="Paths"> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="Axles" + transform="translate(-1.9497955,-0.20000441)" /> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="CoorindateSystem" + transform="translate(-1.9497955,-0.20000441)"> + <path + style="color:#000000;font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545549;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.0911, 0.545549;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 101.36787,82.216712 c -13.288168,0.96048 -26.081443,1.187892 -38.145361,0.945419" + id="path2805" /> + <path + style="color:#000000;font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545549;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.0911, 0.545549;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 211.61885,54.915652 c -8.95377,3.624151 -18.01402,7.728141 -27.1443,10.750532 -25.46221,8.428735 -51.21755,13.568824 -74.79189,15.857382" + id="path54407" + sodipodi:nodetypes="csc" /> + <circle + style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820);fill-opacity:1;stroke:#000000;stroke-width:0.136387;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + id="path30810" + cx="69.242676" + cy="78.327164" + r="1.422772" + inkscape:label="Reference Point" + transform="rotate(4.2554137)" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545548;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 118.92698,33.607757 12.47024,89.750923" + id="path64674" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 125.15627,79.786874 59.3183,-14.12069" + id="path64678" + sodipodi:nodetypes="cc" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 172.23673,20.862058 24.04874,86.844712" + id="path64737" /> + <circle + style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient64572);fill-opacity:1;stroke:#000000;stroke-width:0.136387;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000" + id="circle64570" + cx="174.69084" + cy="88.732834" + r="1.422772" + inkscape:label="Reference Point" + transform="rotate(-7.3345871)" /> + <circle + style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820-6);fill-opacity:1;stroke:#000000;stroke-width:0.136387;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000" + id="path30810-1" + cx="114.05687" + cy="95.002998" + r="1.422772" + inkscape:label="Reference Point" + transform="rotate(-7.3345871)" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 127.53825,95.584813 139.23391,92.80067" + id="path64878" + sodipodi:nodetypes="cc" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 121.26404,50.824459 167.5443,39.80746" + id="path64880" + sodipodi:nodetypes="cc" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 99.811694,55.931181 121.08738,50.866518" + id="path64882" + sodipodi:nodetypes="cc" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 110.37406,99.670745 17.16419,-4.085932" + id="path64884" + sodipodi:nodetypes="cc" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 106.6873,84.183407 18.64995,-4.439613" + id="path64886" + sodipodi:nodetypes="cc" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-start:url(#TriangleStart);marker-end:url(#TriangleStart);stop-color:#000000;stop-opacity:1" + d="m 106.6873,84.183407 3.68676,15.487338" + id="path64993" + sodipodi:nodetypes="cc" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.545546;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-start:url(#TriangleStart);marker-end:url(#TriangleStart);stop-color:#000000;stop-opacity:1" + d="M 99.896216,55.911055 106.6873,84.183407" + id="path64888" /> + <text + xml:space="preserve" + style="font-size:3.60857px;line-height:1.25;font-family:sans-serif;stroke-width:1.80429" + x="88.804375" + y="-86.478142" + id="text2966" + transform="rotate(76.96401)"><tspan + sodipodi:role="line" + id="tspan2964" + style="font-size:3.60857px;stroke-width:1.80429" + x="88.804375" + y="-86.478142">left</tspan></text> + <text + xml:space="preserve" + style="font-size:3.60857px;line-height:1.25;font-family:sans-serif;stroke-width:1.80429" + x="109.92478" + y="-86.25737" + id="text2970" + transform="rotate(76.71919)"><tspan + sodipodi:role="line" + id="tspan2968" + style="font-size:3.60857px;stroke-width:1.80429" + x="109.92478" + y="-86.25737">right</tspan></text> + </g> + <metadata + id="metadata4531"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + <dc:title>Obstruction</dc:title> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/GiveWay_205.svg b/content/html/_images/GiveWay_205.svg index 00d87aa7c9d20f8b2561f313cc4d713f963c08a7..0c7d28e85efb6542cc7a9e334798ccf4113e1ce3 100644 --- a/content/html/_images/GiveWay_205.svg +++ b/content/html/_images/GiveWay_205.svg @@ -1,29 +1,29 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 847.15857 743.62268" - height="743.62268" - width="847.15857" - xml:space="preserve" - version="1.1" - id="svg4189"><metadata - id="metadata4195"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs4193" /><g - transform="matrix(1.25,0,0,-1.25,0,743.62267)" - id="g4197"><g - id="g4199"><path - id="path4201" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 338.859,0.398 c 7.516,0 15.028,2.867 20.758,8.598 1.879,1.879 3.445,3.953 4.707,6.152 l 15.246,26.156 0.071,0 293.101,508.039 c 0.055,0.098 0.098,0.196 0.153,0.293 1.488,2.395 2.656,5.043 3.425,7.911 4.196,15.656 -5.097,31.753 -20.758,35.949 -2.585,0.695 -5.183,1.012 -7.738,1 l -618.066,0 c -16.215,0 -29.356,-13.141 -29.356,-29.356 0,-5.304 1.414,-10.281 3.879,-14.578 0.02,-0.031 0.035,-0.062 0.055,-0.097 L 308.699,22.054 c 3.863,-6.664 5.653,-9.304 9.406,-13.058 5.731,-5.731 13.243,-8.598 20.754,-8.598 z" /><path - id="path4203" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 338.859,7.754 c 7.125,-0.051 14.95,3.589 18.782,10.406 l 309.293,535.89 c 1.785,3.649 2.535,6.821 2.558,10.45 0,6.496 -2.875,12.66 -7.847,16.84 -4.383,3.394 -8.536,5.16 -14.122,5.16 l -617.906,0 c -3.769,0.035 -7.547,-0.871 -10.976,-3.133 -6.453,-3.899 -10.403,-10.883 -10.411,-18.426 0.184,-3.894 1.145,-8 2.879,-10.891 L 320.223,18.07 c 0.027,-0.047 0.062,-0.094 0.089,-0.141 0.032,-0.046 0.063,-0.093 0.094,-0.144 1.098,-1.754 2.473,-3.305 4.039,-4.633 3.59,-3.109 8.086,-4.977 12.825,-5.316 0.531,-0.047 1.062,-0.078 1.589,-0.082 z m 308.664,578.746 1.524,0 -1.555,0 0.031,0 z M 339.18,113.965 103.477,522.5 575.215,522.5 339.18,113.965 Z" /><path - id="path4205" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 847.15857 743.62268" + height="743.62268" + width="847.15857" + xml:space="preserve" + version="1.1" + id="svg4189"><metadata + id="metadata4195"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs4193" /><g + transform="matrix(1.25,0,0,-1.25,0,743.62267)" + id="g4197"><g + id="g4199"><path + id="path4201" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 338.859,0.398 c 7.516,0 15.028,2.867 20.758,8.598 1.879,1.879 3.445,3.953 4.707,6.152 l 15.246,26.156 0.071,0 293.101,508.039 c 0.055,0.098 0.098,0.196 0.153,0.293 1.488,2.395 2.656,5.043 3.425,7.911 4.196,15.656 -5.097,31.753 -20.758,35.949 -2.585,0.695 -5.183,1.012 -7.738,1 l -618.066,0 c -16.215,0 -29.356,-13.141 -29.356,-29.356 0,-5.304 1.414,-10.281 3.879,-14.578 0.02,-0.031 0.035,-0.062 0.055,-0.097 L 308.699,22.054 c 3.863,-6.664 5.653,-9.304 9.406,-13.058 5.731,-5.731 13.243,-8.598 20.754,-8.598 z" /><path + id="path4203" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 338.859,7.754 c 7.125,-0.051 14.95,3.589 18.782,10.406 l 309.293,535.89 c 1.785,3.649 2.535,6.821 2.558,10.45 0,6.496 -2.875,12.66 -7.847,16.84 -4.383,3.394 -8.536,5.16 -14.122,5.16 l -617.906,0 c -3.769,0.035 -7.547,-0.871 -10.976,-3.133 -6.453,-3.899 -10.403,-10.883 -10.411,-18.426 0.184,-3.894 1.145,-8 2.879,-10.891 L 320.223,18.07 c 0.027,-0.047 0.062,-0.094 0.089,-0.141 0.032,-0.046 0.063,-0.093 0.094,-0.144 1.098,-1.754 2.473,-3.305 4.039,-4.633 3.59,-3.109 8.086,-4.977 12.825,-5.316 0.531,-0.047 1.062,-0.078 1.589,-0.082 z m 308.664,578.746 1.524,0 -1.555,0 0.031,0 z M 339.18,113.965 103.477,522.5 575.215,522.5 339.18,113.965 Z" /><path + id="path4205" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 338.859,0 c 7.618,0 15.231,2.906 21.039,8.715 1.907,1.902 3.493,4.007 4.774,6.234 l 15.129,25.957 0.07,0 293.215,508.238 c 0.066,0.117 0.113,0.219 0.16,0.301 1.504,2.422 2.684,5.102 3.461,7.996 4.25,15.871 -5.172,32.192 -21.039,36.442 -2.621,0.703 -5.258,1.023 -7.844,1.015 l -618.066,0 C 13.328,594.898 0,581.57 0,565.14 c 0,-5.375 1.438,-10.418 3.934,-14.773 0.011,-0.024 0.027,-0.055 0.054,-0.102 L 308.352,21.851 c 3.871,-6.664 5.695,-9.363 9.468,-13.136 C 323.629,2.906 331.246,0 338.859,0 Z m 0,0.398 c -7.511,0 -15.023,2.867 -20.754,8.598 -3.753,3.754 -5.543,6.394 -9.406,13.058 L 4.336,550.465 c -0.02,0.035 -0.035,0.066 -0.055,0.097 -2.465,4.297 -3.879,9.274 -3.879,14.578 0,16.215 13.141,29.356 29.356,29.356 l 618.066,0 c 2.555,0.012 5.153,-0.305 7.738,-1 15.661,-4.196 24.954,-20.293 20.758,-35.949 -0.769,-2.868 -1.937,-5.516 -3.425,-7.911 -0.055,-0.097 -0.098,-0.195 -0.153,-0.293 L 379.641,41.304 l -0.071,0 -15.246,-26.156 c -1.262,-2.199 -2.828,-4.273 -4.707,-6.152 -5.73,-5.731 -13.242,-8.598 -20.758,-8.598 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/GiveWay_R1-2.svg b/content/html/_images/GiveWay_R1-2.svg index d3fe488c5bfd8413282978030de82f1ef68dfba2..edd00852ddd5aa8d73e3748a0a4fac2b6dab20b7 100644 --- a/content/html/_images/GiveWay_R1-2.svg +++ b/content/html/_images/GiveWay_R1-2.svg @@ -1,12 +1,12 @@ -<svg version="1.1" viewBox="1.364255 4.4 33.27149 29.37671" xmlns="http://www.w3.org/2000/svg"> - <g fill="none" stroke-linejoin="round" stroke-width="2.5" stroke="#fff"> - <path d="m32.53589838 6.5h-29.07179677l14.53589838 25.17691454z" stroke="#000" stroke-width="4.2"/> - <path d="m32.53589838 6.5h-29.07179677l14.53589838 25.17691454z" stroke-width="4"/> - <path d="m32.53589838 6.5h-29.07179677l14.53589838 25.17691454z" fill="#a6192e" stroke="#a6192e"/> - <path d="m12.12435565 11.5h11.75128869l-5.875644347 10.17691454z" fill="#fff"/> - </g> - <g transform="matrix(.01171875 0 0 .01171875 13.312 12.25)"> - <path d="M466 0V256H594V222H502V0M0 0 62 140V256H96V140L160 0H120.6289063L80 91.73828125 39.37109375 0" fill="#a6192e"/> - <path d="M651.376 18H694.9510389A54 54 0 0 1 747.5090295 59.51817052 302 302 0 0 1 755.376 128 302 302 0 0 1 747.5090295 196.4818295 54 54 0 0 1 694.9510389 238H651.376ZM309.7 118H381.7M415.7 18H309.7V238H419.7M216.4 0V256" fill="none" stroke="#a6192e" stroke-width="36"/> - </g> -</svg> +<svg version="1.1" viewBox="1.364255 4.4 33.27149 29.37671" xmlns="http://www.w3.org/2000/svg"> + <g fill="none" stroke-linejoin="round" stroke-width="2.5" stroke="#fff"> + <path d="m32.53589838 6.5h-29.07179677l14.53589838 25.17691454z" stroke="#000" stroke-width="4.2"/> + <path d="m32.53589838 6.5h-29.07179677l14.53589838 25.17691454z" stroke-width="4"/> + <path d="m32.53589838 6.5h-29.07179677l14.53589838 25.17691454z" fill="#a6192e" stroke="#a6192e"/> + <path d="m12.12435565 11.5h11.75128869l-5.875644347 10.17691454z" fill="#fff"/> + </g> + <g transform="matrix(.01171875 0 0 .01171875 13.312 12.25)"> + <path d="M466 0V256H594V222H502V0M0 0 62 140V256H96V140L160 0H120.6289063L80 91.73828125 39.37109375 0" fill="#a6192e"/> + <path d="M651.376 18H694.9510389A54 54 0 0 1 747.5090295 59.51817052 302 302 0 0 1 755.376 128 302 302 0 0 1 747.5090295 196.4818295 54 54 0 0 1 694.9510389 238H651.376ZM309.7 118H381.7M415.7 18H309.7V238H419.7M216.4 0V256" fill="none" stroke="#a6192e" stroke-width="36"/> + </g> +</svg> diff --git a/content/html/_images/HighWayBegin_330.1.svg b/content/html/_images/HighWayBegin_330.1.svg index 87cca74d1ddd77e3bccd47af591701bc09f7184d..a97d24fc6d4d8ee7f7da8357146c8dc3df67f86d 100644 --- a/content/html/_images/HighWayBegin_330.1.svg +++ b/content/html/_images/HighWayBegin_330.1.svg @@ -1,32 +1,32 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 601.00134 601.00159" - height="601.00159" - width="601.00134" - xml:space="preserve" - version="1.1" - id="svg4145"><metadata - id="metadata4151"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs4149" /><g - transform="matrix(1.25,0,0,-1.25,0,601.00159)" - id="g4153"><g - id="g4155"><path - id="path4157" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 29.199,480.403 C 0.336,480.418 0.398,451.598 0.398,451.598 l 0,-422.398 c 0,0 -0.062,-28.825 28.801,-28.797 l 422.403,0 C 480.652,0.372 480.398,29.2 480.398,29.2 l 0,422.398 c 0,0 0.239,28.899 -28.796,28.805 l -422.403,0 z" /><path - id="path4159" - style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 29.199,470.801 C 18.598,470.801 10,462.204 10,451.602 L 10,29.2 C 10,18.59 18.598,10 29.199,10 l 422.403,0 c 10.601,0 19.199,8.59 19.199,19.2 l 0,422.402 c 0,10.602 -8.598,19.199 -19.199,19.199 l -422.403,0 z" /><path - id="path4161" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 29.199,480.801 C 14.633,480.809 7.258,473.485 3.617,466.184 -0.023,458.883 0,451.594 0,451.594 L 0,29.2 C 0,29.2 -0.02,21.911 3.617,14.614 7.258,7.313 14.633,-0.011 29.199,0 l 422.403,0 c 14.656,-0.015 22.035,7.313 25.652,14.614 3.613,7.297 3.547,14.582 3.547,14.586 l 0,422.398 c 0,0.004 0.062,7.309 -3.555,14.613 -3.617,7.309 -10.996,14.637 -25.644,14.59 l -422.403,0 z m 0,-0.398 422.403,0 c 29.035,0.094 28.796,-28.805 28.796,-28.805 l 0,-422.398 c 0,0 0.254,-28.828 -28.796,-28.797 l -422.403,0 C 0.336,0.375 0.398,29.2 0.398,29.2 l 0,422.398 c 0,0 -0.062,28.82 28.801,28.805 z" /><path - id="path4163" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 601.00134 601.00159" + height="601.00159" + width="601.00134" + xml:space="preserve" + version="1.1" + id="svg4145"><metadata + id="metadata4151"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs4149" /><g + transform="matrix(1.25,0,0,-1.25,0,601.00159)" + id="g4153"><g + id="g4155"><path + id="path4157" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 29.199,480.403 C 0.336,480.418 0.398,451.598 0.398,451.598 l 0,-422.398 c 0,0 -0.062,-28.825 28.801,-28.797 l 422.403,0 C 480.652,0.372 480.398,29.2 480.398,29.2 l 0,422.398 c 0,0 0.239,28.899 -28.796,28.805 l -422.403,0 z" /><path + id="path4159" + style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 29.199,470.801 C 18.598,470.801 10,462.204 10,451.602 L 10,29.2 C 10,18.59 18.598,10 29.199,10 l 422.403,0 c 10.601,0 19.199,8.59 19.199,19.2 l 0,422.402 c 0,10.602 -8.598,19.199 -19.199,19.199 l -422.403,0 z" /><path + id="path4161" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 29.199,480.801 C 14.633,480.809 7.258,473.485 3.617,466.184 -0.023,458.883 0,451.594 0,451.594 L 0,29.2 C 0,29.2 -0.02,21.911 3.617,14.614 7.258,7.313 14.633,-0.011 29.199,0 l 422.403,0 c 14.656,-0.015 22.035,7.313 25.652,14.614 3.613,7.297 3.547,14.582 3.547,14.586 l 0,422.398 c 0,0.004 0.062,7.309 -3.555,14.613 -3.617,7.309 -10.996,14.637 -25.644,14.59 l -422.403,0 z m 0,-0.398 422.403,0 c 29.035,0.094 28.796,-28.805 28.796,-28.805 l 0,-422.398 c 0,0 0.254,-28.828 -28.796,-28.797 l -422.403,0 C 0.336,0.375 0.398,29.2 0.398,29.2 l 0,422.398 c 0,0 -0.062,28.82 28.801,28.805 z" /><path + id="path4163" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 252.34,305.418 -4.711,122.79 21.672,0 42.515,-122.79 -59.476,0 z m -83.34,0 42.512,122.79 21.676,0 -4.727,-122.79 -59.461,0 z m -76.68,-50.582 0,21.676 -39.726,0 0,14.453 375.613,0 0,-14.453 -39.727,0 0,-21.676 -36.113,0 0,21.676 -223.929,0 0,-21.676 -36.118,0 z m 169.75,-202.253 -7.765,202.253 75.004,0 70.015,-202.253 -137.254,0 z m -180.593,0 70.015,202.253 75.02,0 -7.782,-202.253" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/HighWayEnd_330.2.svg b/content/html/_images/HighWayEnd_330.2.svg index 66cff852735081a44507b70dc7af96384c0c9914..d36a6eee501d72eca5ade923bd0ee7f9f9cc557e 100644 --- a/content/html/_images/HighWayEnd_330.2.svg +++ b/content/html/_images/HighWayEnd_330.2.svg @@ -1,35 +1,35 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 601.00134 601.00159" - height="601.00159" - width="601.00134" - xml:space="preserve" - id="svg4872" - version="1.1"><metadata - id="metadata4878"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs4876" /><g - transform="matrix(1.3333333,0,0,-1.3333333,0,601.00159)" - id="g4880"><g - id="g4882"><path - id="path4884" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 27.375,450.376 c -27.059,0.016 -27,-27.004 -27,-27.004 V 27.376 c 0,0 -0.059,-27.023 27,-27 h 396 c 27.234,-0.027 27,27 27,27 v 395.996 c 0,0 0.223,27.094 -27,27.004 z" /><path - id="path4886" - style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 27.375,441.376 c -9.937,0 -18,-8.058 -18,-18 v -396 c 0,-9.949 8.063,-18 18,-18 h 396 c 9.941,0 18,8.051 18,18 v 396 c 0,9.942 -8.059,18 -18,18 z" /><path - id="path4888" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 27.375,450.751 C 13.719,450.759 6.805,443.892 3.391,437.048 -0.023,430.204 0,423.368 0,423.368 V 27.376 C 0,27.376 -0.02,20.54 3.391,13.7 6.805,6.857 13.719,-0.011 27.375,0.001 h 396 c 13.742,-0.015 20.66,6.856 24.051,13.699 3.387,6.84 3.324,13.672 3.324,13.676 v 395.996 c 0,0.004 0.059,6.852 -3.332,13.7 -3.391,6.851 -10.309,13.722 -24.043,13.679 z m 0,-0.375 h 396 c 27.223,0.09 27,-27.004 27,-27.004 V 27.376 c 0,0 0.234,-27.027 -27,-27 h -396 c -27.059,-0.023 -27,27 -27,27 v 395.996 c 0,0 -0.059,27.02 27,27.004 z" /><path - id="path4890" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 236.57,286.329 -4.418,115.118 h 20.317 l 39.859,-115.118 z m -78.132,0 39.855,115.118 h 20.32 L 214.184,286.329 Z M 86.551,238.907 v 20.325 H 49.309 v 13.547 h 352.136 v -13.547 h -37.246 v -20.325 h -33.855 v 20.325 H 120.41 V 238.907 Z M 245.691,49.298 238.41,238.907 h 70.317 l 65.64,-189.609 z m -169.308,0 65.64,189.609 h 70.332 L 205.059,49.298" /><path - id="path4892" - style="fill:#af151b;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 601.00134 601.00159" + height="601.00159" + width="601.00134" + xml:space="preserve" + id="svg4872" + version="1.1"><metadata + id="metadata4878"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs4876" /><g + transform="matrix(1.3333333,0,0,-1.3333333,0,601.00159)" + id="g4880"><g + id="g4882"><path + id="path4884" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 27.375,450.376 c -27.059,0.016 -27,-27.004 -27,-27.004 V 27.376 c 0,0 -0.059,-27.023 27,-27 h 396 c 27.234,-0.027 27,27 27,27 v 395.996 c 0,0 0.223,27.094 -27,27.004 z" /><path + id="path4886" + style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 27.375,441.376 c -9.937,0 -18,-8.058 -18,-18 v -396 c 0,-9.949 8.063,-18 18,-18 h 396 c 9.941,0 18,8.051 18,18 v 396 c 0,9.942 -8.059,18 -18,18 z" /><path + id="path4888" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 27.375,450.751 C 13.719,450.759 6.805,443.892 3.391,437.048 -0.023,430.204 0,423.368 0,423.368 V 27.376 C 0,27.376 -0.02,20.54 3.391,13.7 6.805,6.857 13.719,-0.011 27.375,0.001 h 396 c 13.742,-0.015 20.66,6.856 24.051,13.699 3.387,6.84 3.324,13.672 3.324,13.676 v 395.996 c 0,0.004 0.059,6.852 -3.332,13.7 -3.391,6.851 -10.309,13.722 -24.043,13.679 z m 0,-0.375 h 396 c 27.223,0.09 27,-27.004 27,-27.004 V 27.376 c 0,0 0.234,-27.027 -27,-27 h -396 c -27.059,-0.023 -27,27 -27,27 v 395.996 c 0,0 -0.059,27.02 27,27.004 z" /><path + id="path4890" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 236.57,286.329 -4.418,115.118 h 20.317 l 39.859,-115.118 z m -78.132,0 39.855,115.118 h 20.32 L 214.184,286.329 Z M 86.551,238.907 v 20.325 H 49.309 v 13.547 h 352.136 v -13.547 h -37.246 v -20.325 h -33.855 v 20.325 H 120.41 V 238.907 Z M 245.691,49.298 238.41,238.907 h 70.317 l 65.64,-189.609 z m -169.308,0 65.64,189.609 h 70.332 L 205.059,49.298" /><path + id="path4892" + style="fill:#af151b;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 410.473,441.376 9.375,40.282 V 27.376 c 0,-9.949 8.059,-18 18,-18 h 14.723 l 399.277,399.278 v 14.722 c 0,9.938 -8.059,18 -18,18 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/HighWayExit_333.svg b/content/html/_images/HighWayExit_333.svg index c81e8d2f2238d9ea3b94a9b7deaecef506556858..607c548185d73eb66bc1770a89c234b9e0b27e92 100644 --- a/content/html/_images/HighWayExit_333.svg +++ b/content/html/_images/HighWayExit_333.svg @@ -1,32 +1,32 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 3161.1877 821.05481" - height="821.05481" - width="3161.1877" - xml:space="preserve" - version="1.1" - id="svg5889"><metadata - id="metadata5895"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs5893" /><g - transform="matrix(1.25,0,0,-1.25,0,821.05484)" - id="g5897"><g - id="g5899"><path - id="path5901" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 56.398,656.445 c -30.929,0 -56,-25.074 -56,-56 l 0,-544.011 c 0,-30.926 25.071,-56 56,-56 655.383,-0.117 1329.176,0.109 1924,0.011 37.661,-0.14 61.645,1.723 115.743,31.872 l 398.172,230.23 c 29.007,17.168 34.285,39.355 34.242,66.82 -0.043,27.485 -5.239,52.223 -33.703,68.696 l -393.586,227.414 c -53.637,31.113 -95.586,30.847 -120.868,30.968 l -1924,0 z" /><path - id="path5903" - style="fill:#154889;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 60.398,624.442 c -15.46,0 -28,-12.536 -28,-28 l 0,-536.008 c 0,-15.465 12.54,-28 28,-28 635.915,0.004 1271.848,0.004 1907.766,0.004 14.012,-0.032 63.352,-0.004 86.899,13.504 l 423.007,244.292 c 10.914,6.301 18.246,23.137 18.176,39.118 0.262,15.98 -7.254,35.261 -18.152,41.382 l -415.031,239.618 c -24.59,14.097 -71.825,14.129 -85.817,14.086 -638.945,0.035 -1277.914,-0.051 -1916.848,0.004 z" /><path - id="path5905" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 1933.539,165.25 -29.535,0 c -29.418,0 -53.238,23.856 -53.238,53.227 l 0,144.902 -23.7,0 0,38.434 23.7,0 0,70.961 47.281,0 0,-70.961 35.492,0 0,-38.434 -35.492,0 0,-139.016 c 0,-8.164 6.633,-14.769 14.797,-14.769 l 20.695,0 0,-44.344 z m -289.758,0 0,236.563 47.278,0 0,-26.696 c 27.73,34.305 78.011,39.625 112.277,11.93 0.035,-0.051 0.102,-0.063 0.133,-0.063 l -33.633,-41.48 c -19.535,17.367 -49.434,15.613 -66.797,-3.875 -7.687,-8.691 -11.98,-19.852 -11.98,-31.461 l 0,-144.902 -47.262,0 -0.016,-0.016 z m -260.211,0 0,331.188 47.266,0 0,-121.321 c 27.746,34.305 78.027,39.625 112.277,11.93 18.785,-15.184 29.711,-38 29.711,-62.129 l 0,-159.668 -47.363,0 0,144.902 c 0,26.137 -21.129,47.313 -47.313,47.313 -26.085,0 -47.312,-21.176 -47.312,-47.313 l 0,-144.902 -47.266,0 z m -118.32,103.508 -68.008,0 c -16.328,0 -29.535,-13.281 -29.535,-29.582 0,-16.297 13.207,-29.582 29.535,-29.582 l 38.461,0 c 16.344,0 29.547,13.285 29.547,29.582 l 0,29.582 z m 47.348,-103.508 -47.348,0 0,24.414 c -8.324,-15.055 -24.172,-24.414 -41.395,-24.414 l -29.582,0 c -39.179,0 -70.929,31.781 -70.929,70.961 0,39.195 31.75,70.977 70.929,70.977 l 70.977,0 0,23.648 c 0,12.934 -9.281,23.984 -22.023,26.215 -16.723,2.933 -33.821,2.933 -50.551,0 -8.321,-1.434 -15.477,-6.793 -19.242,-14.399 l -37.395,29.579 c 11.211,16.648 28.738,27.972 48.473,31.418 22.136,3.89 44.746,3.89 66.879,0 35.355,-6.157 61.207,-36.903 61.207,-72.813 l 0,-165.586 z m -319.375,0 0,198.129 -23.664,0 0,38.434 23.664,0 0,35.464 c 0,32.707 26.504,59.161 59.16,59.161 l 35.469,0 0,-44.348 -32.551,0 c -8.164,0 -14.762,-6.648 -14.762,-14.813 l 0,-35.464 47.313,0 0,-38.434 -47.313,0 0,-198.129 -47.316,0 z m -266.09,37.902 33.344,33.536 c 27.566,-27.457 68.628,-36.262 105.019,-22.61 12.246,4.559 18.449,18.211 13.859,30.457 -3.253,8.692 -11.375,14.703 -20.667,15.293 L 808.426,263 c -39.117,2.442 -68.86,36.133 -66.418,75.25 1.965,31.094 23.984,57.277 54.281,64.551 44.074,10.57 90.543,0.223 125.957,-28.02 l -29.48,-36.976 c -24.032,19.168 -55.528,26.183 -85.426,19.008 -12.692,-3.079 -20.539,-15.801 -17.492,-28.528 2.437,-10.144 11.16,-17.465 21.527,-18.101 l 50.277,-3.153 c 39.118,-2.41 68.856,-36.105 66.399,-75.222 -1.75,-27.938 -19.727,-52.239 -45.906,-62.032 -53.758,-20.136 -114.352,-7.128 -155.012,33.375 z m -59.164,-37.902 -47.309,0 0,26.695 C 592.957,157.676 542.68,152.367 508.383,180.016 489.598,195.18 478.723,218 478.723,242.145 l 0,159.668 47.312,0 0,-144.856 c 0,-26.183 21.156,-47.363 47.313,-47.363 26.132,0 47.312,21.18 47.312,47.363 l 0,144.856 47.309,0 0,-236.563 z m -415.528,118.274 97.707,0 -48.878,144.902 -48.829,-144.902 z m -93.062,-118.274 121.195,331.188 41.426,0 121.211,-331.188 -53.195,0 -24.946,73.926 -127.55,0 -24.911,-73.926" /><path - id="path5907" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 3161.1877 821.05481" + height="821.05481" + width="3161.1877" + xml:space="preserve" + version="1.1" + id="svg5889"><metadata + id="metadata5895"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs5893" /><g + transform="matrix(1.25,0,0,-1.25,0,821.05484)" + id="g5897"><g + id="g5899"><path + id="path5901" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 56.398,656.445 c -30.929,0 -56,-25.074 -56,-56 l 0,-544.011 c 0,-30.926 25.071,-56 56,-56 655.383,-0.117 1329.176,0.109 1924,0.011 37.661,-0.14 61.645,1.723 115.743,31.872 l 398.172,230.23 c 29.007,17.168 34.285,39.355 34.242,66.82 -0.043,27.485 -5.239,52.223 -33.703,68.696 l -393.586,227.414 c -53.637,31.113 -95.586,30.847 -120.868,30.968 l -1924,0 z" /><path + id="path5903" + style="fill:#154889;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 60.398,624.442 c -15.46,0 -28,-12.536 -28,-28 l 0,-536.008 c 0,-15.465 12.54,-28 28,-28 635.915,0.004 1271.848,0.004 1907.766,0.004 14.012,-0.032 63.352,-0.004 86.899,13.504 l 423.007,244.292 c 10.914,6.301 18.246,23.137 18.176,39.118 0.262,15.98 -7.254,35.261 -18.152,41.382 l -415.031,239.618 c -24.59,14.097 -71.825,14.129 -85.817,14.086 -638.945,0.035 -1277.914,-0.051 -1916.848,0.004 z" /><path + id="path5905" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 1933.539,165.25 -29.535,0 c -29.418,0 -53.238,23.856 -53.238,53.227 l 0,144.902 -23.7,0 0,38.434 23.7,0 0,70.961 47.281,0 0,-70.961 35.492,0 0,-38.434 -35.492,0 0,-139.016 c 0,-8.164 6.633,-14.769 14.797,-14.769 l 20.695,0 0,-44.344 z m -289.758,0 0,236.563 47.278,0 0,-26.696 c 27.73,34.305 78.011,39.625 112.277,11.93 0.035,-0.051 0.102,-0.063 0.133,-0.063 l -33.633,-41.48 c -19.535,17.367 -49.434,15.613 -66.797,-3.875 -7.687,-8.691 -11.98,-19.852 -11.98,-31.461 l 0,-144.902 -47.262,0 -0.016,-0.016 z m -260.211,0 0,331.188 47.266,0 0,-121.321 c 27.746,34.305 78.027,39.625 112.277,11.93 18.785,-15.184 29.711,-38 29.711,-62.129 l 0,-159.668 -47.363,0 0,144.902 c 0,26.137 -21.129,47.313 -47.313,47.313 -26.085,0 -47.312,-21.176 -47.312,-47.313 l 0,-144.902 -47.266,0 z m -118.32,103.508 -68.008,0 c -16.328,0 -29.535,-13.281 -29.535,-29.582 0,-16.297 13.207,-29.582 29.535,-29.582 l 38.461,0 c 16.344,0 29.547,13.285 29.547,29.582 l 0,29.582 z m 47.348,-103.508 -47.348,0 0,24.414 c -8.324,-15.055 -24.172,-24.414 -41.395,-24.414 l -29.582,0 c -39.179,0 -70.929,31.781 -70.929,70.961 0,39.195 31.75,70.977 70.929,70.977 l 70.977,0 0,23.648 c 0,12.934 -9.281,23.984 -22.023,26.215 -16.723,2.933 -33.821,2.933 -50.551,0 -8.321,-1.434 -15.477,-6.793 -19.242,-14.399 l -37.395,29.579 c 11.211,16.648 28.738,27.972 48.473,31.418 22.136,3.89 44.746,3.89 66.879,0 35.355,-6.157 61.207,-36.903 61.207,-72.813 l 0,-165.586 z m -319.375,0 0,198.129 -23.664,0 0,38.434 23.664,0 0,35.464 c 0,32.707 26.504,59.161 59.16,59.161 l 35.469,0 0,-44.348 -32.551,0 c -8.164,0 -14.762,-6.648 -14.762,-14.813 l 0,-35.464 47.313,0 0,-38.434 -47.313,0 0,-198.129 -47.316,0 z m -266.09,37.902 33.344,33.536 c 27.566,-27.457 68.628,-36.262 105.019,-22.61 12.246,4.559 18.449,18.211 13.859,30.457 -3.253,8.692 -11.375,14.703 -20.667,15.293 L 808.426,263 c -39.117,2.442 -68.86,36.133 -66.418,75.25 1.965,31.094 23.984,57.277 54.281,64.551 44.074,10.57 90.543,0.223 125.957,-28.02 l -29.48,-36.976 c -24.032,19.168 -55.528,26.183 -85.426,19.008 -12.692,-3.079 -20.539,-15.801 -17.492,-28.528 2.437,-10.144 11.16,-17.465 21.527,-18.101 l 50.277,-3.153 c 39.118,-2.41 68.856,-36.105 66.399,-75.222 -1.75,-27.938 -19.727,-52.239 -45.906,-62.032 -53.758,-20.136 -114.352,-7.128 -155.012,33.375 z m -59.164,-37.902 -47.309,0 0,26.695 C 592.957,157.676 542.68,152.367 508.383,180.016 489.598,195.18 478.723,218 478.723,242.145 l 0,159.668 47.312,0 0,-144.856 c 0,-26.183 21.156,-47.363 47.313,-47.363 26.132,0 47.312,21.18 47.312,47.363 l 0,144.856 47.309,0 0,-236.563 z m -415.528,118.274 97.707,0 -48.878,144.902 -48.829,-144.902 z m -93.062,-118.274 121.195,331.188 41.426,0 121.211,-331.188 -53.195,0 -24.946,73.926 -127.55,0 -24.911,-73.926" /><path + id="path5907" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 56.398,656.844 C 25.254,656.844 0,631.586 0,600.445 L 0,56.434 C 0,25.289 25.254,0.035 56.398,0.035 c 655.383,-0.117 1329.172,0.11 1924,0.008 37.672,-0.141 61.801,1.754 115.938,31.922 l 0,0.004 398.18,230.23 0,0.004 c 14.558,8.617 23.199,18.524 28.172,29.727 4.976,11.203 6.285,23.676 6.261,37.437 -0.019,13.766 -1.328,26.875 -6.222,38.629 -4.895,11.754 -13.379,22.137 -27.68,30.41 l -393.578,227.418 c -53.719,31.157 -95.793,30.899 -121.067,31.02 l -1924.004,0 z m 0,-0.399 1924,0 c 25.282,-0.121 67.231,0.145 120.868,-30.968 l 393.586,-227.414 c 28.464,-16.473 33.66,-41.211 33.703,-68.696 0.043,-27.465 -5.235,-49.652 -34.242,-66.82 L 2096.141,32.317 C 2042.043,2.168 2018.059,0.305 1980.398,0.445 1385.574,0.543 711.781,0.317 56.398,0.434 c -30.929,0 -56,25.074 -56,56 l 0,544.011 c 0,30.926 25.071,56 56,56 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/HighWayExit_E5-1.svg b/content/html/_images/HighWayExit_E5-1.svg index 255b72034346673926395f03582004d6099824e3..4b7de6d877874dcbdaca7663a4704f8a03d3af9e 100644 --- a/content/html/_images/HighWayExit_E5-1.svg +++ b/content/html/_images/HighWayExit_E5-1.svg @@ -1,96 +1,96 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="149.28125" - height="124.78125" - id="svg4779" - version="1.1" - inkscape:version="0.48.2 r9819" - sodipodi:docname="AJAX1.svg"> - <defs - id="defs4781" /> - <sodipodi:namedview - id="base" - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1.0" - inkscape:pageopacity="0.0" - inkscape:pageshadow="2" - inkscape:zoom="2.8" - inkscape:cx="68.140612" - inkscape:cy="62.122392" - inkscape:document-units="px" - inkscape:current-layer="layer1" - showgrid="false" - inkscape:window-width="1280" - inkscape:window-height="1004" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" /> - <metadata - id="metadata4784"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <g - inkscape:label="Layer 1" - inkscape:groupmode="layer" - id="layer1" - transform="translate(-67.1875,2233.7188)"> - <path - inkscape:connector-curvature="0" - d="m 202.99938,-2233.1339 -122.35,0 c -7.09125,0 -12.86,5.7687 -12.86,12.86 l 0,97.88 c 0,7.09 5.76875,12.8587 12.86,12.8587 l 122.35,0 c 7.0925,0 12.86125,-5.7687 12.86125,-12.8587 l 0,-97.88 c 0,-7.0913 -5.76875,-12.86 -12.86125,-12.86" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.20000005;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" - id="path3370" - sodipodi:nodetypes="csssssssc" /> - <path - inkscape:connector-curvature="0" - d="m 80.6495,-2113.2187 c -2.43625,0 -4.73875,-0.9587 -6.47875,-2.6987 -1.74,-1.7375 -2.6975,-4.04 -2.6975,-6.4763 l 0,-97.8812 c 0,-2.4375 0.9575,-4.7388 2.6975,-6.4788 1.74,-1.74 4.0425,-2.6987 6.47875,-2.6987 l 122.35,0 c 2.43875,0 4.73875,0.9587 6.48,2.6987 1.74,1.74 2.6975,4.0413 2.6975,6.4788 l 0,97.8812 c 0,2.4363 -0.9575,4.7388 -2.6975,6.4763 -1.74125,1.74 -4.04125,2.6987 -6.48,2.6987 l -122.35,0 z" - style="fill:#00674c;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3366" /> - <path - inkscape:connector-curvature="0" - d="m 97.472,-2187.6487 0,-24.47 17.9225,0 0,4.38 -13.44125,0 0,4.55 7.3225,0 0,4.4638 -7.3225,0 0,6.6975 13.8725,0 0,4.3787 -18.35375,0 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3374" /> - <path - inkscape:connector-curvature="0" - d="m 154.3275,-2212.1188 4.405,0 0,24.47 -4.405,0 0,-24.47 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3376" /> - <path - inkscape:connector-curvature="0" - d="m 179.14437,-2207.8257 0,20.1775 -4.2875,0 0,-20.1775 -7.03125,0 0,-4.2925 18.3525,0 0,4.2925 -7.03375,0 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3380" /> - <path - inkscape:connector-curvature="0" - d="m 139.81825,-2187.6487 -5.51875,-8.6725 -5.43375,8.6725 -5.175,0 8.02125,-12.8787 -7.33125,-11.5913 5.26125,0 4.6575,7.47 4.6575,-7.47 5.26,0 -7.245,11.5913 8.0225,12.8787 -5.17625,0 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3384" /> - <path - inkscape:connector-curvature="0" - d="m 159.3995,-2136.8974 c 0.0113,-0.019 0.0213,-0.034 0.0325,-0.051 0.0612,-0.1137 0.10875,-0.2287 0.14,-0.345 0.005,-0.011 0.0125,-0.021 0.0125,-0.032 l -0.005,0 c 0.01,-0.039 0.025,-0.08 0.0325,-0.1187 l 0.055,-0.3963 5.61875,-29 0.0763,-0.5462 c 0.075,-0.5438 -0.105,-1.0875 -0.4675,-1.45 -0.41375,-0.415 -0.95875,-0.5975 -1.4775,-0.4925 l -0.3625,0.071 -29.0875,5.6663 -0.50875,0.082 c -0.33625,0.077 -0.59625,0.2325 -0.855,0.4925 -0.6475,0.6475 -0.6725,1.7087 0,2.3812 0.0788,0.079 0.2075,0.155 0.31125,0.2075 l 0.31125,0.1738 10.35125,6.3625 -25.30375,23.2337 8.4675,8.4675 23.235,-25.2537 0,-0.05 6.2675,10.1962 0.26,0.3713 c 0.0763,0.1287 0.155,0.2587 0.25875,0.3612 0.6475,0.6475 1.73375,0.6488 2.38125,0 0.105,-0.1025 0.185,-0.2162 0.25625,-0.3325" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3388" /> - </g> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="149.28125" + height="124.78125" + id="svg4779" + version="1.1" + inkscape:version="0.48.2 r9819" + sodipodi:docname="AJAX1.svg"> + <defs + id="defs4781" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="2.8" + inkscape:cx="68.140612" + inkscape:cy="62.122392" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1280" + inkscape:window-height="1004" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + <metadata + id="metadata4784"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-67.1875,2233.7188)"> + <path + inkscape:connector-curvature="0" + d="m 202.99938,-2233.1339 -122.35,0 c -7.09125,0 -12.86,5.7687 -12.86,12.86 l 0,97.88 c 0,7.09 5.76875,12.8587 12.86,12.8587 l 122.35,0 c 7.0925,0 12.86125,-5.7687 12.86125,-12.8587 l 0,-97.88 c 0,-7.0913 -5.76875,-12.86 -12.86125,-12.86" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.20000005;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + id="path3370" + sodipodi:nodetypes="csssssssc" /> + <path + inkscape:connector-curvature="0" + d="m 80.6495,-2113.2187 c -2.43625,0 -4.73875,-0.9587 -6.47875,-2.6987 -1.74,-1.7375 -2.6975,-4.04 -2.6975,-6.4763 l 0,-97.8812 c 0,-2.4375 0.9575,-4.7388 2.6975,-6.4788 1.74,-1.74 4.0425,-2.6987 6.47875,-2.6987 l 122.35,0 c 2.43875,0 4.73875,0.9587 6.48,2.6987 1.74,1.74 2.6975,4.0413 2.6975,6.4788 l 0,97.8812 c 0,2.4363 -0.9575,4.7388 -2.6975,6.4763 -1.74125,1.74 -4.04125,2.6987 -6.48,2.6987 l -122.35,0 z" + style="fill:#00674c;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3366" /> + <path + inkscape:connector-curvature="0" + d="m 97.472,-2187.6487 0,-24.47 17.9225,0 0,4.38 -13.44125,0 0,4.55 7.3225,0 0,4.4638 -7.3225,0 0,6.6975 13.8725,0 0,4.3787 -18.35375,0 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3374" /> + <path + inkscape:connector-curvature="0" + d="m 154.3275,-2212.1188 4.405,0 0,24.47 -4.405,0 0,-24.47 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3376" /> + <path + inkscape:connector-curvature="0" + d="m 179.14437,-2207.8257 0,20.1775 -4.2875,0 0,-20.1775 -7.03125,0 0,-4.2925 18.3525,0 0,4.2925 -7.03375,0 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3380" /> + <path + inkscape:connector-curvature="0" + d="m 139.81825,-2187.6487 -5.51875,-8.6725 -5.43375,8.6725 -5.175,0 8.02125,-12.8787 -7.33125,-11.5913 5.26125,0 4.6575,7.47 4.6575,-7.47 5.26,0 -7.245,11.5913 8.0225,12.8787 -5.17625,0 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3384" /> + <path + inkscape:connector-curvature="0" + d="m 159.3995,-2136.8974 c 0.0113,-0.019 0.0213,-0.034 0.0325,-0.051 0.0612,-0.1137 0.10875,-0.2287 0.14,-0.345 0.005,-0.011 0.0125,-0.021 0.0125,-0.032 l -0.005,0 c 0.01,-0.039 0.025,-0.08 0.0325,-0.1187 l 0.055,-0.3963 5.61875,-29 0.0763,-0.5462 c 0.075,-0.5438 -0.105,-1.0875 -0.4675,-1.45 -0.41375,-0.415 -0.95875,-0.5975 -1.4775,-0.4925 l -0.3625,0.071 -29.0875,5.6663 -0.50875,0.082 c -0.33625,0.077 -0.59625,0.2325 -0.855,0.4925 -0.6475,0.6475 -0.6725,1.7087 0,2.3812 0.0788,0.079 0.2075,0.155 0.31125,0.2075 l 0.31125,0.1738 10.35125,6.3625 -25.30375,23.2337 8.4675,8.4675 23.235,-25.2537 0,-0.05 6.2675,10.1962 0.26,0.3713 c 0.0763,0.1287 0.155,0.2587 0.25875,0.3612 0.6475,0.6475 1.73375,0.6488 2.38125,0 0.105,-0.1025 0.185,-0.2162 0.25625,-0.3325" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3388" /> + </g> +</svg> diff --git a/content/html/_images/HighwayExitPole_450-50.svg b/content/html/_images/HighwayExitPole_450-50.svg index cbf7a6b51de81d1ac36e88c9a56ebbc7aa341c1f..42ae9f22bcda5826be1a8a89b6454e7690a023ce 100644 --- a/content/html/_images/HighwayExitPole_450-50.svg +++ b/content/html/_images/HighwayExitPole_450-50.svg @@ -1,90 +1,90 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 652.5 1501.4412" - height="1501.4412" - width="652.5" - xml:space="preserve" - id="svg40" - version="1.1"><metadata - id="metadata46"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs44"><clipPath - id="clipPath58" - clipPathUnits="userSpaceOnUse"><path - id="path56" - d="M 0.57,1126.081 H 489.375 V -0.794 H 0.57 Z" /></clipPath><clipPath - id="clipPath68" - clipPathUnits="userSpaceOnUse"><path - id="path66" - d="M 0,0 H 490 V 1127 H 0 Z" /></clipPath><clipPath - id="clipPath78" - clipPathUnits="userSpaceOnUse"><path - id="path76" - d="M 0.938,1127 H 489.376 V 1.062 H 0.938 Z" /></clipPath><clipPath - id="clipPath88" - clipPathUnits="userSpaceOnUse"><path - id="path86" - d="M 1,1 H 489 V 1127 H 1 Z" /></clipPath><clipPath - id="clipPath102" - clipPathUnits="userSpaceOnUse"><path - id="path100" - d="M 0,1127 H 489.375 V 0.125 H 0 Z" /></clipPath><clipPath - id="clipPath112" - clipPathUnits="userSpaceOnUse"><path - id="path110" - d="M 0,0 H 490 V 1127 H 0 Z" /></clipPath></defs><g - transform="matrix(1.3333333,0,0,-1.3333333,0,1501.4412)" - id="g48"><g - id="g50" /><g - id="g52"><g - clip-path="url(#clipPath58)" - id="g54"><g - transform="translate(0,-0.919067)" - id="g60"><g - id="g62"><g - clip-path="url(#clipPath68)" - id="g64"><g - id="g70" /><g - id="g72"><g - clip-path="url(#clipPath78)" - id="g74"><g - id="g80"><g - id="g82"><g - clip-path="url(#clipPath88)" - id="g84"><g - id="g90"><path - id="path92" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.188,1126.484 c -25.891,0 -46.875,-20.988 -46.875,-46.875 V 48.359 C 1.313,22.473 22.297,1.484 48.188,1.484 h 396.093 c 25.887,0 44.532,20.989 44.532,46.875 v 1031.25 c 0,25.887 -18.645,46.875 -44.532,46.875 z" /></g></g></g></g><path - id="path94" - style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.188,1107.734 c -14.532,0 -28.125,-13.613 -28.125,-28.125 V 455.773 l 450,259.809 v 364.027 c 0,14.512 -11.25,28.125 -25.782,28.125 z m 421.875,-600 -450,-259.8 V 48.359 c 0,-14.515 13.593,-28.125 28.125,-28.125 h 396.093 c 14.532,0 25.782,13.61 25.782,28.125 z" /></g></g><g - id="g96"><g - clip-path="url(#clipPath102)" - id="g98"><g - id="g104"><g - id="g106"><g - clip-path="url(#clipPath112)" - id="g108"><g - id="g114"><path - id="path116" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 48.188,1127.043 c -26.192,0 -47.438,-21.242 -47.438,-47.434 V 48.355 C 0.75,22.164 21.996,0.922 48.188,0.922 h 396.093 c 26.192,0 45.094,21.277 45.094,47.433 v 1031.254 c 0,26.157 -18.902,47.434 -45.094,47.434 z m 0,-0.559 h 396.093 c 25.887,0 44.532,-20.988 44.532,-46.875 V 48.359 c 0,-25.886 -18.645,-46.875 -44.532,-46.875 H 48.188 C 22.297,1.484 1.313,22.473 1.313,48.359 v 1031.25 c 0,25.887 20.984,46.875 46.875,46.875 z" /></g></g></g></g><path - id="path118" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 265.043,951.242 c 0,-5.332 -1.043,-10.41 -3.125,-15.226 -2.086,-4.684 -4.883,-8.782 -8.395,-12.297 -3.515,-3.512 -7.679,-6.309 -12.492,-8.391 -4.687,-2.082 -9.695,-3.125 -15.031,-3.125 -5.469,0 -10.605,1.043 -15.422,3.125 -4.687,2.082 -8.785,4.879 -12.297,8.391 -3.515,3.515 -6.312,7.613 -8.394,12.297 -1.953,4.816 -2.93,9.894 -2.93,15.226 v 64.422 c 0,5.336 0.977,10.344 2.93,15.031 2.082,4.813 4.879,8.977 8.394,12.493 3.512,3.515 7.61,6.312 12.297,8.394 4.817,2.082 9.953,3.121 15.422,3.121 5.336,0 10.344,-1.039 15.031,-3.121 4.813,-2.082 8.977,-4.879 12.492,-8.394 3.512,-3.516 6.309,-7.68 8.395,-12.493 2.082,-4.687 3.125,-9.695 3.125,-15.031 z M 226,1035.184 c -5.469,0 -10.086,-1.887 -13.863,-5.661 -3.77,-3.773 -5.66,-8.394 -5.66,-13.859 v -64.422 c 0,-5.461 1.89,-10.082 5.66,-13.855 3.777,-3.774 8.394,-5.66 13.863,-5.66 5.465,0 10.086,1.886 13.859,5.66 3.774,3.773 5.661,8.394 5.661,13.855 v 64.422 c 0,5.465 -1.887,10.086 -5.661,13.859 -3.773,3.774 -8.394,5.661 -13.859,5.661 z" /><path - id="path120" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 363.492,951.242 c 0,-5.332 -1.043,-10.41 -3.125,-15.226 -2.082,-4.684 -4.879,-8.782 -8.394,-12.297 -3.512,-3.512 -7.68,-6.309 -12.493,-8.391 -4.687,-2.082 -9.695,-3.125 -15.031,-3.125 -5.465,0 -10.605,1.043 -15.422,3.125 -4.683,2.082 -8.781,4.879 -12.297,8.391 -3.511,3.515 -6.312,7.613 -8.394,12.297 -1.953,4.816 -2.93,9.894 -2.93,15.226 v 64.422 c 0,5.336 0.977,10.344 2.93,15.031 2.082,4.813 4.883,8.977 8.394,12.493 3.516,3.515 7.614,6.312 12.297,8.394 4.817,2.082 9.957,3.121 15.422,3.121 5.336,0 10.344,-1.039 15.031,-3.121 4.813,-2.082 8.981,-4.879 12.493,-8.394 3.515,-3.516 6.312,-7.68 8.394,-12.493 2.082,-4.687 3.125,-9.695 3.125,-15.031 z m -39.043,83.942 c -5.465,0 -10.086,-1.887 -13.859,-5.661 -3.774,-3.773 -5.66,-8.394 -5.66,-13.859 v -64.422 c 0,-5.461 1.886,-10.082 5.66,-13.855 3.773,-3.774 8.394,-5.66 13.859,-5.66 5.465,0 10.086,1.886 13.86,5.66 3.773,3.773 5.66,8.394 5.66,13.855 v 64.422 c 0,5.465 -1.887,10.086 -5.66,13.859 -3.774,3.774 -8.395,5.661 -13.86,5.661 z" /><path - id="path122" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 146.512,1032.266 -19.875,-14.567 v 21.262 l 19.875,14.562 H 166.59 V 913.387 h -20.078 z" /><path - id="path124" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 652.5 1501.4412" + height="1501.4412" + width="652.5" + xml:space="preserve" + id="svg40" + version="1.1"><metadata + id="metadata46"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs44"><clipPath + id="clipPath58" + clipPathUnits="userSpaceOnUse"><path + id="path56" + d="M 0.57,1126.081 H 489.375 V -0.794 H 0.57 Z" /></clipPath><clipPath + id="clipPath68" + clipPathUnits="userSpaceOnUse"><path + id="path66" + d="M 0,0 H 490 V 1127 H 0 Z" /></clipPath><clipPath + id="clipPath78" + clipPathUnits="userSpaceOnUse"><path + id="path76" + d="M 0.938,1127 H 489.376 V 1.062 H 0.938 Z" /></clipPath><clipPath + id="clipPath88" + clipPathUnits="userSpaceOnUse"><path + id="path86" + d="M 1,1 H 489 V 1127 H 1 Z" /></clipPath><clipPath + id="clipPath102" + clipPathUnits="userSpaceOnUse"><path + id="path100" + d="M 0,1127 H 489.375 V 0.125 H 0 Z" /></clipPath><clipPath + id="clipPath112" + clipPathUnits="userSpaceOnUse"><path + id="path110" + d="M 0,0 H 490 V 1127 H 0 Z" /></clipPath></defs><g + transform="matrix(1.3333333,0,0,-1.3333333,0,1501.4412)" + id="g48"><g + id="g50" /><g + id="g52"><g + clip-path="url(#clipPath58)" + id="g54"><g + transform="translate(0,-0.919067)" + id="g60"><g + id="g62"><g + clip-path="url(#clipPath68)" + id="g64"><g + id="g70" /><g + id="g72"><g + clip-path="url(#clipPath78)" + id="g74"><g + id="g80"><g + id="g82"><g + clip-path="url(#clipPath88)" + id="g84"><g + id="g90"><path + id="path92" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.188,1126.484 c -25.891,0 -46.875,-20.988 -46.875,-46.875 V 48.359 C 1.313,22.473 22.297,1.484 48.188,1.484 h 396.093 c 25.887,0 44.532,20.989 44.532,46.875 v 1031.25 c 0,25.887 -18.645,46.875 -44.532,46.875 z" /></g></g></g></g><path + id="path94" + style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.188,1107.734 c -14.532,0 -28.125,-13.613 -28.125,-28.125 V 455.773 l 450,259.809 v 364.027 c 0,14.512 -11.25,28.125 -25.782,28.125 z m 421.875,-600 -450,-259.8 V 48.359 c 0,-14.515 13.593,-28.125 28.125,-28.125 h 396.093 c 14.532,0 25.782,13.61 25.782,28.125 z" /></g></g><g + id="g96"><g + clip-path="url(#clipPath102)" + id="g98"><g + id="g104"><g + id="g106"><g + clip-path="url(#clipPath112)" + id="g108"><g + id="g114"><path + id="path116" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 48.188,1127.043 c -26.192,0 -47.438,-21.242 -47.438,-47.434 V 48.355 C 0.75,22.164 21.996,0.922 48.188,0.922 h 396.093 c 26.192,0 45.094,21.277 45.094,47.433 v 1031.254 c 0,26.157 -18.902,47.434 -45.094,47.434 z m 0,-0.559 h 396.093 c 25.887,0 44.532,-20.988 44.532,-46.875 V 48.359 c 0,-25.886 -18.645,-46.875 -44.532,-46.875 H 48.188 C 22.297,1.484 1.313,22.473 1.313,48.359 v 1031.25 c 0,25.887 20.984,46.875 46.875,46.875 z" /></g></g></g></g><path + id="path118" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 265.043,951.242 c 0,-5.332 -1.043,-10.41 -3.125,-15.226 -2.086,-4.684 -4.883,-8.782 -8.395,-12.297 -3.515,-3.512 -7.679,-6.309 -12.492,-8.391 -4.687,-2.082 -9.695,-3.125 -15.031,-3.125 -5.469,0 -10.605,1.043 -15.422,3.125 -4.687,2.082 -8.785,4.879 -12.297,8.391 -3.515,3.515 -6.312,7.613 -8.394,12.297 -1.953,4.816 -2.93,9.894 -2.93,15.226 v 64.422 c 0,5.336 0.977,10.344 2.93,15.031 2.082,4.813 4.879,8.977 8.394,12.493 3.512,3.515 7.61,6.312 12.297,8.394 4.817,2.082 9.953,3.121 15.422,3.121 5.336,0 10.344,-1.039 15.031,-3.121 4.813,-2.082 8.977,-4.879 12.492,-8.394 3.512,-3.516 6.309,-7.68 8.395,-12.493 2.082,-4.687 3.125,-9.695 3.125,-15.031 z M 226,1035.184 c -5.469,0 -10.086,-1.887 -13.863,-5.661 -3.77,-3.773 -5.66,-8.394 -5.66,-13.859 v -64.422 c 0,-5.461 1.89,-10.082 5.66,-13.855 3.777,-3.774 8.394,-5.66 13.863,-5.66 5.465,0 10.086,1.886 13.859,5.66 3.774,3.773 5.661,8.394 5.661,13.855 v 64.422 c 0,5.465 -1.887,10.086 -5.661,13.859 -3.773,3.774 -8.394,5.661 -13.859,5.661 z" /><path + id="path120" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 363.492,951.242 c 0,-5.332 -1.043,-10.41 -3.125,-15.226 -2.082,-4.684 -4.879,-8.782 -8.394,-12.297 -3.512,-3.512 -7.68,-6.309 -12.493,-8.391 -4.687,-2.082 -9.695,-3.125 -15.031,-3.125 -5.465,0 -10.605,1.043 -15.422,3.125 -4.683,2.082 -8.781,4.879 -12.297,8.391 -3.511,3.515 -6.312,7.613 -8.394,12.297 -1.953,4.816 -2.93,9.894 -2.93,15.226 v 64.422 c 0,5.336 0.977,10.344 2.93,15.031 2.082,4.813 4.883,8.977 8.394,12.493 3.516,3.515 7.614,6.312 12.297,8.394 4.817,2.082 9.957,3.121 15.422,3.121 5.336,0 10.344,-1.039 15.031,-3.121 4.813,-2.082 8.981,-4.879 12.493,-8.394 3.515,-3.516 6.312,-7.68 8.394,-12.493 2.082,-4.687 3.125,-9.695 3.125,-15.031 z m -39.043,83.942 c -5.465,0 -10.086,-1.887 -13.859,-5.661 -3.774,-3.773 -5.66,-8.394 -5.66,-13.859 v -64.422 c 0,-5.461 1.886,-10.082 5.66,-13.855 3.773,-3.774 8.394,-5.66 13.859,-5.66 5.465,0 10.086,1.886 13.86,5.66 3.773,3.773 5.66,8.394 5.66,13.855 v 64.422 c 0,5.465 -1.887,10.086 -5.66,13.859 -3.774,3.774 -8.395,5.661 -13.86,5.661 z" /><path + id="path122" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 146.512,1032.266 -19.875,-14.567 v 21.262 l 19.875,14.562 H 166.59 V 913.387 h -20.078 z" /><path + id="path124" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 193.309,861.758 h 14.91 v -7.895 h 0.293 c 2.34,2.926 5.117,5.117 8.332,6.578 3.316,1.461 6.969,2.196 10.969,2.196 5.164,0 9.257,-0.926 12.281,-2.782 3.117,-1.847 5.992,-4.14 8.621,-6.867 3.121,3.41 6.535,5.848 10.238,7.309 3.699,1.558 8.09,2.34 13.156,2.34 2.922,0 5.848,-0.586 8.77,-1.754 2.926,-1.074 5.555,-2.684 7.894,-4.828 2.344,-2.141 4.243,-4.821 5.704,-8.039 1.562,-3.219 2.339,-6.922 2.339,-11.11 v -49.269 h -14.91 v 44.148 c 0,5.07 -1.414,8.969 -4.242,11.699 -2.726,2.829 -6.187,4.239 -10.379,4.239 -4.289,0 -7.847,-1.41 -10.672,-4.239 -2.73,-2.73 -4.097,-6.629 -4.097,-11.699 v -44.148 h -14.911 v 44.148 c 0,5.07 -1.414,8.969 -4.238,11.699 -2.73,2.829 -6.187,4.239 -10.383,4.239 -4.289,0 -7.843,-1.41 -10.668,-4.239 -2.73,-2.73 -4.097,-6.629 -4.097,-11.699 v -44.148 h -14.91 z" /></g></g></g></g></g></g></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/HighwayExitPole_450-51.svg b/content/html/_images/HighwayExitPole_450-51.svg index 5f6295eebc4b50b11ecee989576cd04d344f6f1e..8e09d96ecc61403c90aecd318bbb3861d3bf622c 100644 --- a/content/html/_images/HighwayExitPole_450-51.svg +++ b/content/html/_images/HighwayExitPole_450-51.svg @@ -1,64 +1,64 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 694.9295 1601.536" - height="1601.536" - width="694.9295" - xml:space="preserve" - id="svg247" - version="1.1"><metadata - id="metadata253"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs251"><clipPath - id="clipPath267" - clipPathUnits="userSpaceOnUse"><path - id="path265" - d="M 0,1 H 521 V 1202 H 0 Z" /></clipPath><clipPath - id="clipPath291" - clipPathUnits="userSpaceOnUse"><path - id="path289" - d="M 0,0 H 522 V 1202 H 0 Z" /></clipPath></defs><g - transform="matrix(1.3333333,0,0,-1.3333333,0,1601.536)" - id="g255"><g - id="g257"><g - transform="translate(0,-0.848022)" - id="g259"><g - id="g261"><g - clip-path="url(#clipPath267)" - id="g263"><g - id="g269"><path - id="path271" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 50.598,1201.449 c -27.614,0 -50,-22.386 -50,-50 v -1100 c 0,-27.613 22.386,-50 50,-50 h 422.496 c 27.617,0 47.504,22.387 47.504,50 v 1100 c 0,27.614 -19.887,50 -47.504,50 z" /></g></g></g></g><path - id="path273" - style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 20.598,582.265 v 568.336 c 0,15.481 14.504,30 30,30 h 422.496 c 15.504,0 27.504,-14.519 27.504,-30 V 859.679 Z m 0,-494.531 480,272.867 v -310 c 0,-15.484 -12,-30 -27.504,-30 H 50.598 c -15.496,0 -30,14.516 -30,30" /><path - id="path275" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 152.883,1103.214 c -2.918,0 -5.692,-0.554 -8.332,-1.664 -2.496,-1.113 -4.719,-2.636 -6.66,-4.582 -1.805,-1.804 -3.262,-3.957 -4.375,-6.453 -0.973,-2.5 -1.457,-5.207 -1.457,-8.121 0,-1.39 0.07,-2.43 0.207,-3.125 h -21.028 v 3.125 c 0,5.692 1.039,11.035 3.121,16.031 2.223,5.137 5.207,9.579 8.954,13.329 3.75,3.746 8.121,6.73 13.117,8.953 5.136,2.218 10.621,3.332 16.453,3.332 5.691,0 11.035,-1.114 16.031,-3.332 5.137,-2.223 9.578,-5.207 13.324,-8.953 3.75,-3.75 6.735,-8.192 8.953,-13.329 2.223,-4.996 3.332,-10.339 3.332,-16.031 0,-4.582 -0.761,-8.953 -2.289,-13.117 -1.386,-4.168 -3.332,-7.984 -5.832,-11.453 L 137.047,995.98 h 57.476 v -20.82 h -83.285 v 20.82 l 58.301,73.918 c 1.25,1.805 2.219,3.75 2.914,5.832 0.832,2.082 1.25,4.305 1.25,6.664 0,5.828 -2.012,10.758 -6.039,14.781 -4.023,4.028 -8.953,6.039 -14.781,6.039 z" /><path - id="path277" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 305.441,1013.679 c 0,-5.691 -1.109,-11.105 -3.332,-16.238 -2.218,-5 -5.203,-9.371 -8.953,-13.121 -3.746,-3.746 -8.191,-6.731 -13.324,-8.953 -5,-2.219 -10.344,-3.328 -16.035,-3.328 -5.828,0 -11.313,1.109 -16.449,3.328 -4.996,2.222 -9.371,5.207 -13.118,8.953 -3.75,3.75 -6.734,8.121 -8.953,13.121 -2.082,5.133 -3.125,10.547 -3.125,16.238 v 68.715 c 0,5.692 1.043,11.035 3.125,16.031 2.219,5.137 5.203,9.579 8.953,13.329 3.747,3.746 8.122,6.73 13.118,8.953 5.136,2.218 10.621,3.332 16.449,3.332 5.691,0 11.035,-1.114 16.035,-3.332 5.133,-2.223 9.578,-5.207 13.324,-8.953 3.75,-3.75 6.735,-8.192 8.953,-13.329 2.223,-4.996 3.332,-10.339 3.332,-16.031 z m -41.644,89.535 c -5.828,0 -10.758,-2.011 -14.781,-6.039 -4.028,-4.023 -6.039,-8.953 -6.039,-14.781 v -68.715 c 0,-5.828 2.011,-10.757 6.039,-14.781 4.023,-4.027 8.953,-6.039 14.781,-6.039 5.832,0 10.758,2.012 14.785,6.039 4.023,4.024 6.039,8.953 6.039,14.781 v 68.715 c 0,5.828 -2.016,10.758 -6.039,14.781 -4.027,4.028 -8.953,6.039 -14.785,6.039 z" /><path - id="path279" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 409.957,1013.679 c 0,-5.691 -1.109,-11.105 -3.332,-16.238 -2.219,-5 -5.203,-9.371 -8.953,-13.121 -3.746,-3.746 -8.188,-6.731 -13.324,-8.953 -5,-2.219 -10.344,-3.328 -16.035,-3.328 -5.829,0 -11.313,1.109 -16.45,3.328 -4.996,2.222 -9.367,5.207 -13.117,8.953 -3.746,3.75 -6.73,8.121 -8.953,13.121 -2.082,5.133 -3.121,10.547 -3.121,16.238 v 68.715 c 0,5.692 1.039,11.035 3.121,16.031 2.223,5.137 5.207,9.579 8.953,13.329 3.75,3.746 8.121,6.73 13.117,8.953 5.137,2.218 10.621,3.332 16.45,3.332 5.691,0 11.035,-1.114 16.035,-3.332 5.136,-2.223 9.578,-5.207 13.324,-8.953 3.75,-3.75 6.734,-8.192 8.953,-13.329 2.223,-4.996 3.332,-10.339 3.332,-16.031 z m -41.644,89.535 c -5.829,0 -10.758,-2.011 -14.782,-6.039 -4.027,-4.023 -6.039,-8.953 -6.039,-14.781 v -68.715 c 0,-5.828 2.012,-10.757 6.039,-14.781 4.024,-4.027 8.953,-6.039 14.782,-6.039 5.832,0 10.757,2.012 14.785,6.039 4.023,4.024 6.039,8.953 6.039,14.781 v 68.715 c 0,5.828 -2.016,10.758 -6.039,14.781 -4.028,4.028 -8.953,6.039 -14.785,6.039 z" /><path - id="path281" - style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 500.793,693.312 -480,-277.129 V 249.906 l 480,277.129 z" /><g - transform="translate(0,-0.848022)" - id="g283"><g - id="g285"><g - clip-path="url(#clipPath291)" - id="g287"><g - id="g293"><path - id="path295" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 50.598,1202.051 c -27.938,0 -50.602,-22.664 -50.602,-50.602 v -1100 C -0.004,23.508 22.66,0.848 50.598,0.848 h 422.496 c 27.937,0 48.105,22.699 48.105,50.601 v 1100 c 0,27.903 -20.168,50.602 -48.105,50.602 z m 0,-0.602 h 422.496 c 27.613,0 47.504,-22.386 47.504,-50 v -1100 c 0,-27.617 -19.891,-50 -47.504,-50 H 50.598 c -27.614,0 -50,22.383 -50,50 v 1100 c 0,27.614 22.386,50 50,50 z" /></g></g></g></g><path - id="path297" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 694.9295 1601.536" + height="1601.536" + width="694.9295" + xml:space="preserve" + id="svg247" + version="1.1"><metadata + id="metadata253"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs251"><clipPath + id="clipPath267" + clipPathUnits="userSpaceOnUse"><path + id="path265" + d="M 0,1 H 521 V 1202 H 0 Z" /></clipPath><clipPath + id="clipPath291" + clipPathUnits="userSpaceOnUse"><path + id="path289" + d="M 0,0 H 522 V 1202 H 0 Z" /></clipPath></defs><g + transform="matrix(1.3333333,0,0,-1.3333333,0,1601.536)" + id="g255"><g + id="g257"><g + transform="translate(0,-0.848022)" + id="g259"><g + id="g261"><g + clip-path="url(#clipPath267)" + id="g263"><g + id="g269"><path + id="path271" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 50.598,1201.449 c -27.614,0 -50,-22.386 -50,-50 v -1100 c 0,-27.613 22.386,-50 50,-50 h 422.496 c 27.617,0 47.504,22.387 47.504,50 v 1100 c 0,27.614 -19.887,50 -47.504,50 z" /></g></g></g></g><path + id="path273" + style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 20.598,582.265 v 568.336 c 0,15.481 14.504,30 30,30 h 422.496 c 15.504,0 27.504,-14.519 27.504,-30 V 859.679 Z m 0,-494.531 480,272.867 v -310 c 0,-15.484 -12,-30 -27.504,-30 H 50.598 c -15.496,0 -30,14.516 -30,30" /><path + id="path275" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 152.883,1103.214 c -2.918,0 -5.692,-0.554 -8.332,-1.664 -2.496,-1.113 -4.719,-2.636 -6.66,-4.582 -1.805,-1.804 -3.262,-3.957 -4.375,-6.453 -0.973,-2.5 -1.457,-5.207 -1.457,-8.121 0,-1.39 0.07,-2.43 0.207,-3.125 h -21.028 v 3.125 c 0,5.692 1.039,11.035 3.121,16.031 2.223,5.137 5.207,9.579 8.954,13.329 3.75,3.746 8.121,6.73 13.117,8.953 5.136,2.218 10.621,3.332 16.453,3.332 5.691,0 11.035,-1.114 16.031,-3.332 5.137,-2.223 9.578,-5.207 13.324,-8.953 3.75,-3.75 6.735,-8.192 8.953,-13.329 2.223,-4.996 3.332,-10.339 3.332,-16.031 0,-4.582 -0.761,-8.953 -2.289,-13.117 -1.386,-4.168 -3.332,-7.984 -5.832,-11.453 L 137.047,995.98 h 57.476 v -20.82 h -83.285 v 20.82 l 58.301,73.918 c 1.25,1.805 2.219,3.75 2.914,5.832 0.832,2.082 1.25,4.305 1.25,6.664 0,5.828 -2.012,10.758 -6.039,14.781 -4.023,4.028 -8.953,6.039 -14.781,6.039 z" /><path + id="path277" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 305.441,1013.679 c 0,-5.691 -1.109,-11.105 -3.332,-16.238 -2.218,-5 -5.203,-9.371 -8.953,-13.121 -3.746,-3.746 -8.191,-6.731 -13.324,-8.953 -5,-2.219 -10.344,-3.328 -16.035,-3.328 -5.828,0 -11.313,1.109 -16.449,3.328 -4.996,2.222 -9.371,5.207 -13.118,8.953 -3.75,3.75 -6.734,8.121 -8.953,13.121 -2.082,5.133 -3.125,10.547 -3.125,16.238 v 68.715 c 0,5.692 1.043,11.035 3.125,16.031 2.219,5.137 5.203,9.579 8.953,13.329 3.747,3.746 8.122,6.73 13.118,8.953 5.136,2.218 10.621,3.332 16.449,3.332 5.691,0 11.035,-1.114 16.035,-3.332 5.133,-2.223 9.578,-5.207 13.324,-8.953 3.75,-3.75 6.735,-8.192 8.953,-13.329 2.223,-4.996 3.332,-10.339 3.332,-16.031 z m -41.644,89.535 c -5.828,0 -10.758,-2.011 -14.781,-6.039 -4.028,-4.023 -6.039,-8.953 -6.039,-14.781 v -68.715 c 0,-5.828 2.011,-10.757 6.039,-14.781 4.023,-4.027 8.953,-6.039 14.781,-6.039 5.832,0 10.758,2.012 14.785,6.039 4.023,4.024 6.039,8.953 6.039,14.781 v 68.715 c 0,5.828 -2.016,10.758 -6.039,14.781 -4.027,4.028 -8.953,6.039 -14.785,6.039 z" /><path + id="path279" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 409.957,1013.679 c 0,-5.691 -1.109,-11.105 -3.332,-16.238 -2.219,-5 -5.203,-9.371 -8.953,-13.121 -3.746,-3.746 -8.188,-6.731 -13.324,-8.953 -5,-2.219 -10.344,-3.328 -16.035,-3.328 -5.829,0 -11.313,1.109 -16.45,3.328 -4.996,2.222 -9.367,5.207 -13.117,8.953 -3.746,3.75 -6.73,8.121 -8.953,13.121 -2.082,5.133 -3.121,10.547 -3.121,16.238 v 68.715 c 0,5.692 1.039,11.035 3.121,16.031 2.223,5.137 5.207,9.579 8.953,13.329 3.75,3.746 8.121,6.73 13.117,8.953 5.137,2.218 10.621,3.332 16.45,3.332 5.691,0 11.035,-1.114 16.035,-3.332 5.136,-2.223 9.578,-5.207 13.324,-8.953 3.75,-3.75 6.734,-8.192 8.953,-13.329 2.223,-4.996 3.332,-10.339 3.332,-16.031 z m -41.644,89.535 c -5.829,0 -10.758,-2.011 -14.782,-6.039 -4.027,-4.023 -6.039,-8.953 -6.039,-14.781 v -68.715 c 0,-5.828 2.012,-10.757 6.039,-14.781 4.024,-4.027 8.953,-6.039 14.782,-6.039 5.832,0 10.757,2.012 14.785,6.039 4.023,4.024 6.039,8.953 6.039,14.781 v 68.715 c 0,5.828 -2.016,10.758 -6.039,14.781 -4.028,4.028 -8.953,6.039 -14.785,6.039 z" /><path + id="path281" + style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 500.793,693.312 -480,-277.129 V 249.906 l 480,277.129 z" /><g + transform="translate(0,-0.848022)" + id="g283"><g + id="g285"><g + clip-path="url(#clipPath291)" + id="g287"><g + id="g293"><path + id="path295" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 50.598,1202.051 c -27.938,0 -50.602,-22.664 -50.602,-50.602 v -1100 C -0.004,23.508 22.66,0.848 50.598,0.848 h 422.496 c 27.937,0 48.105,22.699 48.105,50.601 v 1100 c 0,27.903 -20.168,50.602 -48.105,50.602 z m 0,-0.602 h 422.496 c 27.613,0 47.504,-22.386 47.504,-50 v -1100 c 0,-27.617 -19.891,-50 -47.504,-50 H 50.598 c -27.614,0 -50,22.383 -50,50 v 1100 c 0,27.614 22.386,50 50,50 z" /></g></g></g></g><path + id="path297" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 205.395,918.222 h 15.906 v -8.418 h 0.312 c 2.496,3.118 5.457,5.457 8.887,7.016 3.535,1.559 7.434,2.34 11.699,2.34 5.508,0 9.875,-0.988 13.098,-2.965 3.328,-1.973 6.394,-4.418 9.199,-7.328 3.328,3.64 6.969,6.238 10.918,7.797 3.949,1.664 8.629,2.496 14.035,2.496 3.117,0 6.239,-0.625 9.356,-1.871 3.121,-1.145 5.925,-2.86 8.422,-5.149 2.496,-2.285 4.523,-5.144 6.082,-8.574 1.664,-3.434 2.496,-7.383 2.496,-11.852 V 839.16 h -15.907 v 47.094 c 0,5.406 -1.507,9.566 -4.523,12.476 -2.91,3.016 -6.602,4.524 -11.07,4.524 -4.575,0 -8.371,-1.508 -11.387,-4.524 -2.91,-2.91 -4.367,-7.07 -4.367,-12.476 V 839.16 h -15.906 v 47.094 c 0,5.406 -1.508,9.566 -4.52,12.476 -2.914,3.016 -6.602,4.524 -11.074,4.524 -4.574,0 -8.367,-1.508 -11.383,-4.524 -2.91,-2.91 -4.367,-7.07 -4.367,-12.476 V 839.16 h -15.906 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/LeftLaneEnd_W4-2L.svg b/content/html/_images/LeftLaneEnd_W4-2L.svg index 3f2f5e1fe1629e6558e0cce761700d3e6c1f798a..dd39006a94037a8fa875e3808cda96fb9c62155e 100644 --- a/content/html/_images/LeftLaneEnd_W4-2L.svg +++ b/content/html/_images/LeftLaneEnd_W4-2L.svg @@ -1,101 +1,101 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="90" - height="89.992096" - viewBox="0 0 254.00007 253.97768" - version="1.1" - id="svg2" - inkscape:version="0.48.2 r9819" - sodipodi:docname="AJAX1.svg"> - <metadata - id="metadata62"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs60" /> - <sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="1280" - inkscape:window-height="1004" - id="namedview58" - showgrid="false" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" - inkscape:zoom="5.6568542" - inkscape:cx="59.114527" - inkscape:cy="42.065784" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="svg2" - showguides="true" - inkscape:guide-bbox="true" /> - <!-- draw the bicycle --> - <!-- RIGHT --> - <!-- LANE --> - <!-- ONLY --> - <path - inkscape:connector-curvature="0" - d="M 135.22681,250.564 250.56754,135.2268 c 2.16605,-2.16605 3.43253,-5.16467 3.43253,-8.23383 0,-3.07623 -1.26648,-6.06778 -3.43253,-8.24442 L 135.22681,3.4113484 c -2.17311,-2.17664 -5.15761,-3.41841004 -8.24089,-3.411360043579 -3.06917,0 -6.07131,1.234720043579 -8.23383,3.411360043579 L 3.40431,118.74855 C 1.24531,120.91108 0,123.93791 0,126.99297 c 0,3.05152 1.24531,6.07483 3.40431,8.23383 L 118.75209,250.564 c 2.794,2.79753 6.99911,3.99697 10.85144,3.14325 2.26837,-0.51858 3.84528,-1.70392 5.62328,-3.14325" - style="fill:#fecf33;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3438" /> - <path - inkscape:connector-curvature="0" - d="M 120.81934,248.51755 5.45745,133.15566 c -1.60514,-1.60514 -2.53295,-3.88409 -2.53295,-6.16303 0,-2.27189 0.92781,-4.58259 2.53295,-6.18773 L 120.81934,5.4571284 c 1.6263,-1.61925 3.85939,-2.52942 6.1595,-2.52942 2.31069,0 4.56847,0.91017 6.19831,2.52942 L 248.51434,120.8049 c 1.61925,1.61925 2.55411,3.89114 2.55411,6.18773 0,2.29305 -0.93486,4.54378 -2.55411,6.16303 L 133.17715,248.51755 c -1.61573,1.60514 -3.92289,2.52942 -6.19831,2.52942 -2.26836,0 -4.54731,-0.92428 -6.1595,-2.52942" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" - id="path3462" /> - <path - inkscape:connector-curvature="0" - d="m 124.2441,245.07302 c 0.70909,0.70203 1.74273,1.12184 2.74462,1.12889 1.00541,0 2.032,-0.4198 2.73755,-1.12889 L 245.08464,129.7323 c 0.73025,-0.71967 1.11477,-1.72508 1.11477,-2.73756 0,-1.02658 -0.38452,-2.02141 -1.11477,-2.74461 L 129.72627,8.9129384 c -0.70555,-0.71261 -1.73214,-1.143 -2.73755,-1.13595 -1.00189,0 -2.03553,0.42334 -2.74462,1.13595 L 8.91044,124.25013 c -0.7232,0.71614 -1.13242,1.72861 -1.13948,2.74461 -0.007,1.03364 0.40923,2.00378 1.13948,2.73756 L 124.2441,245.07302 z" - style="fill:#fecf33;fill-opacity:1;fill-rule:evenodd;stroke:none" - id="path3466" /> - <path - d="m 174.27808,188.2887 -19.40278,0 0,-121.380283 19.40278,0 0,121.380283 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3594" - inkscape:connector-curvature="0" /> - <path - d="m 120.5987,66.907359 0,36.336121 c 0,0 -16.77812,20.39409 -20.28473,24.65917 l 0,60.38499 -19.40278,0 0,-67.33824 c 0,0 16.77458,-20.39409 20.28472,-24.659172 l 0,-29.382869 19.40279,0 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3598" - inkscape:connector-curvature="0" /> - <path - d="m 113.40979,188.2887 7.18961,0 0,-12.68236 -7.18961,0 0,12.68236 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3600" - inkscape:connector-curvature="0" /> - <path - d="m 113.40979,166.73044 7.18961,0 0,-12.67883 -7.18961,0 0,12.67883 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3602" - inkscape:connector-curvature="0" /> - <path - d="m 113.40979,145.17572 7.18961,0 0,-12.67884 -7.18961,0 0,12.67884 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3604" - inkscape:connector-curvature="0" /> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="90" + height="89.992096" + viewBox="0 0 254.00007 253.97768" + version="1.1" + id="svg2" + inkscape:version="0.48.2 r9819" + sodipodi:docname="AJAX1.svg"> + <metadata + id="metadata62"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs60" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="1004" + id="namedview58" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="5.6568542" + inkscape:cx="59.114527" + inkscape:cy="42.065784" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" + showguides="true" + inkscape:guide-bbox="true" /> + <!-- draw the bicycle --> + <!-- RIGHT --> + <!-- LANE --> + <!-- ONLY --> + <path + inkscape:connector-curvature="0" + d="M 135.22681,250.564 250.56754,135.2268 c 2.16605,-2.16605 3.43253,-5.16467 3.43253,-8.23383 0,-3.07623 -1.26648,-6.06778 -3.43253,-8.24442 L 135.22681,3.4113484 c -2.17311,-2.17664 -5.15761,-3.41841004 -8.24089,-3.411360043579 -3.06917,0 -6.07131,1.234720043579 -8.23383,3.411360043579 L 3.40431,118.74855 C 1.24531,120.91108 0,123.93791 0,126.99297 c 0,3.05152 1.24531,6.07483 3.40431,8.23383 L 118.75209,250.564 c 2.794,2.79753 6.99911,3.99697 10.85144,3.14325 2.26837,-0.51858 3.84528,-1.70392 5.62328,-3.14325" + style="fill:#fecf33;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3438" /> + <path + inkscape:connector-curvature="0" + d="M 120.81934,248.51755 5.45745,133.15566 c -1.60514,-1.60514 -2.53295,-3.88409 -2.53295,-6.16303 0,-2.27189 0.92781,-4.58259 2.53295,-6.18773 L 120.81934,5.4571284 c 1.6263,-1.61925 3.85939,-2.52942 6.1595,-2.52942 2.31069,0 4.56847,0.91017 6.19831,2.52942 L 248.51434,120.8049 c 1.61925,1.61925 2.55411,3.89114 2.55411,6.18773 0,2.29305 -0.93486,4.54378 -2.55411,6.16303 L 133.17715,248.51755 c -1.61573,1.60514 -3.92289,2.52942 -6.19831,2.52942 -2.26836,0 -4.54731,-0.92428 -6.1595,-2.52942" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path3462" /> + <path + inkscape:connector-curvature="0" + d="m 124.2441,245.07302 c 0.70909,0.70203 1.74273,1.12184 2.74462,1.12889 1.00541,0 2.032,-0.4198 2.73755,-1.12889 L 245.08464,129.7323 c 0.73025,-0.71967 1.11477,-1.72508 1.11477,-2.73756 0,-1.02658 -0.38452,-2.02141 -1.11477,-2.74461 L 129.72627,8.9129384 c -0.70555,-0.71261 -1.73214,-1.143 -2.73755,-1.13595 -1.00189,0 -2.03553,0.42334 -2.74462,1.13595 L 8.91044,124.25013 c -0.7232,0.71614 -1.13242,1.72861 -1.13948,2.74461 -0.007,1.03364 0.40923,2.00378 1.13948,2.73756 L 124.2441,245.07302 z" + style="fill:#fecf33;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path3466" /> + <path + d="m 174.27808,188.2887 -19.40278,0 0,-121.380283 19.40278,0 0,121.380283 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3594" + inkscape:connector-curvature="0" /> + <path + d="m 120.5987,66.907359 0,36.336121 c 0,0 -16.77812,20.39409 -20.28473,24.65917 l 0,60.38499 -19.40278,0 0,-67.33824 c 0,0 16.77458,-20.39409 20.28472,-24.659172 l 0,-29.382869 19.40279,0 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3598" + inkscape:connector-curvature="0" /> + <path + d="m 113.40979,188.2887 7.18961,0 0,-12.68236 -7.18961,0 0,12.68236 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3600" + inkscape:connector-curvature="0" /> + <path + d="m 113.40979,166.73044 7.18961,0 0,-12.67883 -7.18961,0 0,12.67883 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3602" + inkscape:connector-curvature="0" /> + <path + d="m 113.40979,145.17572 7.18961,0 0,-12.67884 -7.18961,0 0,12.67884 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3604" + inkscape:connector-curvature="0" /> +</svg> diff --git a/content/html/_images/LocalizationBasics.svg b/content/html/_images/LocalizationBasics.svg index a24293ae0c760d34f86e1c71651968c04ba103f7..0a01784a84b5740ea3d68a51ac88b5daf2611571 100644 --- a/content/html/_images/LocalizationBasics.svg +++ b/content/html/_images/LocalizationBasics.svg @@ -1,1323 +1,1323 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.2" width="210.71mm" height="114.81mm" viewBox="1929 4700 21071 11481" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve"> - <defs class="ClipPathGroup"> - <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse"> - <rect x="1929" y="4700" width="21071" height="11481"/> - </clipPath> - <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse"> - <rect x="1950" y="4711" width="21029" height="11459"/> - </clipPath> - </defs> - <defs> - <font id="EmbeddedFont_1" horiz-adv-x="2048"> - <font-face font-family="Liberation Sans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/> - <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/> - <glyph unicode="‘" horiz-adv-x="239" d="M 127,952 L 127,1098 C 127,1163 133,1220 146,1269 158,1318 178,1364 207,1409 L 328,1409 C 265,1318 233,1230 233,1147 L 322,1147 322,952 127,952 Z"/> - <glyph unicode="y" horiz-adv-x="980" d="M 191,-425 C 142,-425 100,-421 67,-414 L 67,-279 C 92,-283 120,-285 151,-285 263,-285 352,-203 417,-38 L 434,5 5,1082 197,1082 425,484 C 428,475 432,464 437,451 442,438 457,394 482,320 507,246 521,205 523,196 L 593,393 830,1082 1020,1082 604,0 C 559,-115 518,-201 479,-257 440,-314 398,-356 351,-383 304,-411 250,-425 191,-425 Z"/> - <glyph unicode="x" horiz-adv-x="980" d="M 801,0 L 510,444 217,0 23,0 408,556 41,1082 240,1082 510,661 778,1082 979,1082 612,558 1002,0 801,0 Z"/> - <glyph unicode="u" horiz-adv-x="874" d="M 314,1082 L 314,396 C 314,325 321,269 335,230 349,191 371,162 402,145 433,128 478,119 537,119 624,119 692,149 742,208 792,267 817,350 817,455 L 817,1082 997,1082 997,231 C 997,105 999,28 1003,0 L 833,0 C 832,3 832,12 831,27 830,42 830,59 829,78 828,97 826,132 825,185 L 822,185 C 781,110 733,58 679,27 624,-4 557,-20 476,-20 357,-20 271,10 216,69 161,128 133,225 133,361 L 133,1082 314,1082 Z"/> - <glyph unicode="t" horiz-adv-x="531" d="M 554,8 C 495,-8 434,-16 372,-16 228,-16 156,66 156,229 L 156,951 31,951 31,1082 163,1082 216,1324 336,1324 336,1082 536,1082 536,951 336,951 336,268 C 336,216 345,180 362,159 379,138 408,127 450,127 474,127 509,132 554,141 L 554,8 Z"/> - <glyph unicode="s" horiz-adv-x="927" d="M 950,299 C 950,197 912,118 835,63 758,8 650,-20 511,-20 376,-20 273,2 200,47 127,91 79,160 57,254 L 216,285 C 231,227 263,185 311,158 359,131 426,117 511,117 602,117 669,131 712,159 754,187 775,229 775,285 775,328 760,362 731,389 702,416 654,438 589,455 L 460,489 C 357,516 283,542 240,568 196,593 162,624 137,661 112,698 100,743 100,796 100,895 135,970 206,1022 276,1073 378,1099 513,1099 632,1099 727,1078 798,1036 868,994 912,927 931,834 L 769,814 C 759,862 732,899 689,925 645,950 586,963 513,963 432,963 372,951 333,926 294,901 275,864 275,814 275,783 283,758 299,738 315,718 339,701 370,687 401,673 467,654 568,629 663,605 732,583 774,563 816,542 849,520 874,495 898,470 917,442 930,410 943,377 950,340 950,299 Z"/> - <glyph unicode="r" horiz-adv-x="530" d="M 142,0 L 142,830 C 142,906 140,990 136,1082 L 306,1082 C 311,959 314,886 314,861 L 318,861 C 347,954 380,1017 417,1051 454,1085 507,1102 575,1102 599,1102 623,1099 648,1092 L 648,927 C 624,934 592,937 552,937 477,937 420,905 381,841 342,776 322,684 322,564 L 322,0 142,0 Z"/> - <glyph unicode="q" horiz-adv-x="927" d="M 484,-20 C 347,-20 246,26 182,119 118,212 86,351 86,536 86,913 219,1102 484,1102 566,1102 634,1088 687,1059 740,1030 785,981 821,914 L 823,914 C 823,934 824,969 827,1018 830,1067 832,1093 835,1096 L 1008,1096 C 1003,1057 1001,958 1001,801 L 1001,-425 821,-425 821,14 825,178 823,178 C 787,107 743,56 690,26 637,-5 569,-20 484,-20 Z M 821,554 C 821,695 798,799 752,867 706,935 633,969 532,969 441,969 375,935 335,867 295,799 275,691 275,542 275,391 295,282 336,217 376,152 441,119 530,119 632,119 706,155 752,228 798,301 821,409 821,554 Z"/> - <glyph unicode="p" horiz-adv-x="927" d="M 1053,546 C 1053,169 920,-20 655,-20 488,-20 376,43 319,168 L 314,168 C 317,163 318,106 318,-2 L 318,-425 138,-425 138,861 C 138,972 136,1046 132,1082 L 306,1082 C 307,1079 308,1070 309,1054 310,1037 312,1012 314,978 315,944 316,921 316,908 L 320,908 C 352,975 394,1024 447,1055 500,1086 569,1101 655,1101 788,1101 888,1056 954,967 1020,878 1053,737 1053,546 Z M 864,542 C 864,693 844,800 803,865 762,930 698,962 609,962 538,962 482,947 442,917 401,887 371,840 350,777 329,713 318,630 318,528 318,386 341,281 386,214 431,147 505,113 607,113 696,113 762,146 803,212 844,277 864,387 864,542 Z"/> - <glyph unicode="o" horiz-adv-x="980" d="M 1053,542 C 1053,353 1011,212 928,119 845,26 724,-20 565,-20 407,-20 288,28 207,125 126,221 86,360 86,542 86,915 248,1102 571,1102 736,1102 858,1057 936,966 1014,875 1053,733 1053,542 Z M 864,542 C 864,691 842,800 798,868 753,935 679,969 574,969 469,969 393,935 346,866 299,797 275,689 275,542 275,399 298,292 345,221 391,149 464,113 563,113 671,113 748,148 795,217 841,286 864,395 864,542 Z"/> - <glyph unicode="n" horiz-adv-x="874" d="M 825,0 L 825,686 C 825,757 818,813 804,852 790,891 768,920 737,937 706,954 661,963 602,963 515,963 447,933 397,874 347,815 322,732 322,627 L 322,0 142,0 142,851 C 142,977 140,1054 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 313,950 314,897 L 317,897 C 358,972 406,1025 461,1056 515,1087 582,1102 663,1102 782,1102 869,1073 924,1014 979,955 1006,857 1006,721 L 1006,0 825,0 Z"/> - <glyph unicode="m" horiz-adv-x="1457" d="M 768,0 L 768,686 C 768,791 754,863 725,903 696,943 645,963 570,963 493,963 433,934 388,875 343,816 321,734 321,627 L 321,0 142,0 142,851 C 142,977 140,1054 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 313,950 314,897 L 317,897 C 356,974 400,1027 450,1057 500,1087 561,1102 633,1102 715,1102 780,1086 828,1053 875,1020 908,968 927,897 L 930,897 C 967,970 1013,1022 1066,1054 1119,1086 1183,1102 1258,1102 1367,1102 1447,1072 1497,1013 1546,954 1571,856 1571,721 L 1571,0 1393,0 1393,686 C 1393,791 1379,863 1350,903 1321,943 1270,963 1195,963 1116,963 1055,934 1012,876 968,817 946,734 946,627 L 946,0 768,0 Z"/> - <glyph unicode="l" horiz-adv-x="187" d="M 138,0 L 138,1484 318,1484 318,0 138,0 Z"/> - <glyph unicode="i" horiz-adv-x="187" d="M 137,1312 L 137,1484 317,1484 317,1312 137,1312 Z M 137,0 L 137,1082 317,1082 317,0 137,0 Z"/> - <glyph unicode="g" horiz-adv-x="927" d="M 548,-425 C 430,-425 336,-402 266,-355 196,-309 151,-243 131,-158 L 312,-132 C 324,-182 351,-220 392,-247 433,-274 486,-288 553,-288 732,-288 822,-183 822,27 L 822,201 820,201 C 786,132 739,80 680,45 621,10 551,-8 472,-8 339,-8 242,36 180,124 117,212 86,350 86,539 86,730 120,872 187,963 254,1054 355,1099 492,1099 569,1099 635,1082 692,1047 748,1012 791,962 822,897 L 824,897 C 824,917 825,952 828,1001 831,1050 833,1077 836,1082 L 1007,1082 C 1003,1046 1001,971 1001,858 L 1001,31 C 1001,-273 850,-425 548,-425 Z M 822,541 C 822,629 810,705 786,769 762,832 728,881 685,915 641,948 591,965 536,965 444,965 377,932 335,865 293,798 272,690 272,541 272,393 292,287 331,222 370,157 438,125 533,125 590,125 640,142 684,175 728,208 762,256 786,319 810,381 822,455 822,541 Z"/> - <glyph unicode="e" horiz-adv-x="980" d="M 276,503 C 276,379 302,283 353,216 404,149 479,115 578,115 656,115 719,131 766,162 813,193 844,233 861,281 L 1019,236 C 954,65 807,-20 578,-20 418,-20 296,28 213,123 129,218 87,360 87,548 87,727 129,864 213,959 296,1054 416,1102 571,1102 889,1102 1048,910 1048,527 L 1048,503 276,503 Z M 862,641 C 852,755 823,838 775,891 727,943 658,969 568,969 481,969 412,940 361,882 310,823 282,743 278,641 L 862,641 Z"/> - <glyph unicode="d" horiz-adv-x="927" d="M 821,174 C 788,105 744,55 689,25 634,-5 565,-20 484,-20 347,-20 247,26 183,118 118,210 86,349 86,536 86,913 219,1102 484,1102 566,1102 634,1087 689,1057 744,1027 788,979 821,914 L 823,914 821,1035 821,1484 1001,1484 1001,223 C 1001,110 1003,36 1007,0 L 835,0 C 833,11 831,35 829,74 826,113 825,146 825,174 L 821,174 Z M 275,542 C 275,391 295,282 335,217 375,152 440,119 530,119 632,119 706,154 752,225 798,296 821,405 821,554 821,697 798,802 752,869 706,936 633,969 532,969 441,969 376,936 336,869 295,802 275,693 275,542 Z"/> - <glyph unicode="c" horiz-adv-x="901" d="M 275,546 C 275,402 298,295 343,226 388,157 457,122 548,122 612,122 666,139 709,174 752,209 778,262 788,334 L 970,322 C 956,218 912,135 837,73 762,11 668,-20 553,-20 402,-20 286,28 207,124 127,219 87,359 87,542 87,724 127,863 207,959 287,1054 402,1102 551,1102 662,1102 754,1073 827,1016 900,959 945,880 964,779 L 779,765 C 770,825 746,873 708,908 670,943 616,961 546,961 451,961 382,929 339,866 296,803 275,696 275,546 Z"/> - <glyph unicode="a" horiz-adv-x="1060" d="M 414,-20 C 305,-20 224,9 169,66 114,123 87,202 87,302 87,414 124,500 198,560 271,620 390,652 554,656 L 797,660 797,719 C 797,807 778,870 741,908 704,946 645,965 565,965 484,965 426,951 389,924 352,897 330,853 323,793 L 135,810 C 166,1005 310,1102 569,1102 705,1102 807,1071 876,1009 945,946 979,856 979,738 L 979,272 C 979,219 986,179 1000,152 1014,125 1041,111 1080,111 1097,111 1117,113 1139,118 L 1139,6 C 1094,-5 1047,-10 1000,-10 933,-10 885,8 855,43 824,78 807,132 803,207 L 797,207 C 751,124 698,66 637,32 576,-3 501,-20 414,-20 Z M 455,115 C 521,115 580,130 631,160 682,190 723,231 753,284 782,336 797,390 797,445 L 797,534 600,530 C 515,529 451,520 408,504 364,488 330,463 307,430 284,397 272,353 272,299 272,240 288,195 320,163 351,131 396,115 455,115 Z"/> - <glyph unicode="]" horiz-adv-x="424" d="M 16,-425 L 16,-296 249,-296 249,1355 16,1355 16,1484 423,1484 423,-425 16,-425 Z"/> - <glyph unicode="[" horiz-adv-x="425" d="M 146,-425 L 146,1484 553,1484 553,1355 320,1355 320,-296 553,-296 553,-425 146,-425 Z"/> - <glyph unicode="P" horiz-adv-x="1086" d="M 1258,985 C 1258,852 1215,746 1128,667 1041,588 922,549 773,549 L 359,549 359,0 168,0 168,1409 761,1409 C 919,1409 1041,1372 1128,1298 1215,1224 1258,1120 1258,985 Z M 1066,983 C 1066,1165 957,1256 738,1256 L 359,1256 359,700 746,700 C 959,700 1066,794 1066,983 Z"/> - <glyph unicode="3" horiz-adv-x="980" d="M 1049,389 C 1049,259 1008,158 925,87 842,16 724,-20 571,-20 428,-20 315,12 230,77 145,141 94,236 78,362 L 264,379 C 288,212 390,129 571,129 662,129 733,151 785,196 836,241 862,307 862,395 862,472 833,532 774,575 715,618 629,639 518,639 L 416,639 416,795 514,795 C 613,795 689,817 744,860 798,903 825,962 825,1038 825,1113 803,1173 759,1217 714,1260 648,1282 561,1282 482,1282 418,1262 369,1221 320,1180 291,1123 283,1049 L 102,1063 C 115,1178 163,1268 246,1333 328,1398 434,1430 563,1430 704,1430 814,1397 893,1332 971,1266 1010,1174 1010,1057 1010,967 985,894 935,838 884,781 811,743 715,723 L 715,719 C 820,708 902,672 961,613 1020,554 1049,479 1049,389 Z"/> - <glyph unicode="2" horiz-adv-x="980" d="M 103,0 L 103,127 C 137,205 179,274 228,334 277,393 328,447 382,496 436,544 490,589 543,630 596,671 643,713 686,754 729,795 763,839 790,884 816,929 829,981 829,1038 829,1115 806,1175 761,1218 716,1261 653,1282 572,1282 495,1282 432,1261 383,1220 333,1178 304,1119 295,1044 L 111,1061 C 124,1174 172,1263 255,1330 337,1397 443,1430 572,1430 714,1430 823,1397 900,1330 976,1263 1014,1167 1014,1044 1014,989 1002,935 977,881 952,827 914,773 865,719 816,665 721,581 582,468 505,405 444,349 399,299 354,248 321,200 301,153 L 1036,153 1036,0 103,0 Z"/> - <glyph unicode="1" horiz-adv-x="900" d="M 156,0 L 156,153 515,153 515,1237 197,1010 197,1180 530,1409 696,1409 696,153 1039,153 1039,0 156,0 Z"/> - <glyph unicode="0" horiz-adv-x="980" d="M 1059,705 C 1059,470 1018,290 935,166 852,42 729,-20 567,-20 405,-20 283,42 202,165 121,288 80,468 80,705 80,947 120,1128 199,1249 278,1370 402,1430 573,1430 739,1430 862,1369 941,1247 1020,1125 1059,944 1059,705 Z M 876,705 C 876,908 853,1056 806,1147 759,1238 681,1284 573,1284 462,1284 383,1239 335,1149 286,1059 262,911 262,705 262,505 287,359 336,266 385,173 462,127 569,127 675,127 753,174 802,269 851,364 876,509 876,705 Z"/> - </font> - </defs> - <defs class="TextShapeIndex"> - <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86"/> - </defs> - <defs class="EmbeddedBulletChars"> - <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)"> - <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/> - </g> - <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)"> - <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/> - </g> - <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)"> - <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/> - </g> - <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)"> - <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/> - </g> - <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)"> - <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/> - </g> - <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)"> - <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/> - </g> - <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)"> - <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/> - </g> - <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)"> - <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/> - </g> - <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)"> - <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/> - </g> - <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)"> - <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/> - </g> - </defs> - <defs class="TextEmbeddedBitmaps"/> - <g class="SlideGroup"> - <g> - <g id="container-id1"> - <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)"> - <g class="Page"> - <g class="com.sun.star.drawing.LineShape"> - <g id="id3"> - <rect class="BoundingBox" stroke="none" fill="none" x="22591" y="10991" width="19" height="1319"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,12300 L 22600,12265"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,12229 L 22600,12194"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,12158 L 22600,12123"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,12087 L 22600,12052"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,12016 L 22600,11981"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11945 L 22600,11910"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11874 L 22600,11839"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11804 L 22600,11768"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11733 L 22600,11697"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11662 L 22600,11626"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11591 L 22600,11555"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11520 L 22600,11484"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11449 L 22600,11414"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11378 L 22600,11343"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11307 L 22600,11272"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11236 L 22600,11201"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11165 L 22600,11130"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11094 L 22600,11059"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11023 L 22600,11000"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id4"> - <rect class="BoundingBox" stroke="none" fill="none" x="3091" y="10291" width="19" height="2019"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,12300 L 3100,12265"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,12229 L 3100,12194"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,12158 L 3100,12123"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,12087 L 3100,12052"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,12016 L 3100,11981"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11945 L 3100,11910"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11874 L 3100,11839"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11804 L 3100,11768"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11733 L 3100,11697"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11662 L 3100,11626"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11591 L 3100,11555"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11520 L 3100,11484"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11449 L 3100,11414"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11378 L 3100,11343"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11307 L 3100,11272"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11236 L 3100,11201"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11165 L 3100,11130"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11094 L 3100,11059"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11023 L 3100,10988"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10953 L 3100,10917"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10882 L 3100,10846"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10811 L 3100,10775"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10740 L 3100,10704"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10669 L 3100,10633"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10598 L 3100,10562"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10527 L 3100,10492"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10456 L 3100,10421"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10385 L 3100,10350"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10314 L 3100,10300"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id5"> - <rect class="BoundingBox" stroke="none" fill="none" x="6691" y="10291" width="19" height="2019"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,12300 L 6700,12265"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,12229 L 6700,12194"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,12158 L 6700,12123"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,12087 L 6700,12052"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,12016 L 6700,11981"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11945 L 6700,11910"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11874 L 6700,11839"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11804 L 6700,11768"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11733 L 6700,11697"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11662 L 6700,11626"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11591 L 6700,11555"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11520 L 6700,11484"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11449 L 6700,11414"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11378 L 6700,11343"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11307 L 6700,11272"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11236 L 6700,11201"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11165 L 6700,11130"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11094 L 6700,11059"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11023 L 6700,10988"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10953 L 6700,10917"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10882 L 6700,10846"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10811 L 6700,10775"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10740 L 6700,10704"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10669 L 6700,10633"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10598 L 6700,10562"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10527 L 6700,10492"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10456 L 6700,10421"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10385 L 6700,10350"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10314 L 6700,10300"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id6"> - <rect class="BoundingBox" stroke="none" fill="none" x="10791" y="9391" width="19" height="2919"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,12300 L 10800,12265"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,12229 L 10800,12194"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,12158 L 10800,12123"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,12087 L 10800,12052"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,12016 L 10800,11981"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11945 L 10800,11910"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11874 L 10800,11839"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11804 L 10800,11768"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11733 L 10800,11697"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11662 L 10800,11626"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11591 L 10800,11555"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11520 L 10800,11484"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11449 L 10800,11414"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11378 L 10800,11343"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11307 L 10800,11272"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11236 L 10800,11201"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11165 L 10800,11130"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11094 L 10800,11059"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11023 L 10800,10988"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10953 L 10800,10917"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10882 L 10800,10846"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10811 L 10800,10775"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10740 L 10800,10704"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10669 L 10800,10633"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10598 L 10800,10562"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10527 L 10800,10492"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10456 L 10800,10421"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10385 L 10800,10350"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10314 L 10800,10279"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10243 L 10800,10208"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10172 L 10800,10137"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10101 L 10800,10066"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10031 L 10800,9995"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9960 L 10800,9924"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9889 L 10800,9853"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9818 L 10800,9782"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9747 L 10800,9711"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9676 L 10800,9640"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9605 L 10800,9570"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9534 L 10800,9499"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9463 L 10800,9428"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id7"> - <rect class="BoundingBox" stroke="none" fill="none" x="3100" y="10962" width="19501" height="801"/> - <path fill="rgb(0,0,0)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 12850,11762 L 3100,11762 3100,10962 22600,10962 22600,11762 12850,11762 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.PolyPolygonShape"> - <g id="id8"> - <rect class="BoundingBox" stroke="none" fill="none" x="6699" y="7599" width="4103" height="2703"/> - <path fill="rgb(128,0,128)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 6700,10300 L 6700,7600 10800,7600 10800,9400 6700,10300 Z"/> - <path fill="none" stroke="rgb(52,101,164)" d="M 6700,10300 L 6700,7600 10800,7600 10800,9400 6700,10300 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id9"> - <rect class="BoundingBox" stroke="none" fill="none" x="3100" y="7600" width="3601" height="2701"/> - <path fill="rgb(129,212,26)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 4900,10300 L 3100,10300 3100,7600 6700,7600 6700,10300 4900,10300 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id10"> - <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="7599" width="7703" height="3"/> - <path fill="none" stroke="rgb(0,0,0)" d="M 3100,7600 L 10800,7600"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id11"> - <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="8499" width="7703" height="3"/> - <path fill="none" stroke="rgb(0,0,0)" d="M 3100,8500 L 10800,8500"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id12"> - <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="9399" width="7703" height="3"/> - <path fill="none" stroke="rgb(0,0,0)" d="M 3100,9400 L 10800,9400"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id13"> - <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="10299" width="3603" height="3"/> - <path fill="none" stroke="rgb(0,0,0)" d="M 3100,10300 L 6700,10300"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id14"> - <rect class="BoundingBox" stroke="none" fill="none" x="3082" y="7582" width="37" height="2737"/> - <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 3100,7600 L 3100,10300"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id15"> - <rect class="BoundingBox" stroke="none" fill="none" x="10782" y="7582" width="37" height="1837"/> - <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 10800,7600 L 10800,9400"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id16"> - <rect class="BoundingBox" stroke="none" fill="none" x="6682" y="7582" width="37" height="2737"/> - <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 6700,7600 L 6700,10300"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id17"> - <rect class="BoundingBox" stroke="none" fill="none" x="6699" y="9399" width="4103" height="903"/> - <path fill="none" stroke="rgb(0,0,0)" d="M 6700,10300 L 10800,9400"/> - </g> - </g> - <g class="com.sun.star.drawing.OpenBezierShape"> - <g id="id18"> - <rect class="BoundingBox" stroke="none" fill="none" x="10799" y="5299" width="8403" height="2303"/> - <path fill="none" stroke="rgb(0,0,0)" d="M 10800,7600 C 14800,7600 16800,7600 19200,5300"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id19"> - <rect class="BoundingBox" stroke="none" fill="none" x="19182" y="5282" width="1337" height="1137"/> - <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 19200,5300 L 20500,6400"/> - </g> - </g> - <g class="com.sun.star.drawing.OpenBezierShape"> - <g id="id20"> - <rect class="BoundingBox" stroke="none" fill="none" x="10799" y="6399" width="9703" height="3003"/> - <path fill="none" stroke="rgb(0,0,0)" d="M 10800,9400 C 15100,9400 17600,9200 20500,6400"/> - </g> - </g> - <g class="com.sun.star.drawing.ClosedBezierShape"> - <g id="id21"> - <rect class="BoundingBox" stroke="none" fill="none" x="10800" y="5300" width="9701" height="4101"/> - <path fill="rgb(255,84,41)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 10800,9400 C 10800,8800 10800,8200 10800,7600 14800,7600 16800,7600 19200,5300 19633,5667 20067,6033 20500,6400 17600,9200 15100,9400 10800,9400 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.OpenBezierShape"> - <g id="id22"> - <rect class="BoundingBox" stroke="none" fill="none" x="10799" y="5899" width="9103" height="2603"/> - <path fill="none" stroke="rgb(0,0,0)" d="M 10800,8500 C 14800,8500 17100,8400 19900,5900"/> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id23"> - <rect class="BoundingBox" stroke="none" fill="none" x="3739" y="11000" width="2323" height="726"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="3989" y="11510"><tspan fill="rgb(0,0,0)" stroke="none">section[0]</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id24"> - <rect class="BoundingBox" stroke="none" fill="none" x="7589" y="11000" width="2323" height="726"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="7839" y="11510"><tspan fill="rgb(0,0,0)" stroke="none">section[1]</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id25"> - <rect class="BoundingBox" stroke="none" fill="none" x="15578" y="11000" width="2323" height="726"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="15828" y="11510"><tspan fill="rgb(0,0,0)" stroke="none">section[2]</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id26"> - <rect class="BoundingBox" stroke="none" fill="none" x="1929" y="11000" width="1472" height="726"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="2179" y="11510"><tspan fill="rgb(0,0,0)" stroke="none">road</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id27"> - <rect class="BoundingBox" stroke="none" fill="none" x="2700" y="6831" width="804" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2950" y="7214"><tspan fill="rgb(0,0,0)" stroke="none">s0</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id28"> - <rect class="BoundingBox" stroke="none" fill="none" x="6300" y="6831" width="804" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6550" y="7214"><tspan fill="rgb(0,0,0)" stroke="none">s1</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id29"> - <rect class="BoundingBox" stroke="none" fill="none" x="10397" y="6831" width="804" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10647" y="7214"><tspan fill="rgb(0,0,0)" stroke="none">s2</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id30"> - <rect class="BoundingBox" stroke="none" fill="none" x="18497" y="4700" width="804" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="18747" y="5083"><tspan fill="rgb(0,0,0)" stroke="none">s3</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.PolyPolygonShape"> - <g id="id31"> - <rect class="BoundingBox" stroke="none" fill="none" x="7700" y="8500" width="801" height="1583"/> - <path fill="rgb(141,29,117)" fill-opacity="0.4" stroke="rgb(255,255,255)" stroke-opacity="0.4" d="M 7700,10081 L 7700,8500 8500,8500 8500,9906 7700,10081 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id32"> - <rect class="BoundingBox" stroke="none" fill="none" x="7686" y="7586" width="829" height="929"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 8100,8500 L 7700,8500 7700,7600 8500,7600 8500,8500 8100,8500 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8100,8500 L 7700,8500 7700,7600 8500,7600 8500,8500 8100,8500 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id33"> - <rect class="BoundingBox" stroke="none" fill="none" x="7634" y="7542" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 7698,7556 C 7726,7556 7748,7578 7748,7606 7748,7634 7726,7656 7698,7656 7670,7656 7648,7634 7648,7606 7648,7578 7670,7556 7698,7556 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 7698,7556 C 7726,7556 7748,7578 7748,7606 7748,7634 7726,7656 7698,7656 7670,7656 7648,7634 7648,7606 7648,7578 7670,7556 7698,7556 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id34"> - <rect class="BoundingBox" stroke="none" fill="none" x="8434" y="7542" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 8498,7556 C 8526,7556 8548,7578 8548,7606 8548,7634 8526,7656 8498,7656 8470,7656 8448,7634 8448,7606 8448,7578 8470,7556 8498,7556 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8498,7556 C 8526,7556 8548,7578 8548,7606 8548,7634 8526,7656 8498,7656 8470,7656 8448,7634 8448,7606 8448,7578 8470,7556 8498,7556 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id35"> - <rect class="BoundingBox" stroke="none" fill="none" x="8434" y="8442" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 8498,8456 C 8526,8456 8548,8478 8548,8506 8548,8534 8526,8556 8498,8556 8470,8556 8448,8534 8448,8506 8448,8478 8470,8456 8498,8456 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8498,8456 C 8526,8456 8548,8478 8548,8506 8548,8534 8526,8556 8498,8556 8470,8556 8448,8534 8448,8506 8448,8478 8470,8456 8498,8456 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id36"> - <rect class="BoundingBox" stroke="none" fill="none" x="7634" y="8442" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 7698,8456 C 7726,8456 7748,8478 7748,8506 7748,8534 7726,8556 7698,8556 7670,8556 7648,8534 7648,8506 7648,8478 7670,8456 7698,8456 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 7698,8456 C 7726,8456 7748,8478 7748,8506 7748,8534 7726,8556 7698,8556 7670,8556 7648,8534 7648,8506 7648,8478 7670,8456 7698,8456 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id37"> - <rect class="BoundingBox" stroke="none" fill="none" x="7638" y="9342" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 7702,9356 C 7730,9356 7752,9378 7752,9406 7752,9434 7730,9456 7702,9456 7674,9456 7652,9434 7652,9406 7652,9378 7674,9356 7702,9356 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 7702,9356 C 7730,9356 7752,9378 7752,9406 7752,9434 7730,9456 7702,9456 7674,9456 7652,9434 7652,9406 7652,9378 7674,9356 7702,9356 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id38"> - <rect class="BoundingBox" stroke="none" fill="none" x="7638" y="10017" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 7702,10031 C 7730,10031 7752,10053 7752,10081 7752,10109 7730,10131 7702,10131 7674,10131 7652,10109 7652,10081 7652,10053 7674,10031 7702,10031 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 7702,10031 C 7730,10031 7752,10053 7752,10081 7752,10109 7730,10131 7702,10131 7674,10131 7652,10109 7652,10081 7652,10053 7674,10031 7702,10031 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id39"> - <rect class="BoundingBox" stroke="none" fill="none" x="8438" y="9342" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 8502,9356 C 8530,9356 8552,9378 8552,9406 8552,9434 8530,9456 8502,9456 8474,9456 8452,9434 8452,9406 8452,9378 8474,9356 8502,9356 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8502,9356 C 8530,9356 8552,9378 8552,9406 8552,9434 8530,9456 8502,9456 8474,9456 8452,9434 8452,9406 8452,9378 8474,9356 8502,9356 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id40"> - <rect class="BoundingBox" stroke="none" fill="none" x="8438" y="9842" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 8502,9856 C 8530,9856 8552,9878 8552,9906 8552,9934 8530,9956 8502,9956 8474,9956 8452,9934 8452,9906 8452,9878 8474,9856 8502,9856 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8502,9856 C 8530,9856 8552,9878 8552,9906 8552,9934 8530,9956 8502,9956 8474,9956 8452,9934 8452,9906 8452,9878 8474,9856 8502,9856 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.OpenBezierShape"> - <g id="id41"> - <rect class="BoundingBox" stroke="none" fill="none" x="20491" y="6390" width="2120" height="4620"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20500,6400 C 20509,6408 20518,6416 20528,6424"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20555,6448 C 20564,6456 20573,6464 20582,6472"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20609,6496 C 20618,6504 20627,6512 20636,6520"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20662,6544 C 20671,6552 20680,6560 20688,6568"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20715,6592 C 20723,6600 20732,6608 20740,6616"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20766,6641 C 20775,6649 20783,6657 20792,6665"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20817,6689 C 20825,6697 20834,6705 20842,6713"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20867,6737 C 20875,6746 20883,6754 20892,6762"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20916,6786 C 20925,6795 20933,6803 20941,6811"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20967,6837 C 20975,6846 20984,6855 20992,6863"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21017,6889 C 21025,6898 21034,6906 21042,6915"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21067,6941 C 21075,6949 21083,6958 21091,6967"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21115,6993 C 21123,7002 21131,7010 21139,7019"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21163,7045 C 21171,7054 21179,7062 21186,7071"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21210,7097 C 21217,7106 21225,7115 21233,7124"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21256,7150 C 21263,7159 21271,7167 21278,7176"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21301,7203 C 21309,7212 21317,7221 21324,7231"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21347,7258 C 21355,7267 21363,7277 21370,7286"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21393,7314 C 21400,7323 21408,7332 21415,7342"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21437,7370 C 21444,7379 21452,7388 21459,7397"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21481,7426 C 21488,7435 21495,7444 21502,7454"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21523,7482 C 21530,7491 21537,7500 21544,7510"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21565,7538 C 21572,7548 21579,7557 21586,7566"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21606,7595 C 21613,7604 21620,7614 21626,7624"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21647,7653 C 21654,7663 21660,7673 21667,7683"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21687,7712 C 21694,7722 21700,7732 21707,7742"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21727,7772 C 21733,7782 21740,7792 21746,7801"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21765,7831 C 21771,7841 21778,7851 21784,7861"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21803,7891 C 21809,7901 21815,7911 21821,7921"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21839,7952 C 21845,7962 21851,7972 21857,7982"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21875,8012 C 21881,8022 21887,8032 21892,8043"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21910,8074 C 21916,8084 21922,8094 21927,8105"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21944,8136 C 21950,8147 21956,8157 21961,8167"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21978,8199 C 21983,8209 21989,8220 21994,8230"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22010,8262 C 22016,8272 22021,8283 22026,8293"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22042,8325 C 22047,8336 22052,8346 22058,8357"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22073,8389 C 22078,8400 22083,8410 22088,8421"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22103,8453 C 22107,8464 22112,8474 22117,8485"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22131,8518 C 22136,8528 22141,8539 22146,8550"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22159,8583 C 22164,8594 22169,8605 22173,8615"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22187,8648 C 22191,8659 22195,8670 22200,8681"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22213,8714 C 22217,8725 22221,8736 22226,8747"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22238,8780 C 22242,8791 22246,8803 22250,8814"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22262,8847 C 22266,8858 22270,8869 22274,8881"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22286,8914 C 22290,8925 22294,8937 22297,8948"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22308,8981 C 22312,8992 22316,9003 22319,9015"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22330,9048 C 22333,9060 22337,9071 22340,9082"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22350,9116 C 22354,9127 22357,9139 22360,9150"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22370,9184 C 22373,9195 22377,9207 22380,9218"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22389,9252 C 22392,9264 22395,9275 22398,9287"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22407,9321 C 22410,9333 22413,9344 22416,9356"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22424,9391 C 22427,9402 22430,9414 22433,9425"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22440,9459 C 22443,9471 22446,9482 22448,9494"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22456,9528 C 22458,9539 22461,9551 22463,9562"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22470,9597 C 22472,9608 22475,9620 22477,9632"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22484,9666 C 22486,9678 22488,9690 22490,9701"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22497,9736 C 22499,9748 22501,9760 22503,9771"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22509,9807 C 22511,9818 22512,9830 22514,9842"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22520,9878 C 22522,9889 22523,9901 22525,9913"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22530,9948 C 22532,9959 22533,9971 22535,9982"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22540,10017 C 22541,10028 22543,10040 22544,10052"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22548,10087 C 22550,10098 22551,10110 22553,10122"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22557,10157 C 22558,10168 22559,10180 22560,10192"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22564,10227 C 22565,10239 22566,10251 22567,10263"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22571,10298 C 22572,10310 22573,10322 22574,10334"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22577,10370 C 22577,10382 22578,10394 22579,10406"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22582,10442 C 22583,10454 22583,10465 22584,10477"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22586,10511 C 22587,10523 22588,10535 22588,10546"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22590,10581 C 22591,10593 22591,10604 22592,10616"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22593,10651 C 22594,10663 22594,10675 22595,10687"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22596,10722 C 22596,10734 22597,10746 22597,10757"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22598,10793 C 22598,10805 22599,10817 22599,10829"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22599,10865 C 22600,10877 22600,10889 22600,10901"/> - <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,10937 C 22600,10949 22600,10961 22600,10973"/> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id42"> - <rect class="BoundingBox" stroke="none" fill="none" x="2700" y="12331" width="804" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2950" y="12714"><tspan fill="rgb(0,0,0)" stroke="none">s0</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id43"> - <rect class="BoundingBox" stroke="none" fill="none" x="6300" y="12331" width="804" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6550" y="12714"><tspan fill="rgb(0,0,0)" stroke="none">s1</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id44"> - <rect class="BoundingBox" stroke="none" fill="none" x="10397" y="12331" width="804" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10647" y="12714"><tspan fill="rgb(0,0,0)" stroke="none">s2</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id45"> - <rect class="BoundingBox" stroke="none" fill="none" x="22197" y="12331" width="804" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="22447" y="12714"><tspan fill="rgb(0,0,0)" stroke="none">s3</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id46"> - <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="14699" width="3603" height="903"/> - <path fill="rgb(0,169,51)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 4900,15600 L 3100,15600 3100,14700 6700,14700 6700,15600 4900,15600 Z"/> - <path fill="none" stroke="rgb(52,101,164)" d="M 4900,15600 L 3100,15600 3100,14700 6700,14700 6700,15600 4900,15600 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id47"> - <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="13799" width="19503" height="903"/> - <path fill="rgb(114,159,207)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 12850,14700 L 3100,14700 3100,13800 22600,13800 22600,14700 12850,14700 Z"/> - <path fill="none" stroke="rgb(52,101,164)" d="M 12850,14700 L 3100,14700 3100,13800 22600,13800 22600,14700 12850,14700 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id48"> - <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="12899" width="19503" height="903"/> - <path fill="rgb(255,128,0)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 12850,13800 L 3100,13800 3100,12900 22600,12900 22600,13800 12850,13800 Z"/> - <path fill="none" stroke="rgb(52,101,164)" d="M 12850,13800 L 3100,13800 3100,12900 22600,12900 22600,13800 12850,13800 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id49"> - <rect class="BoundingBox" stroke="none" fill="none" x="3082" y="12882" width="37" height="2737"/> - <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 3100,12900 L 3100,15600"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id50"> - <rect class="BoundingBox" stroke="none" fill="none" x="10782" y="12882" width="37" height="1837"/> - <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 10800,12900 L 10800,14700"/> - </g> - </g> - <g class="com.sun.star.drawing.PolyPolygonShape"> - <g id="id51"> - <rect class="BoundingBox" stroke="none" fill="none" x="6699" y="14699" width="4103" height="903"/> - <path fill="rgb(0,169,51)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 6700,15600 L 6700,14700 10800,14700 6700,15600 Z"/> - <path fill="none" stroke="rgb(52,101,164)" d="M 6700,15600 L 6700,14700 10800,14700 6700,15600 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id52"> - <rect class="BoundingBox" stroke="none" fill="none" x="6682" y="12882" width="37" height="2737"/> - <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 6700,12900 L 6700,15600"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id53"> - <rect class="BoundingBox" stroke="none" fill="none" x="22582" y="12882" width="37" height="1837"/> - <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 22600,12900 L 22600,14700"/> - </g> - </g> - <g class="com.sun.star.drawing.PolyPolygonShape"> - <g id="id54"> - <rect class="BoundingBox" stroke="none" fill="none" x="14299" y="7429" width="1008" height="1826"/> - <path fill="rgb(141,29,117)" fill-opacity="0.4" stroke="rgb(255,255,255)" stroke-opacity="0.4" d="M 14500,9254 L 14300,7500 14953,7430 15306,9137 14500,9254 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id55"> - <rect class="BoundingBox" stroke="none" fill="none" x="14440" y="9186" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 14504,9200 C 14532,9200 14554,9222 14554,9250 14554,9278 14532,9300 14504,9300 14476,9300 14454,9278 14454,9250 14454,9222 14476,9200 14504,9200 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 14504,9200 C 14532,9200 14554,9222 14554,9250 14554,9278 14532,9300 14504,9300 14476,9300 14454,9278 14454,9250 14454,9222 14476,9200 14504,9200 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id56"> - <rect class="BoundingBox" stroke="none" fill="none" x="15242" y="9076" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 15306,9090 C 15334,9090 15356,9112 15356,9140 15356,9168 15334,9190 15306,9190 15278,9190 15256,9168 15256,9140 15256,9112 15278,9090 15306,9090 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 15306,9090 C 15334,9090 15356,9112 15356,9140 15356,9168 15334,9190 15306,9190 15278,9190 15256,9168 15256,9140 15256,9112 15278,9090 15306,9090 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id57"> - <rect class="BoundingBox" stroke="none" fill="none" x="14236" y="7435" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 14300,7449 C 14328,7449 14350,7471 14350,7499 14350,7527 14328,7549 14300,7549 14272,7549 14250,7527 14250,7499 14250,7471 14272,7449 14300,7449 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 14300,7449 C 14328,7449 14350,7471 14350,7499 14350,7527 14328,7549 14300,7549 14272,7549 14250,7527 14250,7499 14250,7471 14272,7449 14300,7449 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id58"> - <rect class="BoundingBox" stroke="none" fill="none" x="14878" y="7360" width="130" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 14942,7374 C 14970,7374 14992,7396 14992,7424 14992,7452 14970,7474 14942,7474 14914,7474 14892,7452 14892,7424 14892,7396 14914,7374 14942,7374 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 14942,7374 C 14970,7374 14992,7396 14992,7424 14992,7452 14970,7474 14942,7474 14914,7474 14892,7452 14892,7424 14892,7396 14914,7374 14942,7374 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id59"> - <rect class="BoundingBox" stroke="none" fill="none" x="14339" y="8302" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 14403,8316 C 14431,8316 14453,8338 14453,8366 14453,8394 14431,8416 14403,8416 14375,8416 14353,8394 14353,8366 14353,8338 14375,8316 14403,8316 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 14403,8316 C 14431,8316 14453,8338 14453,8366 14453,8394 14431,8416 14403,8416 14375,8416 14353,8394 14353,8366 14353,8338 14375,8316 14403,8316 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id60"> - <rect class="BoundingBox" stroke="none" fill="none" x="15069" y="8211" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 15133,8225 C 15161,8225 15183,8247 15183,8275 15183,8303 15161,8325 15133,8325 15105,8325 15083,8303 15083,8275 15083,8247 15105,8225 15133,8225 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 15133,8225 C 15161,8225 15183,8247 15183,8275 15183,8303 15161,8325 15133,8325 15105,8325 15083,8303 15083,8275 15083,8247 15105,8225 15133,8225 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id61"> - <rect class="BoundingBox" stroke="none" fill="none" x="8563" y="8531" width="1638" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8813" y="8914"><tspan fill="rgb(128,0,128)" stroke="none">sampling</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.OpenBezierShape"> - <g id="id62"> - <rect class="BoundingBox" stroke="none" fill="none" x="8580" y="8856" width="5799" height="263"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 8594,9100 C 8600,9101 8613,9101 8632,9101"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 8692,9102 C 8705,9103 8720,9103 8736,9103"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 8787,9103 C 8806,9103 8825,9103 8846,9103"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 8895,9104 C 8910,9104 8926,9104 8942,9104"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 8992,9104 C 9009,9104 9026,9104 9045,9104"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9100,9104 C 9117,9104 9135,9104 9153,9104"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9200,9104 C 9216,9104 9233,9104 9249,9104"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9299,9104 C 9316,9104 9334,9104 9351,9104"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9404,9104 C 9422,9104 9441,9104 9459,9104"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9510,9104 C 9526,9104 9542,9104 9558,9104"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9608,9104 C 9624,9104 9641,9104 9658,9104"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9709,9104 C 9726,9104 9744,9104 9761,9104"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9814,9103 C 9832,9103 9850,9103 9868,9103"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9919,9103 C 9935,9103 9951,9103 9968,9103"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10018,9103 C 10034,9103 10051,9103 10068,9103"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10119,9103 C 10136,9103 10153,9103 10170,9103"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10222,9103 C 10239,9103 10257,9103 10274,9103"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10327,9103 C 10344,9103 10361,9103 10378,9103"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10428,9102 C 10445,9102 10461,9102 10478,9102"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10529,9102 C 10545,9102 10562,9102 10579,9102"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10631,9102 C 10648,9102 10665,9102 10682,9102"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10734,9102 C 10751,9102 10768,9102 10786,9102"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10838,9102 C 10855,9102 10871,9102 10888,9102"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10939,9102 C 10955,9102 10972,9101 10989,9101"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11040,9101 C 11057,9101 11074,9101 11091,9101"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11142,9101 C 11159,9101 11176,9101 11193,9101"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11245,9101 C 11262,9101 11279,9101 11296,9101"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11348,9101 C 11365,9101 11382,9101 11399,9101"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11450,9101 C 11467,9101 11484,9101 11501,9101"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11552,9101 C 11569,9101 11586,9101 11603,9101"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11654,9100 C 11671,9100 11688,9100 11705,9100"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11756,9100 C 11773,9100 11790,9100 11807,9100"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11858,9100 C 11875,9100 11892,9100 11909,9100"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11961,9100 C 11978,9100 11995,9100 12012,9100"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12063,9100 C 12080,9100 12097,9100 12114,9100"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12165,9100 C 12182,9100 12199,9100 12216,9100"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12267,9100 C 12284,9100 12301,9100 12318,9100"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12368,9100 C 12379,9100 12389,9100 12400,9100 12406,9100 12413,9100 12419,9100"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12470,9100 C 12487,9100 12504,9100 12521,9100"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12572,9099 C 12589,9099 12606,9099 12623,9099"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12674,9098 C 12691,9098 12708,9097 12725,9097"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12776,9096 C 12793,9095 12810,9095 12827,9094"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12878,9092 C 12895,9092 12911,9091 12928,9091"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12979,9088 C 12996,9088 13013,9087 13031,9086"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13081,9083 C 13098,9082 13115,9081 13132,9080"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13183,9077 C 13200,9076 13217,9074 13234,9073"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13285,9069 C 13302,9068 13319,9067 13336,9065"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13386,9061 C 13403,9059 13420,9058 13437,9056"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13488,9051 C 13505,9049 13522,9047 13539,9045"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13589,9040 C 13606,9038 13623,9036 13640,9034"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13691,9027 C 13707,9025 13724,9023 13741,9021"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13791,9014 C 13808,9012 13825,9009 13842,9007"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13893,8999 C 13909,8997 13926,8994 13942,8992"/> - <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13993,8984 C 14010,8981 14027,8978 14044,8975"/> - <path fill="rgb(141,29,117)" stroke="none" d="M 14082,9065 L 14068,9094 14378,8912 14023,8856 14046,8877 14065,8902 14081,8932 14091,8965 14095,8999 14091,9033 14082,9065 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id63"> - <rect class="BoundingBox" stroke="none" fill="none" x="3138" y="15144" width="3577" height="29"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3152,15158 L 3203,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3254,15158 L 3305,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3356,15158 L 3407,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3458,15158 L 3509,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3560,15158 L 3611,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3662,15158 L 3713,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3764,15158 L 3815,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3866,15158 L 3917,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3968,15158 L 4019,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4070,15158 L 4121,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4172,15158 L 4223,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4274,15158 L 4325,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4376,15158 L 4427,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4478,15158 L 4529,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4580,15158 L 4631,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4682,15158 L 4733,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4784,15158 L 4835,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4886,15158 L 4937,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4988,15158 L 5039,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5090,15158 L 5141,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5192,15158 L 5243,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5294,15158 L 5345,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5396,15158 L 5447,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5498,15158 L 5549,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5600,15158 L 5651,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5702,15158 L 5753,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5804,15158 L 5855,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5906,15158 L 5957,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6008,15158 L 6059,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6110,15158 L 6161,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6212,15158 L 6263,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6314,15158 L 6365,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6416,15158 L 6467,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6518,15158 L 6569,15158"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6620,15158 L 6671,15158"/> - </g> - </g> - <g class="com.sun.star.drawing.PolyPolygonShape"> - <g id="id64"> - <rect class="BoundingBox" stroke="none" fill="none" x="7700" y="12900" width="801" height="2485"/> - <path fill="rgb(141,29,117)" fill-opacity="0.4" stroke="rgb(255,255,255)" stroke-opacity="0.4" d="M 7700,15384 L 7700,12900 8500,12900 8500,15209 7700,15384 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.PolyPolygonShape"> - <g id="id65"> - <rect class="BoundingBox" stroke="none" fill="none" x="15100" y="12900" width="801" height="1801"/> - <path fill="rgb(141,29,117)" fill-opacity="0.4" stroke="rgb(255,255,255)" stroke-opacity="0.4" d="M 15100,14700 L 15100,12900 15900,12900 15900,14700 15100,14700 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id66"> - <rect class="BoundingBox" stroke="none" fill="none" x="7686" y="12876" width="829" height="929"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 8100,13790 L 7700,13790 7700,12890 8500,12890 8500,13790 8100,13790 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8100,13790 L 7700,13790 7700,12890 8500,12890 8500,13790 8100,13790 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id67"> - <rect class="BoundingBox" stroke="none" fill="none" x="7634" y="12832" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 7698,12846 C 7726,12846 7748,12868 7748,12896 7748,12924 7726,12946 7698,12946 7670,12946 7648,12924 7648,12896 7648,12868 7670,12846 7698,12846 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 7698,12846 C 7726,12846 7748,12868 7748,12896 7748,12924 7726,12946 7698,12946 7670,12946 7648,12924 7648,12896 7648,12868 7670,12846 7698,12846 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id68"> - <rect class="BoundingBox" stroke="none" fill="none" x="8434" y="12832" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 8498,12846 C 8526,12846 8548,12868 8548,12896 8548,12924 8526,12946 8498,12946 8470,12946 8448,12924 8448,12896 8448,12868 8470,12846 8498,12846 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8498,12846 C 8526,12846 8548,12868 8548,12896 8548,12924 8526,12946 8498,12946 8470,12946 8448,12924 8448,12896 8448,12868 8470,12846 8498,12846 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id69"> - <rect class="BoundingBox" stroke="none" fill="none" x="8434" y="13732" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 8498,13746 C 8526,13746 8548,13768 8548,13796 8548,13824 8526,13846 8498,13846 8470,13846 8448,13824 8448,13796 8448,13768 8470,13746 8498,13746 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8498,13746 C 8526,13746 8548,13768 8548,13796 8548,13824 8526,13846 8498,13846 8470,13846 8448,13824 8448,13796 8448,13768 8470,13746 8498,13746 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id70"> - <rect class="BoundingBox" stroke="none" fill="none" x="7634" y="13732" width="129" height="129"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 7698,13746 C 7726,13746 7748,13768 7748,13796 7748,13824 7726,13846 7698,13846 7670,13846 7648,13824 7648,13796 7648,13768 7670,13746 7698,13746 Z"/> - <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 7698,13746 C 7726,13746 7748,13768 7748,13796 7748,13824 7726,13846 7698,13846 7670,13846 7648,13824 7648,13796 7648,13768 7670,13746 7698,13746 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id71"> - <rect class="BoundingBox" stroke="none" fill="none" x="3186" y="13342" width="19429" height="29"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3200,13356 L 3251,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3302,13356 L 3353,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3404,13356 L 3455,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3506,13356 L 3557,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3608,13356 L 3659,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3710,13356 L 3761,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3812,13356 L 3863,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3914,13356 L 3965,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4016,13356 L 4067,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4118,13356 L 4169,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4220,13356 L 4271,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4322,13356 L 4373,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4424,13356 L 4475,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4526,13356 L 4577,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4628,13356 L 4679,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4730,13356 L 4781,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4832,13356 L 4883,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4934,13356 L 4985,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5036,13356 L 5087,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5138,13356 L 5189,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5240,13356 L 5291,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5342,13356 L 5393,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5444,13356 L 5495,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5546,13356 L 5597,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5648,13356 L 5699,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5750,13356 L 5801,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5852,13356 L 5903,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5954,13356 L 6005,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6056,13356 L 6107,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6158,13356 L 6209,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6260,13356 L 6311,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6362,13356 L 6413,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6464,13356 L 6515,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6566,13356 L 6617,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6668,13356 L 6719,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6770,13356 L 6821,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6872,13356 L 6923,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6974,13356 L 7025,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7076,13356 L 7127,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7178,13356 L 7229,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7280,13356 L 7331,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7382,13356 L 7433,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7484,13356 L 7535,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7586,13356 L 7637,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7688,13356 L 7739,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7790,13356 L 7841,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7892,13356 L 7943,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7994,13356 L 8045,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8096,13356 L 8147,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8198,13356 L 8249,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8300,13356 L 8351,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8402,13356 L 8453,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8504,13356 L 8555,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8606,13356 L 8657,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8708,13356 L 8759,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8810,13356 L 8861,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8912,13356 L 8963,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9014,13356 L 9065,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9116,13356 L 9167,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9218,13356 L 9269,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9320,13356 L 9371,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9422,13356 L 9473,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9524,13356 L 9575,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9626,13356 L 9677,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9728,13356 L 9779,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9830,13356 L 9881,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9932,13356 L 9983,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10034,13356 L 10085,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10136,13356 L 10187,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10238,13356 L 10289,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10340,13356 L 10391,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10442,13356 L 10493,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10544,13356 L 10595,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10646,13356 L 10697,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10748,13356 L 10799,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10850,13356 L 10901,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10952,13356 L 11003,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11054,13356 L 11105,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11156,13356 L 11207,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11258,13356 L 11309,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11360,13356 L 11411,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11462,13356 L 11513,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11564,13356 L 11615,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11666,13356 L 11717,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11768,13356 L 11819,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11870,13356 L 11921,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11972,13356 L 12023,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12074,13356 L 12125,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12176,13356 L 12227,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12278,13356 L 12329,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12380,13356 L 12431,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12482,13356 L 12533,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12584,13356 L 12635,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12686,13356 L 12737,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12788,13356 L 12839,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12890,13356 L 12941,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12992,13356 L 13043,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13094,13356 L 13145,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13196,13356 L 13247,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13298,13356 L 13349,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13400,13356 L 13451,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13502,13356 L 13553,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13604,13356 L 13655,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13706,13356 L 13757,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13808,13356 L 13859,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13910,13356 L 13961,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14012,13356 L 14063,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14114,13356 L 14165,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14216,13356 L 14267,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14318,13356 L 14369,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14420,13356 L 14471,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14522,13356 L 14573,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14624,13356 L 14675,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14726,13356 L 14777,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14828,13356 L 14879,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14930,13356 L 14981,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15032,13356 L 15083,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15134,13356 L 15185,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15236,13356 L 15287,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15338,13356 L 15389,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15440,13356 L 15491,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15542,13356 L 15593,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15644,13356 L 15695,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15746,13356 L 15797,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15848,13356 L 15899,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15950,13356 L 16001,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16052,13356 L 16103,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16154,13356 L 16205,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16256,13356 L 16307,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16358,13356 L 16409,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16460,13356 L 16511,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16562,13356 L 16613,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16664,13356 L 16715,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16766,13356 L 16817,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16868,13356 L 16919,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16970,13356 L 17021,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17072,13356 L 17123,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17174,13356 L 17225,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17276,13356 L 17327,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17378,13356 L 17429,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17480,13356 L 17531,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17582,13356 L 17633,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17684,13356 L 17735,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17786,13356 L 17837,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17888,13356 L 17939,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17990,13356 L 18041,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18092,13356 L 18143,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18194,13356 L 18245,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18296,13356 L 18347,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18398,13356 L 18449,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18500,13356 L 18551,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18602,13356 L 18653,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18704,13356 L 18755,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18806,13356 L 18857,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18908,13356 L 18959,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19010,13356 L 19061,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19112,13356 L 19163,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19214,13356 L 19265,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19316,13356 L 19367,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19418,13356 L 19469,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19520,13356 L 19571,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19622,13356 L 19673,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19724,13356 L 19775,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19826,13356 L 19877,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19928,13356 L 19979,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20030,13356 L 20081,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20132,13356 L 20183,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20234,13356 L 20285,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20336,13356 L 20387,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20438,13356 L 20489,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20540,13356 L 20591,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20642,13356 L 20693,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20744,13356 L 20795,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20846,13356 L 20897,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20948,13356 L 20999,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21050,13356 L 21101,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21152,13356 L 21203,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21254,13356 L 21305,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21356,13356 L 21407,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21458,13356 L 21509,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21560,13356 L 21611,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21662,13356 L 21713,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21764,13356 L 21815,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21866,13356 L 21917,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21968,13356 L 22019,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 22070,13356 L 22121,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 22172,13356 L 22223,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 22274,13356 L 22325,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 22376,13356 L 22427,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 22478,13356 L 22529,13356"/> - <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 22580,13356 L 22600,13356"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id72"> - <rect class="BoundingBox" stroke="none" fill="none" x="3186" y="14235" width="19429" height="29"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3200,14249 L 3251,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3302,14249 L 3353,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3404,14249 L 3455,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3506,14249 L 3557,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3608,14249 L 3659,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3710,14249 L 3761,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3812,14249 L 3863,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3914,14249 L 3965,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4016,14249 L 4067,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4118,14249 L 4169,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4220,14249 L 4271,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4322,14249 L 4373,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4424,14249 L 4475,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4526,14249 L 4577,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4628,14249 L 4679,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4730,14249 L 4781,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4832,14249 L 4883,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4934,14249 L 4985,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5036,14249 L 5087,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5138,14249 L 5189,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5240,14249 L 5291,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5342,14249 L 5393,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5444,14249 L 5495,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5546,14249 L 5597,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5648,14249 L 5699,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5750,14249 L 5801,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5852,14249 L 5903,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5954,14249 L 6005,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6056,14249 L 6107,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6158,14249 L 6209,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6260,14249 L 6311,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6362,14249 L 6413,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6464,14249 L 6515,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6566,14249 L 6617,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6668,14249 L 6719,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6770,14249 L 6821,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6872,14249 L 6923,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6974,14249 L 7025,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7076,14249 L 7127,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7178,14249 L 7229,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7280,14249 L 7331,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7382,14249 L 7433,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7484,14249 L 7535,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7586,14249 L 7637,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7688,14249 L 7739,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7790,14249 L 7841,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7892,14249 L 7943,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7994,14249 L 8045,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8096,14249 L 8147,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8198,14249 L 8249,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8300,14249 L 8351,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8402,14249 L 8453,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8504,14249 L 8555,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8606,14249 L 8657,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8708,14249 L 8759,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8810,14249 L 8861,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8912,14249 L 8963,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9014,14249 L 9065,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9116,14249 L 9167,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9218,14249 L 9269,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9320,14249 L 9371,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9422,14249 L 9473,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9524,14249 L 9575,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9626,14249 L 9677,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9728,14249 L 9779,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9830,14249 L 9881,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9932,14249 L 9983,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10034,14249 L 10085,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10136,14249 L 10187,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10238,14249 L 10289,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10340,14249 L 10391,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10442,14249 L 10493,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10544,14249 L 10595,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10646,14249 L 10697,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10748,14249 L 10799,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10850,14249 L 10901,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10952,14249 L 11003,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11054,14249 L 11105,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11156,14249 L 11207,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11258,14249 L 11309,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11360,14249 L 11411,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11462,14249 L 11513,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11564,14249 L 11615,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11666,14249 L 11717,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11768,14249 L 11819,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11870,14249 L 11921,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11972,14249 L 12023,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12074,14249 L 12125,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12176,14249 L 12227,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12278,14249 L 12329,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12380,14249 L 12431,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12482,14249 L 12533,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12584,14249 L 12635,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12686,14249 L 12737,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12788,14249 L 12839,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12890,14249 L 12941,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12992,14249 L 13043,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13094,14249 L 13145,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13196,14249 L 13247,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13298,14249 L 13349,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13400,14249 L 13451,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13502,14249 L 13553,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13604,14249 L 13655,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13706,14249 L 13757,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13808,14249 L 13859,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13910,14249 L 13961,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14012,14249 L 14063,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14114,14249 L 14165,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14216,14249 L 14267,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14318,14249 L 14369,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14420,14249 L 14471,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14522,14249 L 14573,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14624,14249 L 14675,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14726,14249 L 14777,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14828,14249 L 14879,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14930,14249 L 14981,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15032,14249 L 15083,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15134,14249 L 15185,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15236,14249 L 15287,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15338,14249 L 15389,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15440,14249 L 15491,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15542,14249 L 15593,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15644,14249 L 15695,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15746,14249 L 15797,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15848,14249 L 15899,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15950,14249 L 16001,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16052,14249 L 16103,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16154,14249 L 16205,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16256,14249 L 16307,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16358,14249 L 16409,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16460,14249 L 16511,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16562,14249 L 16613,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16664,14249 L 16715,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16766,14249 L 16817,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16868,14249 L 16919,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16970,14249 L 17021,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17072,14249 L 17123,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17174,14249 L 17225,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17276,14249 L 17327,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17378,14249 L 17429,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17480,14249 L 17531,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17582,14249 L 17633,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17684,14249 L 17735,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17786,14249 L 17837,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17888,14249 L 17939,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17990,14249 L 18041,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18092,14249 L 18143,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18194,14249 L 18245,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18296,14249 L 18347,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18398,14249 L 18449,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18500,14249 L 18551,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18602,14249 L 18653,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18704,14249 L 18755,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18806,14249 L 18857,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18908,14249 L 18959,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19010,14249 L 19061,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19112,14249 L 19163,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19214,14249 L 19265,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19316,14249 L 19367,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19418,14249 L 19469,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19520,14249 L 19571,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19622,14249 L 19673,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19724,14249 L 19775,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19826,14249 L 19877,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19928,14249 L 19979,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20030,14249 L 20081,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20132,14249 L 20183,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20234,14249 L 20285,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20336,14249 L 20387,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20438,14249 L 20489,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20540,14249 L 20591,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20642,14249 L 20693,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20744,14249 L 20795,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20846,14249 L 20897,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20948,14249 L 20999,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21050,14249 L 21101,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21152,14249 L 21203,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21254,14249 L 21305,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21356,14249 L 21407,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21458,14249 L 21509,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21560,14249 L 21611,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21662,14249 L 21713,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21764,14249 L 21815,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21866,14249 L 21917,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21968,14249 L 22019,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 22070,14249 L 22121,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 22172,14249 L 22223,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 22274,14249 L 22325,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 22376,14249 L 22427,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 22478,14249 L 22529,14249"/> - <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 22580,14249 L 22600,14249"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id73"> - <rect class="BoundingBox" stroke="none" fill="none" x="6686" y="14686" width="4129" height="487"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10800,14700 L 10749,14706"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10699,14711 L 10648,14717"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10597,14723 L 10547,14728"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10496,14734 L 10445,14740"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10395,14745 L 10344,14751"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10293,14757 L 10242,14762"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10192,14768 L 10141,14774"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10090,14779 L 10040,14785"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9989,14791 L 9938,14796"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9888,14802 L 9837,14808"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9786,14813 L 9736,14819"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9685,14825 L 9634,14830"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9584,14836 L 9533,14842"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9482,14847 L 9432,14853"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9381,14859 L 9330,14864"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9279,14870 L 9229,14876"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9178,14881 L 9127,14887"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9077,14893 L 9026,14898"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8975,14904 L 8925,14909"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8874,14915 L 8823,14921"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8773,14926 L 8722,14932"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8671,14938 L 8621,14943"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8570,14949 L 8519,14955"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8469,14960 L 8418,14966"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8367,14972 L 8316,14977"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8266,14983 L 8215,14989"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8164,14994 L 8114,15000"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8063,15006 L 8012,15011"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7962,15017 L 7911,15023"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7860,15028 L 7810,15034"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7759,15040 L 7708,15045"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7658,15051 L 7607,15057"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7556,15062 L 7505,15068"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7455,15074 L 7404,15079"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7353,15085 L 7303,15091"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7252,15096 L 7201,15102"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7151,15108 L 7100,15113"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7049,15119 L 6999,15125"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6948,15130 L 6897,15136"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6847,15142 L 6796,15147"/> - <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6745,15153 L 6700,15158"/> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id74"> - <rect class="BoundingBox" stroke="none" fill="none" x="18100" y="7986" width="1400" height="1115"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="18350" y="8560"><tspan fill="rgb(0,0,0)" stroke="none">P</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id75"> - <rect class="BoundingBox" stroke="none" fill="none" x="19800" y="14600" width="1315" height="1115"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="20050" y="15174"><tspan fill="rgb(0,0,0)" stroke="none">P‘</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id76"> - <rect class="BoundingBox" stroke="none" fill="none" x="17799" y="7799" width="303" height="303"/> - <path fill="rgb(0,0,0)" stroke="none" d="M 17950,7800 C 18035,7800 18100,7865 18100,7950 18100,8035 18035,8100 17950,8100 17865,8100 17800,8035 17800,7950 17800,7865 17865,7800 17950,7800 Z"/> - <path fill="none" stroke="rgb(0,0,0)" d="M 17950,7800 C 18035,7800 18100,7865 18100,7950 18100,8035 18035,8100 17950,8100 17865,8100 17800,8035 17800,7950 17800,7865 17865,7800 17950,7800 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.CustomShape"> - <g id="id77"> - <rect class="BoundingBox" stroke="none" fill="none" x="19701" y="14352" width="301" height="301"/> - <path fill="rgb(128,0,128)" stroke="none" d="M 19851,14352 C 19936,14352 20001,14417 20001,14502 20001,14587 19936,14652 19851,14652 19766,14652 19701,14587 19701,14502 19701,14417 19766,14352 19851,14352 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id78"> - <rect class="BoundingBox" stroke="none" fill="none" x="7549" y="7789" width="1130" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7799" y="8172"><tspan fill="rgb(255,255,255)" stroke="none">quad</tspan></tspan></tspan></text> - </g> - </g> - <g class="Group"> - <g class="com.sun.star.drawing.LineShape"> - <g id="id79"> - <rect class="BoundingBox" stroke="none" fill="none" x="2782" y="10424" width="1219" height="353"/> - <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 2800,10600 L 3743,10600"/> - <path fill="rgb(0,0,0)" stroke="none" d="M 4000,10600 L 3719,10424 3719,10776 4000,10600 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id80"> - <rect class="BoundingBox" stroke="none" fill="none" x="2624" y="9400" width="353" height="1219"/> - <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 2800,10600 L 2800,9657"/> - <path fill="rgb(0,0,0)" stroke="none" d="M 2800,9400 L 2624,9681 2976,9681 2800,9400 Z"/> - </g> - </g> - </g> - <g class="Group"> - <g class="com.sun.star.drawing.LineShape"> - <g id="id81"> - <rect class="BoundingBox" stroke="none" fill="none" x="2782" y="15724" width="1219" height="353"/> - <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 2800,15900 L 3743,15900"/> - <path fill="rgb(0,0,0)" stroke="none" d="M 4000,15900 L 3719,15724 3719,16076 4000,15900 Z"/> - </g> - </g> - <g class="com.sun.star.drawing.LineShape"> - <g id="id82"> - <rect class="BoundingBox" stroke="none" fill="none" x="2624" y="14700" width="353" height="1219"/> - <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 2800,15900 L 2800,14957"/> - <path fill="rgb(0,0,0)" stroke="none" d="M 2800,14700 L 2624,14981 2976,14981 2800,14700 Z"/> - </g> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id83"> - <rect class="BoundingBox" stroke="none" fill="none" x="2478" y="8788" width="804" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2728" y="9171"><tspan fill="rgb(0,0,0)" stroke="none">y</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id84"> - <rect class="BoundingBox" stroke="none" fill="none" x="3897" y="10300" width="804" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4147" y="10683"><tspan fill="rgb(0,0,0)" stroke="none">x</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id85"> - <rect class="BoundingBox" stroke="none" fill="none" x="2478" y="14100" width="804" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2728" y="14483"><tspan fill="rgb(0,0,0)" stroke="none">t</tspan></tspan></tspan></text> - </g> - </g> - <g class="com.sun.star.drawing.TextShape"> - <g id="id86"> - <rect class="BoundingBox" stroke="none" fill="none" x="3897" y="15612" width="804" height="570"/> - <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4147" y="15995"><tspan fill="rgb(0,0,0)" stroke="none">s</tspan></tspan></tspan></text> - </g> - </g> - </g> - </g> - </g> - </g> - </g> +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.2" width="210.71mm" height="114.81mm" viewBox="1929 4700 21071 11481" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve"> + <defs class="ClipPathGroup"> + <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse"> + <rect x="1929" y="4700" width="21071" height="11481"/> + </clipPath> + <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse"> + <rect x="1950" y="4711" width="21029" height="11459"/> + </clipPath> + </defs> + <defs> + <font id="EmbeddedFont_1" horiz-adv-x="2048"> + <font-face font-family="Liberation Sans embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="423"/> + <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/> + <glyph unicode="‘" horiz-adv-x="239" d="M 127,952 L 127,1098 C 127,1163 133,1220 146,1269 158,1318 178,1364 207,1409 L 328,1409 C 265,1318 233,1230 233,1147 L 322,1147 322,952 127,952 Z"/> + <glyph unicode="y" horiz-adv-x="980" d="M 191,-425 C 142,-425 100,-421 67,-414 L 67,-279 C 92,-283 120,-285 151,-285 263,-285 352,-203 417,-38 L 434,5 5,1082 197,1082 425,484 C 428,475 432,464 437,451 442,438 457,394 482,320 507,246 521,205 523,196 L 593,393 830,1082 1020,1082 604,0 C 559,-115 518,-201 479,-257 440,-314 398,-356 351,-383 304,-411 250,-425 191,-425 Z"/> + <glyph unicode="x" horiz-adv-x="980" d="M 801,0 L 510,444 217,0 23,0 408,556 41,1082 240,1082 510,661 778,1082 979,1082 612,558 1002,0 801,0 Z"/> + <glyph unicode="u" horiz-adv-x="874" d="M 314,1082 L 314,396 C 314,325 321,269 335,230 349,191 371,162 402,145 433,128 478,119 537,119 624,119 692,149 742,208 792,267 817,350 817,455 L 817,1082 997,1082 997,231 C 997,105 999,28 1003,0 L 833,0 C 832,3 832,12 831,27 830,42 830,59 829,78 828,97 826,132 825,185 L 822,185 C 781,110 733,58 679,27 624,-4 557,-20 476,-20 357,-20 271,10 216,69 161,128 133,225 133,361 L 133,1082 314,1082 Z"/> + <glyph unicode="t" horiz-adv-x="531" d="M 554,8 C 495,-8 434,-16 372,-16 228,-16 156,66 156,229 L 156,951 31,951 31,1082 163,1082 216,1324 336,1324 336,1082 536,1082 536,951 336,951 336,268 C 336,216 345,180 362,159 379,138 408,127 450,127 474,127 509,132 554,141 L 554,8 Z"/> + <glyph unicode="s" horiz-adv-x="927" d="M 950,299 C 950,197 912,118 835,63 758,8 650,-20 511,-20 376,-20 273,2 200,47 127,91 79,160 57,254 L 216,285 C 231,227 263,185 311,158 359,131 426,117 511,117 602,117 669,131 712,159 754,187 775,229 775,285 775,328 760,362 731,389 702,416 654,438 589,455 L 460,489 C 357,516 283,542 240,568 196,593 162,624 137,661 112,698 100,743 100,796 100,895 135,970 206,1022 276,1073 378,1099 513,1099 632,1099 727,1078 798,1036 868,994 912,927 931,834 L 769,814 C 759,862 732,899 689,925 645,950 586,963 513,963 432,963 372,951 333,926 294,901 275,864 275,814 275,783 283,758 299,738 315,718 339,701 370,687 401,673 467,654 568,629 663,605 732,583 774,563 816,542 849,520 874,495 898,470 917,442 930,410 943,377 950,340 950,299 Z"/> + <glyph unicode="r" horiz-adv-x="530" d="M 142,0 L 142,830 C 142,906 140,990 136,1082 L 306,1082 C 311,959 314,886 314,861 L 318,861 C 347,954 380,1017 417,1051 454,1085 507,1102 575,1102 599,1102 623,1099 648,1092 L 648,927 C 624,934 592,937 552,937 477,937 420,905 381,841 342,776 322,684 322,564 L 322,0 142,0 Z"/> + <glyph unicode="q" horiz-adv-x="927" d="M 484,-20 C 347,-20 246,26 182,119 118,212 86,351 86,536 86,913 219,1102 484,1102 566,1102 634,1088 687,1059 740,1030 785,981 821,914 L 823,914 C 823,934 824,969 827,1018 830,1067 832,1093 835,1096 L 1008,1096 C 1003,1057 1001,958 1001,801 L 1001,-425 821,-425 821,14 825,178 823,178 C 787,107 743,56 690,26 637,-5 569,-20 484,-20 Z M 821,554 C 821,695 798,799 752,867 706,935 633,969 532,969 441,969 375,935 335,867 295,799 275,691 275,542 275,391 295,282 336,217 376,152 441,119 530,119 632,119 706,155 752,228 798,301 821,409 821,554 Z"/> + <glyph unicode="p" horiz-adv-x="927" d="M 1053,546 C 1053,169 920,-20 655,-20 488,-20 376,43 319,168 L 314,168 C 317,163 318,106 318,-2 L 318,-425 138,-425 138,861 C 138,972 136,1046 132,1082 L 306,1082 C 307,1079 308,1070 309,1054 310,1037 312,1012 314,978 315,944 316,921 316,908 L 320,908 C 352,975 394,1024 447,1055 500,1086 569,1101 655,1101 788,1101 888,1056 954,967 1020,878 1053,737 1053,546 Z M 864,542 C 864,693 844,800 803,865 762,930 698,962 609,962 538,962 482,947 442,917 401,887 371,840 350,777 329,713 318,630 318,528 318,386 341,281 386,214 431,147 505,113 607,113 696,113 762,146 803,212 844,277 864,387 864,542 Z"/> + <glyph unicode="o" horiz-adv-x="980" d="M 1053,542 C 1053,353 1011,212 928,119 845,26 724,-20 565,-20 407,-20 288,28 207,125 126,221 86,360 86,542 86,915 248,1102 571,1102 736,1102 858,1057 936,966 1014,875 1053,733 1053,542 Z M 864,542 C 864,691 842,800 798,868 753,935 679,969 574,969 469,969 393,935 346,866 299,797 275,689 275,542 275,399 298,292 345,221 391,149 464,113 563,113 671,113 748,148 795,217 841,286 864,395 864,542 Z"/> + <glyph unicode="n" horiz-adv-x="874" d="M 825,0 L 825,686 C 825,757 818,813 804,852 790,891 768,920 737,937 706,954 661,963 602,963 515,963 447,933 397,874 347,815 322,732 322,627 L 322,0 142,0 142,851 C 142,977 140,1054 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 313,950 314,897 L 317,897 C 358,972 406,1025 461,1056 515,1087 582,1102 663,1102 782,1102 869,1073 924,1014 979,955 1006,857 1006,721 L 1006,0 825,0 Z"/> + <glyph unicode="m" horiz-adv-x="1457" d="M 768,0 L 768,686 C 768,791 754,863 725,903 696,943 645,963 570,963 493,963 433,934 388,875 343,816 321,734 321,627 L 321,0 142,0 142,851 C 142,977 140,1054 136,1082 L 306,1082 C 307,1079 307,1070 308,1055 309,1040 310,1024 311,1005 312,986 313,950 314,897 L 317,897 C 356,974 400,1027 450,1057 500,1087 561,1102 633,1102 715,1102 780,1086 828,1053 875,1020 908,968 927,897 L 930,897 C 967,970 1013,1022 1066,1054 1119,1086 1183,1102 1258,1102 1367,1102 1447,1072 1497,1013 1546,954 1571,856 1571,721 L 1571,0 1393,0 1393,686 C 1393,791 1379,863 1350,903 1321,943 1270,963 1195,963 1116,963 1055,934 1012,876 968,817 946,734 946,627 L 946,0 768,0 Z"/> + <glyph unicode="l" horiz-adv-x="187" d="M 138,0 L 138,1484 318,1484 318,0 138,0 Z"/> + <glyph unicode="i" horiz-adv-x="187" d="M 137,1312 L 137,1484 317,1484 317,1312 137,1312 Z M 137,0 L 137,1082 317,1082 317,0 137,0 Z"/> + <glyph unicode="g" horiz-adv-x="927" d="M 548,-425 C 430,-425 336,-402 266,-355 196,-309 151,-243 131,-158 L 312,-132 C 324,-182 351,-220 392,-247 433,-274 486,-288 553,-288 732,-288 822,-183 822,27 L 822,201 820,201 C 786,132 739,80 680,45 621,10 551,-8 472,-8 339,-8 242,36 180,124 117,212 86,350 86,539 86,730 120,872 187,963 254,1054 355,1099 492,1099 569,1099 635,1082 692,1047 748,1012 791,962 822,897 L 824,897 C 824,917 825,952 828,1001 831,1050 833,1077 836,1082 L 1007,1082 C 1003,1046 1001,971 1001,858 L 1001,31 C 1001,-273 850,-425 548,-425 Z M 822,541 C 822,629 810,705 786,769 762,832 728,881 685,915 641,948 591,965 536,965 444,965 377,932 335,865 293,798 272,690 272,541 272,393 292,287 331,222 370,157 438,125 533,125 590,125 640,142 684,175 728,208 762,256 786,319 810,381 822,455 822,541 Z"/> + <glyph unicode="e" horiz-adv-x="980" d="M 276,503 C 276,379 302,283 353,216 404,149 479,115 578,115 656,115 719,131 766,162 813,193 844,233 861,281 L 1019,236 C 954,65 807,-20 578,-20 418,-20 296,28 213,123 129,218 87,360 87,548 87,727 129,864 213,959 296,1054 416,1102 571,1102 889,1102 1048,910 1048,527 L 1048,503 276,503 Z M 862,641 C 852,755 823,838 775,891 727,943 658,969 568,969 481,969 412,940 361,882 310,823 282,743 278,641 L 862,641 Z"/> + <glyph unicode="d" horiz-adv-x="927" d="M 821,174 C 788,105 744,55 689,25 634,-5 565,-20 484,-20 347,-20 247,26 183,118 118,210 86,349 86,536 86,913 219,1102 484,1102 566,1102 634,1087 689,1057 744,1027 788,979 821,914 L 823,914 821,1035 821,1484 1001,1484 1001,223 C 1001,110 1003,36 1007,0 L 835,0 C 833,11 831,35 829,74 826,113 825,146 825,174 L 821,174 Z M 275,542 C 275,391 295,282 335,217 375,152 440,119 530,119 632,119 706,154 752,225 798,296 821,405 821,554 821,697 798,802 752,869 706,936 633,969 532,969 441,969 376,936 336,869 295,802 275,693 275,542 Z"/> + <glyph unicode="c" horiz-adv-x="901" d="M 275,546 C 275,402 298,295 343,226 388,157 457,122 548,122 612,122 666,139 709,174 752,209 778,262 788,334 L 970,322 C 956,218 912,135 837,73 762,11 668,-20 553,-20 402,-20 286,28 207,124 127,219 87,359 87,542 87,724 127,863 207,959 287,1054 402,1102 551,1102 662,1102 754,1073 827,1016 900,959 945,880 964,779 L 779,765 C 770,825 746,873 708,908 670,943 616,961 546,961 451,961 382,929 339,866 296,803 275,696 275,546 Z"/> + <glyph unicode="a" horiz-adv-x="1060" d="M 414,-20 C 305,-20 224,9 169,66 114,123 87,202 87,302 87,414 124,500 198,560 271,620 390,652 554,656 L 797,660 797,719 C 797,807 778,870 741,908 704,946 645,965 565,965 484,965 426,951 389,924 352,897 330,853 323,793 L 135,810 C 166,1005 310,1102 569,1102 705,1102 807,1071 876,1009 945,946 979,856 979,738 L 979,272 C 979,219 986,179 1000,152 1014,125 1041,111 1080,111 1097,111 1117,113 1139,118 L 1139,6 C 1094,-5 1047,-10 1000,-10 933,-10 885,8 855,43 824,78 807,132 803,207 L 797,207 C 751,124 698,66 637,32 576,-3 501,-20 414,-20 Z M 455,115 C 521,115 580,130 631,160 682,190 723,231 753,284 782,336 797,390 797,445 L 797,534 600,530 C 515,529 451,520 408,504 364,488 330,463 307,430 284,397 272,353 272,299 272,240 288,195 320,163 351,131 396,115 455,115 Z"/> + <glyph unicode="]" horiz-adv-x="424" d="M 16,-425 L 16,-296 249,-296 249,1355 16,1355 16,1484 423,1484 423,-425 16,-425 Z"/> + <glyph unicode="[" horiz-adv-x="425" d="M 146,-425 L 146,1484 553,1484 553,1355 320,1355 320,-296 553,-296 553,-425 146,-425 Z"/> + <glyph unicode="P" horiz-adv-x="1086" d="M 1258,985 C 1258,852 1215,746 1128,667 1041,588 922,549 773,549 L 359,549 359,0 168,0 168,1409 761,1409 C 919,1409 1041,1372 1128,1298 1215,1224 1258,1120 1258,985 Z M 1066,983 C 1066,1165 957,1256 738,1256 L 359,1256 359,700 746,700 C 959,700 1066,794 1066,983 Z"/> + <glyph unicode="3" horiz-adv-x="980" d="M 1049,389 C 1049,259 1008,158 925,87 842,16 724,-20 571,-20 428,-20 315,12 230,77 145,141 94,236 78,362 L 264,379 C 288,212 390,129 571,129 662,129 733,151 785,196 836,241 862,307 862,395 862,472 833,532 774,575 715,618 629,639 518,639 L 416,639 416,795 514,795 C 613,795 689,817 744,860 798,903 825,962 825,1038 825,1113 803,1173 759,1217 714,1260 648,1282 561,1282 482,1282 418,1262 369,1221 320,1180 291,1123 283,1049 L 102,1063 C 115,1178 163,1268 246,1333 328,1398 434,1430 563,1430 704,1430 814,1397 893,1332 971,1266 1010,1174 1010,1057 1010,967 985,894 935,838 884,781 811,743 715,723 L 715,719 C 820,708 902,672 961,613 1020,554 1049,479 1049,389 Z"/> + <glyph unicode="2" horiz-adv-x="980" d="M 103,0 L 103,127 C 137,205 179,274 228,334 277,393 328,447 382,496 436,544 490,589 543,630 596,671 643,713 686,754 729,795 763,839 790,884 816,929 829,981 829,1038 829,1115 806,1175 761,1218 716,1261 653,1282 572,1282 495,1282 432,1261 383,1220 333,1178 304,1119 295,1044 L 111,1061 C 124,1174 172,1263 255,1330 337,1397 443,1430 572,1430 714,1430 823,1397 900,1330 976,1263 1014,1167 1014,1044 1014,989 1002,935 977,881 952,827 914,773 865,719 816,665 721,581 582,468 505,405 444,349 399,299 354,248 321,200 301,153 L 1036,153 1036,0 103,0 Z"/> + <glyph unicode="1" horiz-adv-x="900" d="M 156,0 L 156,153 515,153 515,1237 197,1010 197,1180 530,1409 696,1409 696,153 1039,153 1039,0 156,0 Z"/> + <glyph unicode="0" horiz-adv-x="980" d="M 1059,705 C 1059,470 1018,290 935,166 852,42 729,-20 567,-20 405,-20 283,42 202,165 121,288 80,468 80,705 80,947 120,1128 199,1249 278,1370 402,1430 573,1430 739,1430 862,1369 941,1247 1020,1125 1059,944 1059,705 Z M 876,705 C 876,908 853,1056 806,1147 759,1238 681,1284 573,1284 462,1284 383,1239 335,1149 286,1059 262,911 262,705 262,505 287,359 336,266 385,173 462,127 569,127 675,127 753,174 802,269 851,364 876,509 876,705 Z"/> + </font> + </defs> + <defs class="TextShapeIndex"> + <g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43 id44 id45 id46 id47 id48 id49 id50 id51 id52 id53 id54 id55 id56 id57 id58 id59 id60 id61 id62 id63 id64 id65 id66 id67 id68 id69 id70 id71 id72 id73 id74 id75 id76 id77 id78 id79 id80 id81 id82 id83 id84 id85 id86"/> + </defs> + <defs class="EmbeddedBulletChars"> + <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)"> + <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/> + </g> + <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)"> + <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/> + </g> + <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)"> + <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/> + </g> + <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)"> + <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/> + </g> + <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)"> + <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/> + </g> + <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)"> + <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/> + </g> + <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)"> + <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/> + </g> + <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)"> + <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/> + </g> + <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)"> + <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/> + </g> + <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)"> + <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/> + </g> + </defs> + <defs class="TextEmbeddedBitmaps"/> + <g class="SlideGroup"> + <g> + <g id="container-id1"> + <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)"> + <g class="Page"> + <g class="com.sun.star.drawing.LineShape"> + <g id="id3"> + <rect class="BoundingBox" stroke="none" fill="none" x="22591" y="10991" width="19" height="1319"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,12300 L 22600,12265"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,12229 L 22600,12194"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,12158 L 22600,12123"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,12087 L 22600,12052"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,12016 L 22600,11981"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11945 L 22600,11910"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11874 L 22600,11839"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11804 L 22600,11768"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11733 L 22600,11697"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11662 L 22600,11626"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11591 L 22600,11555"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11520 L 22600,11484"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11449 L 22600,11414"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11378 L 22600,11343"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11307 L 22600,11272"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11236 L 22600,11201"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11165 L 22600,11130"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11094 L 22600,11059"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,11023 L 22600,11000"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id4"> + <rect class="BoundingBox" stroke="none" fill="none" x="3091" y="10291" width="19" height="2019"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,12300 L 3100,12265"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,12229 L 3100,12194"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,12158 L 3100,12123"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,12087 L 3100,12052"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,12016 L 3100,11981"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11945 L 3100,11910"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11874 L 3100,11839"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11804 L 3100,11768"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11733 L 3100,11697"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11662 L 3100,11626"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11591 L 3100,11555"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11520 L 3100,11484"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11449 L 3100,11414"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11378 L 3100,11343"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11307 L 3100,11272"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11236 L 3100,11201"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11165 L 3100,11130"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11094 L 3100,11059"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,11023 L 3100,10988"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10953 L 3100,10917"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10882 L 3100,10846"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10811 L 3100,10775"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10740 L 3100,10704"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10669 L 3100,10633"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10598 L 3100,10562"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10527 L 3100,10492"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10456 L 3100,10421"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10385 L 3100,10350"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 3100,10314 L 3100,10300"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id5"> + <rect class="BoundingBox" stroke="none" fill="none" x="6691" y="10291" width="19" height="2019"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,12300 L 6700,12265"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,12229 L 6700,12194"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,12158 L 6700,12123"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,12087 L 6700,12052"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,12016 L 6700,11981"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11945 L 6700,11910"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11874 L 6700,11839"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11804 L 6700,11768"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11733 L 6700,11697"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11662 L 6700,11626"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11591 L 6700,11555"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11520 L 6700,11484"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11449 L 6700,11414"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11378 L 6700,11343"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11307 L 6700,11272"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11236 L 6700,11201"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11165 L 6700,11130"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11094 L 6700,11059"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,11023 L 6700,10988"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10953 L 6700,10917"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10882 L 6700,10846"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10811 L 6700,10775"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10740 L 6700,10704"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10669 L 6700,10633"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10598 L 6700,10562"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10527 L 6700,10492"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10456 L 6700,10421"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10385 L 6700,10350"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 6700,10314 L 6700,10300"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id6"> + <rect class="BoundingBox" stroke="none" fill="none" x="10791" y="9391" width="19" height="2919"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,12300 L 10800,12265"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,12229 L 10800,12194"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,12158 L 10800,12123"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,12087 L 10800,12052"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,12016 L 10800,11981"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11945 L 10800,11910"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11874 L 10800,11839"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11804 L 10800,11768"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11733 L 10800,11697"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11662 L 10800,11626"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11591 L 10800,11555"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11520 L 10800,11484"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11449 L 10800,11414"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11378 L 10800,11343"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11307 L 10800,11272"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11236 L 10800,11201"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11165 L 10800,11130"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11094 L 10800,11059"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,11023 L 10800,10988"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10953 L 10800,10917"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10882 L 10800,10846"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10811 L 10800,10775"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10740 L 10800,10704"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10669 L 10800,10633"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10598 L 10800,10562"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10527 L 10800,10492"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10456 L 10800,10421"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10385 L 10800,10350"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10314 L 10800,10279"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10243 L 10800,10208"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10172 L 10800,10137"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10101 L 10800,10066"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,10031 L 10800,9995"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9960 L 10800,9924"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9889 L 10800,9853"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9818 L 10800,9782"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9747 L 10800,9711"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9676 L 10800,9640"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9605 L 10800,9570"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9534 L 10800,9499"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 10800,9463 L 10800,9428"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id7"> + <rect class="BoundingBox" stroke="none" fill="none" x="3100" y="10962" width="19501" height="801"/> + <path fill="rgb(0,0,0)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 12850,11762 L 3100,11762 3100,10962 22600,10962 22600,11762 12850,11762 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.PolyPolygonShape"> + <g id="id8"> + <rect class="BoundingBox" stroke="none" fill="none" x="6699" y="7599" width="4103" height="2703"/> + <path fill="rgb(128,0,128)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 6700,10300 L 6700,7600 10800,7600 10800,9400 6700,10300 Z"/> + <path fill="none" stroke="rgb(52,101,164)" d="M 6700,10300 L 6700,7600 10800,7600 10800,9400 6700,10300 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id9"> + <rect class="BoundingBox" stroke="none" fill="none" x="3100" y="7600" width="3601" height="2701"/> + <path fill="rgb(129,212,26)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 4900,10300 L 3100,10300 3100,7600 6700,7600 6700,10300 4900,10300 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id10"> + <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="7599" width="7703" height="3"/> + <path fill="none" stroke="rgb(0,0,0)" d="M 3100,7600 L 10800,7600"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id11"> + <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="8499" width="7703" height="3"/> + <path fill="none" stroke="rgb(0,0,0)" d="M 3100,8500 L 10800,8500"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id12"> + <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="9399" width="7703" height="3"/> + <path fill="none" stroke="rgb(0,0,0)" d="M 3100,9400 L 10800,9400"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id13"> + <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="10299" width="3603" height="3"/> + <path fill="none" stroke="rgb(0,0,0)" d="M 3100,10300 L 6700,10300"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id14"> + <rect class="BoundingBox" stroke="none" fill="none" x="3082" y="7582" width="37" height="2737"/> + <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 3100,7600 L 3100,10300"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id15"> + <rect class="BoundingBox" stroke="none" fill="none" x="10782" y="7582" width="37" height="1837"/> + <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 10800,7600 L 10800,9400"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id16"> + <rect class="BoundingBox" stroke="none" fill="none" x="6682" y="7582" width="37" height="2737"/> + <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 6700,7600 L 6700,10300"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id17"> + <rect class="BoundingBox" stroke="none" fill="none" x="6699" y="9399" width="4103" height="903"/> + <path fill="none" stroke="rgb(0,0,0)" d="M 6700,10300 L 10800,9400"/> + </g> + </g> + <g class="com.sun.star.drawing.OpenBezierShape"> + <g id="id18"> + <rect class="BoundingBox" stroke="none" fill="none" x="10799" y="5299" width="8403" height="2303"/> + <path fill="none" stroke="rgb(0,0,0)" d="M 10800,7600 C 14800,7600 16800,7600 19200,5300"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id19"> + <rect class="BoundingBox" stroke="none" fill="none" x="19182" y="5282" width="1337" height="1137"/> + <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 19200,5300 L 20500,6400"/> + </g> + </g> + <g class="com.sun.star.drawing.OpenBezierShape"> + <g id="id20"> + <rect class="BoundingBox" stroke="none" fill="none" x="10799" y="6399" width="9703" height="3003"/> + <path fill="none" stroke="rgb(0,0,0)" d="M 10800,9400 C 15100,9400 17600,9200 20500,6400"/> + </g> + </g> + <g class="com.sun.star.drawing.ClosedBezierShape"> + <g id="id21"> + <rect class="BoundingBox" stroke="none" fill="none" x="10800" y="5300" width="9701" height="4101"/> + <path fill="rgb(255,84,41)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 10800,9400 C 10800,8800 10800,8200 10800,7600 14800,7600 16800,7600 19200,5300 19633,5667 20067,6033 20500,6400 17600,9200 15100,9400 10800,9400 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.OpenBezierShape"> + <g id="id22"> + <rect class="BoundingBox" stroke="none" fill="none" x="10799" y="5899" width="9103" height="2603"/> + <path fill="none" stroke="rgb(0,0,0)" d="M 10800,8500 C 14800,8500 17100,8400 19900,5900"/> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id23"> + <rect class="BoundingBox" stroke="none" fill="none" x="3739" y="11000" width="2323" height="726"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="3989" y="11510"><tspan fill="rgb(0,0,0)" stroke="none">section[0]</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id24"> + <rect class="BoundingBox" stroke="none" fill="none" x="7589" y="11000" width="2323" height="726"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="7839" y="11510"><tspan fill="rgb(0,0,0)" stroke="none">section[1]</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id25"> + <rect class="BoundingBox" stroke="none" fill="none" x="15578" y="11000" width="2323" height="726"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="15828" y="11510"><tspan fill="rgb(0,0,0)" stroke="none">section[2]</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id26"> + <rect class="BoundingBox" stroke="none" fill="none" x="1929" y="11000" width="1472" height="726"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="423px" font-weight="400"><tspan class="TextPosition" x="2179" y="11510"><tspan fill="rgb(0,0,0)" stroke="none">road</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id27"> + <rect class="BoundingBox" stroke="none" fill="none" x="2700" y="6831" width="804" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2950" y="7214"><tspan fill="rgb(0,0,0)" stroke="none">s0</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id28"> + <rect class="BoundingBox" stroke="none" fill="none" x="6300" y="6831" width="804" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6550" y="7214"><tspan fill="rgb(0,0,0)" stroke="none">s1</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id29"> + <rect class="BoundingBox" stroke="none" fill="none" x="10397" y="6831" width="804" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10647" y="7214"><tspan fill="rgb(0,0,0)" stroke="none">s2</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id30"> + <rect class="BoundingBox" stroke="none" fill="none" x="18497" y="4700" width="804" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="18747" y="5083"><tspan fill="rgb(0,0,0)" stroke="none">s3</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.PolyPolygonShape"> + <g id="id31"> + <rect class="BoundingBox" stroke="none" fill="none" x="7700" y="8500" width="801" height="1583"/> + <path fill="rgb(141,29,117)" fill-opacity="0.4" stroke="rgb(255,255,255)" stroke-opacity="0.4" d="M 7700,10081 L 7700,8500 8500,8500 8500,9906 7700,10081 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id32"> + <rect class="BoundingBox" stroke="none" fill="none" x="7686" y="7586" width="829" height="929"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 8100,8500 L 7700,8500 7700,7600 8500,7600 8500,8500 8100,8500 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8100,8500 L 7700,8500 7700,7600 8500,7600 8500,8500 8100,8500 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id33"> + <rect class="BoundingBox" stroke="none" fill="none" x="7634" y="7542" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 7698,7556 C 7726,7556 7748,7578 7748,7606 7748,7634 7726,7656 7698,7656 7670,7656 7648,7634 7648,7606 7648,7578 7670,7556 7698,7556 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 7698,7556 C 7726,7556 7748,7578 7748,7606 7748,7634 7726,7656 7698,7656 7670,7656 7648,7634 7648,7606 7648,7578 7670,7556 7698,7556 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id34"> + <rect class="BoundingBox" stroke="none" fill="none" x="8434" y="7542" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 8498,7556 C 8526,7556 8548,7578 8548,7606 8548,7634 8526,7656 8498,7656 8470,7656 8448,7634 8448,7606 8448,7578 8470,7556 8498,7556 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8498,7556 C 8526,7556 8548,7578 8548,7606 8548,7634 8526,7656 8498,7656 8470,7656 8448,7634 8448,7606 8448,7578 8470,7556 8498,7556 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id35"> + <rect class="BoundingBox" stroke="none" fill="none" x="8434" y="8442" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 8498,8456 C 8526,8456 8548,8478 8548,8506 8548,8534 8526,8556 8498,8556 8470,8556 8448,8534 8448,8506 8448,8478 8470,8456 8498,8456 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8498,8456 C 8526,8456 8548,8478 8548,8506 8548,8534 8526,8556 8498,8556 8470,8556 8448,8534 8448,8506 8448,8478 8470,8456 8498,8456 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id36"> + <rect class="BoundingBox" stroke="none" fill="none" x="7634" y="8442" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 7698,8456 C 7726,8456 7748,8478 7748,8506 7748,8534 7726,8556 7698,8556 7670,8556 7648,8534 7648,8506 7648,8478 7670,8456 7698,8456 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 7698,8456 C 7726,8456 7748,8478 7748,8506 7748,8534 7726,8556 7698,8556 7670,8556 7648,8534 7648,8506 7648,8478 7670,8456 7698,8456 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id37"> + <rect class="BoundingBox" stroke="none" fill="none" x="7638" y="9342" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 7702,9356 C 7730,9356 7752,9378 7752,9406 7752,9434 7730,9456 7702,9456 7674,9456 7652,9434 7652,9406 7652,9378 7674,9356 7702,9356 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 7702,9356 C 7730,9356 7752,9378 7752,9406 7752,9434 7730,9456 7702,9456 7674,9456 7652,9434 7652,9406 7652,9378 7674,9356 7702,9356 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id38"> + <rect class="BoundingBox" stroke="none" fill="none" x="7638" y="10017" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 7702,10031 C 7730,10031 7752,10053 7752,10081 7752,10109 7730,10131 7702,10131 7674,10131 7652,10109 7652,10081 7652,10053 7674,10031 7702,10031 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 7702,10031 C 7730,10031 7752,10053 7752,10081 7752,10109 7730,10131 7702,10131 7674,10131 7652,10109 7652,10081 7652,10053 7674,10031 7702,10031 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id39"> + <rect class="BoundingBox" stroke="none" fill="none" x="8438" y="9342" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 8502,9356 C 8530,9356 8552,9378 8552,9406 8552,9434 8530,9456 8502,9456 8474,9456 8452,9434 8452,9406 8452,9378 8474,9356 8502,9356 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8502,9356 C 8530,9356 8552,9378 8552,9406 8552,9434 8530,9456 8502,9456 8474,9456 8452,9434 8452,9406 8452,9378 8474,9356 8502,9356 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id40"> + <rect class="BoundingBox" stroke="none" fill="none" x="8438" y="9842" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 8502,9856 C 8530,9856 8552,9878 8552,9906 8552,9934 8530,9956 8502,9956 8474,9956 8452,9934 8452,9906 8452,9878 8474,9856 8502,9856 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8502,9856 C 8530,9856 8552,9878 8552,9906 8552,9934 8530,9956 8502,9956 8474,9956 8452,9934 8452,9906 8452,9878 8474,9856 8502,9856 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.OpenBezierShape"> + <g id="id41"> + <rect class="BoundingBox" stroke="none" fill="none" x="20491" y="6390" width="2120" height="4620"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20500,6400 C 20509,6408 20518,6416 20528,6424"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20555,6448 C 20564,6456 20573,6464 20582,6472"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20609,6496 C 20618,6504 20627,6512 20636,6520"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20662,6544 C 20671,6552 20680,6560 20688,6568"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20715,6592 C 20723,6600 20732,6608 20740,6616"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20766,6641 C 20775,6649 20783,6657 20792,6665"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20817,6689 C 20825,6697 20834,6705 20842,6713"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20867,6737 C 20875,6746 20883,6754 20892,6762"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20916,6786 C 20925,6795 20933,6803 20941,6811"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 20967,6837 C 20975,6846 20984,6855 20992,6863"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21017,6889 C 21025,6898 21034,6906 21042,6915"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21067,6941 C 21075,6949 21083,6958 21091,6967"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21115,6993 C 21123,7002 21131,7010 21139,7019"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21163,7045 C 21171,7054 21179,7062 21186,7071"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21210,7097 C 21217,7106 21225,7115 21233,7124"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21256,7150 C 21263,7159 21271,7167 21278,7176"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21301,7203 C 21309,7212 21317,7221 21324,7231"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21347,7258 C 21355,7267 21363,7277 21370,7286"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21393,7314 C 21400,7323 21408,7332 21415,7342"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21437,7370 C 21444,7379 21452,7388 21459,7397"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21481,7426 C 21488,7435 21495,7444 21502,7454"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21523,7482 C 21530,7491 21537,7500 21544,7510"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21565,7538 C 21572,7548 21579,7557 21586,7566"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21606,7595 C 21613,7604 21620,7614 21626,7624"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21647,7653 C 21654,7663 21660,7673 21667,7683"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21687,7712 C 21694,7722 21700,7732 21707,7742"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21727,7772 C 21733,7782 21740,7792 21746,7801"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21765,7831 C 21771,7841 21778,7851 21784,7861"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21803,7891 C 21809,7901 21815,7911 21821,7921"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21839,7952 C 21845,7962 21851,7972 21857,7982"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21875,8012 C 21881,8022 21887,8032 21892,8043"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21910,8074 C 21916,8084 21922,8094 21927,8105"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21944,8136 C 21950,8147 21956,8157 21961,8167"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 21978,8199 C 21983,8209 21989,8220 21994,8230"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22010,8262 C 22016,8272 22021,8283 22026,8293"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22042,8325 C 22047,8336 22052,8346 22058,8357"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22073,8389 C 22078,8400 22083,8410 22088,8421"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22103,8453 C 22107,8464 22112,8474 22117,8485"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22131,8518 C 22136,8528 22141,8539 22146,8550"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22159,8583 C 22164,8594 22169,8605 22173,8615"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22187,8648 C 22191,8659 22195,8670 22200,8681"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22213,8714 C 22217,8725 22221,8736 22226,8747"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22238,8780 C 22242,8791 22246,8803 22250,8814"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22262,8847 C 22266,8858 22270,8869 22274,8881"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22286,8914 C 22290,8925 22294,8937 22297,8948"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22308,8981 C 22312,8992 22316,9003 22319,9015"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22330,9048 C 22333,9060 22337,9071 22340,9082"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22350,9116 C 22354,9127 22357,9139 22360,9150"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22370,9184 C 22373,9195 22377,9207 22380,9218"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22389,9252 C 22392,9264 22395,9275 22398,9287"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22407,9321 C 22410,9333 22413,9344 22416,9356"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22424,9391 C 22427,9402 22430,9414 22433,9425"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22440,9459 C 22443,9471 22446,9482 22448,9494"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22456,9528 C 22458,9539 22461,9551 22463,9562"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22470,9597 C 22472,9608 22475,9620 22477,9632"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22484,9666 C 22486,9678 22488,9690 22490,9701"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22497,9736 C 22499,9748 22501,9760 22503,9771"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22509,9807 C 22511,9818 22512,9830 22514,9842"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22520,9878 C 22522,9889 22523,9901 22525,9913"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22530,9948 C 22532,9959 22533,9971 22535,9982"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22540,10017 C 22541,10028 22543,10040 22544,10052"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22548,10087 C 22550,10098 22551,10110 22553,10122"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22557,10157 C 22558,10168 22559,10180 22560,10192"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22564,10227 C 22565,10239 22566,10251 22567,10263"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22571,10298 C 22572,10310 22573,10322 22574,10334"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22577,10370 C 22577,10382 22578,10394 22579,10406"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22582,10442 C 22583,10454 22583,10465 22584,10477"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22586,10511 C 22587,10523 22588,10535 22588,10546"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22590,10581 C 22591,10593 22591,10604 22592,10616"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22593,10651 C 22594,10663 22594,10675 22595,10687"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22596,10722 C 22596,10734 22597,10746 22597,10757"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22598,10793 C 22598,10805 22599,10817 22599,10829"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22599,10865 C 22600,10877 22600,10889 22600,10901"/> + <path fill="none" stroke="rgb(153,153,153)" stroke-width="18" stroke-linejoin="round" d="M 22600,10937 C 22600,10949 22600,10961 22600,10973"/> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id42"> + <rect class="BoundingBox" stroke="none" fill="none" x="2700" y="12331" width="804" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2950" y="12714"><tspan fill="rgb(0,0,0)" stroke="none">s0</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id43"> + <rect class="BoundingBox" stroke="none" fill="none" x="6300" y="12331" width="804" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="6550" y="12714"><tspan fill="rgb(0,0,0)" stroke="none">s1</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id44"> + <rect class="BoundingBox" stroke="none" fill="none" x="10397" y="12331" width="804" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="10647" y="12714"><tspan fill="rgb(0,0,0)" stroke="none">s2</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id45"> + <rect class="BoundingBox" stroke="none" fill="none" x="22197" y="12331" width="804" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="22447" y="12714"><tspan fill="rgb(0,0,0)" stroke="none">s3</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id46"> + <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="14699" width="3603" height="903"/> + <path fill="rgb(0,169,51)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 4900,15600 L 3100,15600 3100,14700 6700,14700 6700,15600 4900,15600 Z"/> + <path fill="none" stroke="rgb(52,101,164)" d="M 4900,15600 L 3100,15600 3100,14700 6700,14700 6700,15600 4900,15600 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id47"> + <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="13799" width="19503" height="903"/> + <path fill="rgb(114,159,207)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 12850,14700 L 3100,14700 3100,13800 22600,13800 22600,14700 12850,14700 Z"/> + <path fill="none" stroke="rgb(52,101,164)" d="M 12850,14700 L 3100,14700 3100,13800 22600,13800 22600,14700 12850,14700 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id48"> + <rect class="BoundingBox" stroke="none" fill="none" x="3099" y="12899" width="19503" height="903"/> + <path fill="rgb(255,128,0)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 12850,13800 L 3100,13800 3100,12900 22600,12900 22600,13800 12850,13800 Z"/> + <path fill="none" stroke="rgb(52,101,164)" d="M 12850,13800 L 3100,13800 3100,12900 22600,12900 22600,13800 12850,13800 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id49"> + <rect class="BoundingBox" stroke="none" fill="none" x="3082" y="12882" width="37" height="2737"/> + <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 3100,12900 L 3100,15600"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id50"> + <rect class="BoundingBox" stroke="none" fill="none" x="10782" y="12882" width="37" height="1837"/> + <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 10800,12900 L 10800,14700"/> + </g> + </g> + <g class="com.sun.star.drawing.PolyPolygonShape"> + <g id="id51"> + <rect class="BoundingBox" stroke="none" fill="none" x="6699" y="14699" width="4103" height="903"/> + <path fill="rgb(0,169,51)" fill-opacity="0.2" stroke="rgb(255,255,255)" stroke-opacity="0.2" d="M 6700,15600 L 6700,14700 10800,14700 6700,15600 Z"/> + <path fill="none" stroke="rgb(52,101,164)" d="M 6700,15600 L 6700,14700 10800,14700 6700,15600 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id52"> + <rect class="BoundingBox" stroke="none" fill="none" x="6682" y="12882" width="37" height="2737"/> + <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 6700,12900 L 6700,15600"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id53"> + <rect class="BoundingBox" stroke="none" fill="none" x="22582" y="12882" width="37" height="1837"/> + <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 22600,12900 L 22600,14700"/> + </g> + </g> + <g class="com.sun.star.drawing.PolyPolygonShape"> + <g id="id54"> + <rect class="BoundingBox" stroke="none" fill="none" x="14299" y="7429" width="1008" height="1826"/> + <path fill="rgb(141,29,117)" fill-opacity="0.4" stroke="rgb(255,255,255)" stroke-opacity="0.4" d="M 14500,9254 L 14300,7500 14953,7430 15306,9137 14500,9254 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id55"> + <rect class="BoundingBox" stroke="none" fill="none" x="14440" y="9186" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 14504,9200 C 14532,9200 14554,9222 14554,9250 14554,9278 14532,9300 14504,9300 14476,9300 14454,9278 14454,9250 14454,9222 14476,9200 14504,9200 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 14504,9200 C 14532,9200 14554,9222 14554,9250 14554,9278 14532,9300 14504,9300 14476,9300 14454,9278 14454,9250 14454,9222 14476,9200 14504,9200 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id56"> + <rect class="BoundingBox" stroke="none" fill="none" x="15242" y="9076" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 15306,9090 C 15334,9090 15356,9112 15356,9140 15356,9168 15334,9190 15306,9190 15278,9190 15256,9168 15256,9140 15256,9112 15278,9090 15306,9090 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 15306,9090 C 15334,9090 15356,9112 15356,9140 15356,9168 15334,9190 15306,9190 15278,9190 15256,9168 15256,9140 15256,9112 15278,9090 15306,9090 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id57"> + <rect class="BoundingBox" stroke="none" fill="none" x="14236" y="7435" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 14300,7449 C 14328,7449 14350,7471 14350,7499 14350,7527 14328,7549 14300,7549 14272,7549 14250,7527 14250,7499 14250,7471 14272,7449 14300,7449 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 14300,7449 C 14328,7449 14350,7471 14350,7499 14350,7527 14328,7549 14300,7549 14272,7549 14250,7527 14250,7499 14250,7471 14272,7449 14300,7449 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id58"> + <rect class="BoundingBox" stroke="none" fill="none" x="14878" y="7360" width="130" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 14942,7374 C 14970,7374 14992,7396 14992,7424 14992,7452 14970,7474 14942,7474 14914,7474 14892,7452 14892,7424 14892,7396 14914,7374 14942,7374 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 14942,7374 C 14970,7374 14992,7396 14992,7424 14992,7452 14970,7474 14942,7474 14914,7474 14892,7452 14892,7424 14892,7396 14914,7374 14942,7374 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id59"> + <rect class="BoundingBox" stroke="none" fill="none" x="14339" y="8302" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 14403,8316 C 14431,8316 14453,8338 14453,8366 14453,8394 14431,8416 14403,8416 14375,8416 14353,8394 14353,8366 14353,8338 14375,8316 14403,8316 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 14403,8316 C 14431,8316 14453,8338 14453,8366 14453,8394 14431,8416 14403,8416 14375,8416 14353,8394 14353,8366 14353,8338 14375,8316 14403,8316 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id60"> + <rect class="BoundingBox" stroke="none" fill="none" x="15069" y="8211" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 15133,8225 C 15161,8225 15183,8247 15183,8275 15183,8303 15161,8325 15133,8325 15105,8325 15083,8303 15083,8275 15083,8247 15105,8225 15133,8225 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 15133,8225 C 15161,8225 15183,8247 15183,8275 15183,8303 15161,8325 15133,8325 15105,8325 15083,8303 15083,8275 15083,8247 15105,8225 15133,8225 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id61"> + <rect class="BoundingBox" stroke="none" fill="none" x="8563" y="8531" width="1638" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="8813" y="8914"><tspan fill="rgb(128,0,128)" stroke="none">sampling</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.OpenBezierShape"> + <g id="id62"> + <rect class="BoundingBox" stroke="none" fill="none" x="8580" y="8856" width="5799" height="263"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 8594,9100 C 8600,9101 8613,9101 8632,9101"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 8692,9102 C 8705,9103 8720,9103 8736,9103"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 8787,9103 C 8806,9103 8825,9103 8846,9103"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 8895,9104 C 8910,9104 8926,9104 8942,9104"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 8992,9104 C 9009,9104 9026,9104 9045,9104"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9100,9104 C 9117,9104 9135,9104 9153,9104"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9200,9104 C 9216,9104 9233,9104 9249,9104"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9299,9104 C 9316,9104 9334,9104 9351,9104"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9404,9104 C 9422,9104 9441,9104 9459,9104"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9510,9104 C 9526,9104 9542,9104 9558,9104"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9608,9104 C 9624,9104 9641,9104 9658,9104"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9709,9104 C 9726,9104 9744,9104 9761,9104"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9814,9103 C 9832,9103 9850,9103 9868,9103"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 9919,9103 C 9935,9103 9951,9103 9968,9103"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10018,9103 C 10034,9103 10051,9103 10068,9103"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10119,9103 C 10136,9103 10153,9103 10170,9103"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10222,9103 C 10239,9103 10257,9103 10274,9103"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10327,9103 C 10344,9103 10361,9103 10378,9103"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10428,9102 C 10445,9102 10461,9102 10478,9102"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10529,9102 C 10545,9102 10562,9102 10579,9102"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10631,9102 C 10648,9102 10665,9102 10682,9102"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10734,9102 C 10751,9102 10768,9102 10786,9102"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10838,9102 C 10855,9102 10871,9102 10888,9102"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 10939,9102 C 10955,9102 10972,9101 10989,9101"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11040,9101 C 11057,9101 11074,9101 11091,9101"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11142,9101 C 11159,9101 11176,9101 11193,9101"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11245,9101 C 11262,9101 11279,9101 11296,9101"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11348,9101 C 11365,9101 11382,9101 11399,9101"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11450,9101 C 11467,9101 11484,9101 11501,9101"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11552,9101 C 11569,9101 11586,9101 11603,9101"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11654,9100 C 11671,9100 11688,9100 11705,9100"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11756,9100 C 11773,9100 11790,9100 11807,9100"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11858,9100 C 11875,9100 11892,9100 11909,9100"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 11961,9100 C 11978,9100 11995,9100 12012,9100"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12063,9100 C 12080,9100 12097,9100 12114,9100"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12165,9100 C 12182,9100 12199,9100 12216,9100"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12267,9100 C 12284,9100 12301,9100 12318,9100"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12368,9100 C 12379,9100 12389,9100 12400,9100 12406,9100 12413,9100 12419,9100"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12470,9100 C 12487,9100 12504,9100 12521,9100"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12572,9099 C 12589,9099 12606,9099 12623,9099"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12674,9098 C 12691,9098 12708,9097 12725,9097"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12776,9096 C 12793,9095 12810,9095 12827,9094"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12878,9092 C 12895,9092 12911,9091 12928,9091"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 12979,9088 C 12996,9088 13013,9087 13031,9086"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13081,9083 C 13098,9082 13115,9081 13132,9080"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13183,9077 C 13200,9076 13217,9074 13234,9073"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13285,9069 C 13302,9068 13319,9067 13336,9065"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13386,9061 C 13403,9059 13420,9058 13437,9056"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13488,9051 C 13505,9049 13522,9047 13539,9045"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13589,9040 C 13606,9038 13623,9036 13640,9034"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13691,9027 C 13707,9025 13724,9023 13741,9021"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13791,9014 C 13808,9012 13825,9009 13842,9007"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13893,8999 C 13909,8997 13926,8994 13942,8992"/> + <path fill="none" stroke="rgb(141,29,117)" stroke-width="28" stroke-linejoin="round" d="M 13993,8984 C 14010,8981 14027,8978 14044,8975"/> + <path fill="rgb(141,29,117)" stroke="none" d="M 14082,9065 L 14068,9094 14378,8912 14023,8856 14046,8877 14065,8902 14081,8932 14091,8965 14095,8999 14091,9033 14082,9065 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id63"> + <rect class="BoundingBox" stroke="none" fill="none" x="3138" y="15144" width="3577" height="29"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3152,15158 L 3203,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3254,15158 L 3305,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3356,15158 L 3407,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3458,15158 L 3509,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3560,15158 L 3611,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3662,15158 L 3713,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3764,15158 L 3815,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3866,15158 L 3917,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 3968,15158 L 4019,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4070,15158 L 4121,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4172,15158 L 4223,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4274,15158 L 4325,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4376,15158 L 4427,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4478,15158 L 4529,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4580,15158 L 4631,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4682,15158 L 4733,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4784,15158 L 4835,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4886,15158 L 4937,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 4988,15158 L 5039,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5090,15158 L 5141,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5192,15158 L 5243,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5294,15158 L 5345,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5396,15158 L 5447,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5498,15158 L 5549,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5600,15158 L 5651,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5702,15158 L 5753,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5804,15158 L 5855,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 5906,15158 L 5957,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6008,15158 L 6059,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6110,15158 L 6161,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6212,15158 L 6263,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6314,15158 L 6365,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6416,15158 L 6467,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6518,15158 L 6569,15158"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6620,15158 L 6671,15158"/> + </g> + </g> + <g class="com.sun.star.drawing.PolyPolygonShape"> + <g id="id64"> + <rect class="BoundingBox" stroke="none" fill="none" x="7700" y="12900" width="801" height="2485"/> + <path fill="rgb(141,29,117)" fill-opacity="0.4" stroke="rgb(255,255,255)" stroke-opacity="0.4" d="M 7700,15384 L 7700,12900 8500,12900 8500,15209 7700,15384 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.PolyPolygonShape"> + <g id="id65"> + <rect class="BoundingBox" stroke="none" fill="none" x="15100" y="12900" width="801" height="1801"/> + <path fill="rgb(141,29,117)" fill-opacity="0.4" stroke="rgb(255,255,255)" stroke-opacity="0.4" d="M 15100,14700 L 15100,12900 15900,12900 15900,14700 15100,14700 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id66"> + <rect class="BoundingBox" stroke="none" fill="none" x="7686" y="12876" width="829" height="929"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 8100,13790 L 7700,13790 7700,12890 8500,12890 8500,13790 8100,13790 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8100,13790 L 7700,13790 7700,12890 8500,12890 8500,13790 8100,13790 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id67"> + <rect class="BoundingBox" stroke="none" fill="none" x="7634" y="12832" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 7698,12846 C 7726,12846 7748,12868 7748,12896 7748,12924 7726,12946 7698,12946 7670,12946 7648,12924 7648,12896 7648,12868 7670,12846 7698,12846 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 7698,12846 C 7726,12846 7748,12868 7748,12896 7748,12924 7726,12946 7698,12946 7670,12946 7648,12924 7648,12896 7648,12868 7670,12846 7698,12846 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id68"> + <rect class="BoundingBox" stroke="none" fill="none" x="8434" y="12832" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 8498,12846 C 8526,12846 8548,12868 8548,12896 8548,12924 8526,12946 8498,12946 8470,12946 8448,12924 8448,12896 8448,12868 8470,12846 8498,12846 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8498,12846 C 8526,12846 8548,12868 8548,12896 8548,12924 8526,12946 8498,12946 8470,12946 8448,12924 8448,12896 8448,12868 8470,12846 8498,12846 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id69"> + <rect class="BoundingBox" stroke="none" fill="none" x="8434" y="13732" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 8498,13746 C 8526,13746 8548,13768 8548,13796 8548,13824 8526,13846 8498,13846 8470,13846 8448,13824 8448,13796 8448,13768 8470,13746 8498,13746 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 8498,13746 C 8526,13746 8548,13768 8548,13796 8548,13824 8526,13846 8498,13846 8470,13846 8448,13824 8448,13796 8448,13768 8470,13746 8498,13746 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id70"> + <rect class="BoundingBox" stroke="none" fill="none" x="7634" y="13732" width="129" height="129"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 7698,13746 C 7726,13746 7748,13768 7748,13796 7748,13824 7726,13846 7698,13846 7670,13846 7648,13824 7648,13796 7648,13768 7670,13746 7698,13746 Z"/> + <path fill="none" stroke="rgb(255,255,255)" stroke-width="28" stroke-linejoin="round" d="M 7698,13746 C 7726,13746 7748,13768 7748,13796 7748,13824 7726,13846 7698,13846 7670,13846 7648,13824 7648,13796 7648,13768 7670,13746 7698,13746 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id71"> + <rect class="BoundingBox" stroke="none" fill="none" x="3186" y="13342" width="19429" height="29"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3200,13356 L 3251,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3302,13356 L 3353,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3404,13356 L 3455,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3506,13356 L 3557,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3608,13356 L 3659,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3710,13356 L 3761,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3812,13356 L 3863,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 3914,13356 L 3965,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4016,13356 L 4067,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4118,13356 L 4169,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4220,13356 L 4271,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4322,13356 L 4373,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4424,13356 L 4475,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4526,13356 L 4577,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4628,13356 L 4679,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4730,13356 L 4781,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4832,13356 L 4883,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 4934,13356 L 4985,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5036,13356 L 5087,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5138,13356 L 5189,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5240,13356 L 5291,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5342,13356 L 5393,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5444,13356 L 5495,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5546,13356 L 5597,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5648,13356 L 5699,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5750,13356 L 5801,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5852,13356 L 5903,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 5954,13356 L 6005,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6056,13356 L 6107,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6158,13356 L 6209,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6260,13356 L 6311,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6362,13356 L 6413,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6464,13356 L 6515,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6566,13356 L 6617,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6668,13356 L 6719,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6770,13356 L 6821,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6872,13356 L 6923,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 6974,13356 L 7025,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7076,13356 L 7127,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7178,13356 L 7229,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7280,13356 L 7331,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7382,13356 L 7433,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7484,13356 L 7535,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7586,13356 L 7637,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7688,13356 L 7739,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7790,13356 L 7841,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7892,13356 L 7943,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 7994,13356 L 8045,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8096,13356 L 8147,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8198,13356 L 8249,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8300,13356 L 8351,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8402,13356 L 8453,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8504,13356 L 8555,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8606,13356 L 8657,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8708,13356 L 8759,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8810,13356 L 8861,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 8912,13356 L 8963,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9014,13356 L 9065,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9116,13356 L 9167,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9218,13356 L 9269,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9320,13356 L 9371,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9422,13356 L 9473,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9524,13356 L 9575,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9626,13356 L 9677,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9728,13356 L 9779,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9830,13356 L 9881,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 9932,13356 L 9983,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10034,13356 L 10085,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10136,13356 L 10187,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10238,13356 L 10289,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10340,13356 L 10391,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10442,13356 L 10493,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10544,13356 L 10595,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10646,13356 L 10697,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10748,13356 L 10799,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10850,13356 L 10901,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 10952,13356 L 11003,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11054,13356 L 11105,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11156,13356 L 11207,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11258,13356 L 11309,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11360,13356 L 11411,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11462,13356 L 11513,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11564,13356 L 11615,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11666,13356 L 11717,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11768,13356 L 11819,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11870,13356 L 11921,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 11972,13356 L 12023,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12074,13356 L 12125,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12176,13356 L 12227,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12278,13356 L 12329,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12380,13356 L 12431,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12482,13356 L 12533,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12584,13356 L 12635,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12686,13356 L 12737,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12788,13356 L 12839,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12890,13356 L 12941,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 12992,13356 L 13043,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13094,13356 L 13145,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13196,13356 L 13247,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13298,13356 L 13349,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13400,13356 L 13451,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13502,13356 L 13553,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13604,13356 L 13655,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13706,13356 L 13757,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13808,13356 L 13859,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 13910,13356 L 13961,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14012,13356 L 14063,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14114,13356 L 14165,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14216,13356 L 14267,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14318,13356 L 14369,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14420,13356 L 14471,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14522,13356 L 14573,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14624,13356 L 14675,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14726,13356 L 14777,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14828,13356 L 14879,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 14930,13356 L 14981,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15032,13356 L 15083,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15134,13356 L 15185,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15236,13356 L 15287,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15338,13356 L 15389,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15440,13356 L 15491,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15542,13356 L 15593,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15644,13356 L 15695,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15746,13356 L 15797,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15848,13356 L 15899,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 15950,13356 L 16001,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16052,13356 L 16103,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16154,13356 L 16205,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16256,13356 L 16307,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16358,13356 L 16409,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16460,13356 L 16511,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16562,13356 L 16613,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16664,13356 L 16715,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16766,13356 L 16817,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16868,13356 L 16919,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 16970,13356 L 17021,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17072,13356 L 17123,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17174,13356 L 17225,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17276,13356 L 17327,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17378,13356 L 17429,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17480,13356 L 17531,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17582,13356 L 17633,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17684,13356 L 17735,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17786,13356 L 17837,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17888,13356 L 17939,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 17990,13356 L 18041,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18092,13356 L 18143,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18194,13356 L 18245,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18296,13356 L 18347,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18398,13356 L 18449,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18500,13356 L 18551,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18602,13356 L 18653,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18704,13356 L 18755,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18806,13356 L 18857,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 18908,13356 L 18959,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19010,13356 L 19061,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19112,13356 L 19163,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19214,13356 L 19265,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19316,13356 L 19367,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19418,13356 L 19469,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19520,13356 L 19571,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19622,13356 L 19673,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19724,13356 L 19775,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19826,13356 L 19877,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 19928,13356 L 19979,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20030,13356 L 20081,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20132,13356 L 20183,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20234,13356 L 20285,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20336,13356 L 20387,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20438,13356 L 20489,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20540,13356 L 20591,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20642,13356 L 20693,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20744,13356 L 20795,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20846,13356 L 20897,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 20948,13356 L 20999,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21050,13356 L 21101,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21152,13356 L 21203,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21254,13356 L 21305,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21356,13356 L 21407,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21458,13356 L 21509,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21560,13356 L 21611,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21662,13356 L 21713,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21764,13356 L 21815,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21866,13356 L 21917,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 21968,13356 L 22019,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 22070,13356 L 22121,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 22172,13356 L 22223,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 22274,13356 L 22325,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 22376,13356 L 22427,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 22478,13356 L 22529,13356"/> + <path fill="none" stroke="rgb(255,64,0)" stroke-width="28" stroke-linejoin="round" d="M 22580,13356 L 22600,13356"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id72"> + <rect class="BoundingBox" stroke="none" fill="none" x="3186" y="14235" width="19429" height="29"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3200,14249 L 3251,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3302,14249 L 3353,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3404,14249 L 3455,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3506,14249 L 3557,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3608,14249 L 3659,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3710,14249 L 3761,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3812,14249 L 3863,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 3914,14249 L 3965,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4016,14249 L 4067,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4118,14249 L 4169,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4220,14249 L 4271,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4322,14249 L 4373,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4424,14249 L 4475,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4526,14249 L 4577,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4628,14249 L 4679,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4730,14249 L 4781,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4832,14249 L 4883,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 4934,14249 L 4985,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5036,14249 L 5087,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5138,14249 L 5189,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5240,14249 L 5291,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5342,14249 L 5393,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5444,14249 L 5495,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5546,14249 L 5597,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5648,14249 L 5699,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5750,14249 L 5801,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5852,14249 L 5903,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 5954,14249 L 6005,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6056,14249 L 6107,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6158,14249 L 6209,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6260,14249 L 6311,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6362,14249 L 6413,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6464,14249 L 6515,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6566,14249 L 6617,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6668,14249 L 6719,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6770,14249 L 6821,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6872,14249 L 6923,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 6974,14249 L 7025,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7076,14249 L 7127,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7178,14249 L 7229,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7280,14249 L 7331,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7382,14249 L 7433,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7484,14249 L 7535,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7586,14249 L 7637,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7688,14249 L 7739,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7790,14249 L 7841,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7892,14249 L 7943,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 7994,14249 L 8045,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8096,14249 L 8147,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8198,14249 L 8249,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8300,14249 L 8351,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8402,14249 L 8453,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8504,14249 L 8555,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8606,14249 L 8657,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8708,14249 L 8759,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8810,14249 L 8861,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 8912,14249 L 8963,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9014,14249 L 9065,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9116,14249 L 9167,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9218,14249 L 9269,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9320,14249 L 9371,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9422,14249 L 9473,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9524,14249 L 9575,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9626,14249 L 9677,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9728,14249 L 9779,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9830,14249 L 9881,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 9932,14249 L 9983,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10034,14249 L 10085,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10136,14249 L 10187,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10238,14249 L 10289,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10340,14249 L 10391,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10442,14249 L 10493,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10544,14249 L 10595,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10646,14249 L 10697,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10748,14249 L 10799,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10850,14249 L 10901,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 10952,14249 L 11003,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11054,14249 L 11105,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11156,14249 L 11207,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11258,14249 L 11309,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11360,14249 L 11411,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11462,14249 L 11513,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11564,14249 L 11615,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11666,14249 L 11717,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11768,14249 L 11819,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11870,14249 L 11921,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 11972,14249 L 12023,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12074,14249 L 12125,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12176,14249 L 12227,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12278,14249 L 12329,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12380,14249 L 12431,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12482,14249 L 12533,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12584,14249 L 12635,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12686,14249 L 12737,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12788,14249 L 12839,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12890,14249 L 12941,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 12992,14249 L 13043,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13094,14249 L 13145,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13196,14249 L 13247,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13298,14249 L 13349,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13400,14249 L 13451,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13502,14249 L 13553,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13604,14249 L 13655,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13706,14249 L 13757,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13808,14249 L 13859,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 13910,14249 L 13961,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14012,14249 L 14063,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14114,14249 L 14165,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14216,14249 L 14267,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14318,14249 L 14369,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14420,14249 L 14471,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14522,14249 L 14573,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14624,14249 L 14675,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14726,14249 L 14777,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14828,14249 L 14879,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 14930,14249 L 14981,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15032,14249 L 15083,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15134,14249 L 15185,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15236,14249 L 15287,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15338,14249 L 15389,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15440,14249 L 15491,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15542,14249 L 15593,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15644,14249 L 15695,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15746,14249 L 15797,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15848,14249 L 15899,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 15950,14249 L 16001,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16052,14249 L 16103,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16154,14249 L 16205,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16256,14249 L 16307,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16358,14249 L 16409,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16460,14249 L 16511,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16562,14249 L 16613,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16664,14249 L 16715,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16766,14249 L 16817,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16868,14249 L 16919,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 16970,14249 L 17021,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17072,14249 L 17123,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17174,14249 L 17225,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17276,14249 L 17327,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17378,14249 L 17429,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17480,14249 L 17531,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17582,14249 L 17633,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17684,14249 L 17735,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17786,14249 L 17837,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17888,14249 L 17939,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 17990,14249 L 18041,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18092,14249 L 18143,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18194,14249 L 18245,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18296,14249 L 18347,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18398,14249 L 18449,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18500,14249 L 18551,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18602,14249 L 18653,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18704,14249 L 18755,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18806,14249 L 18857,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 18908,14249 L 18959,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19010,14249 L 19061,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19112,14249 L 19163,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19214,14249 L 19265,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19316,14249 L 19367,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19418,14249 L 19469,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19520,14249 L 19571,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19622,14249 L 19673,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19724,14249 L 19775,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19826,14249 L 19877,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 19928,14249 L 19979,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20030,14249 L 20081,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20132,14249 L 20183,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20234,14249 L 20285,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20336,14249 L 20387,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20438,14249 L 20489,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20540,14249 L 20591,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20642,14249 L 20693,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20744,14249 L 20795,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20846,14249 L 20897,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 20948,14249 L 20999,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21050,14249 L 21101,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21152,14249 L 21203,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21254,14249 L 21305,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21356,14249 L 21407,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21458,14249 L 21509,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21560,14249 L 21611,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21662,14249 L 21713,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21764,14249 L 21815,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21866,14249 L 21917,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 21968,14249 L 22019,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 22070,14249 L 22121,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 22172,14249 L 22223,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 22274,14249 L 22325,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 22376,14249 L 22427,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 22478,14249 L 22529,14249"/> + <path fill="none" stroke="rgb(42,96,153)" stroke-width="28" stroke-linejoin="round" d="M 22580,14249 L 22600,14249"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id73"> + <rect class="BoundingBox" stroke="none" fill="none" x="6686" y="14686" width="4129" height="487"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10800,14700 L 10749,14706"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10699,14711 L 10648,14717"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10597,14723 L 10547,14728"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10496,14734 L 10445,14740"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10395,14745 L 10344,14751"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10293,14757 L 10242,14762"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10192,14768 L 10141,14774"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 10090,14779 L 10040,14785"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9989,14791 L 9938,14796"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9888,14802 L 9837,14808"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9786,14813 L 9736,14819"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9685,14825 L 9634,14830"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9584,14836 L 9533,14842"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9482,14847 L 9432,14853"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9381,14859 L 9330,14864"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9279,14870 L 9229,14876"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9178,14881 L 9127,14887"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 9077,14893 L 9026,14898"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8975,14904 L 8925,14909"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8874,14915 L 8823,14921"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8773,14926 L 8722,14932"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8671,14938 L 8621,14943"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8570,14949 L 8519,14955"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8469,14960 L 8418,14966"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8367,14972 L 8316,14977"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8266,14983 L 8215,14989"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8164,14994 L 8114,15000"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 8063,15006 L 8012,15011"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7962,15017 L 7911,15023"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7860,15028 L 7810,15034"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7759,15040 L 7708,15045"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7658,15051 L 7607,15057"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7556,15062 L 7505,15068"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7455,15074 L 7404,15079"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7353,15085 L 7303,15091"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7252,15096 L 7201,15102"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7151,15108 L 7100,15113"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 7049,15119 L 6999,15125"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6948,15130 L 6897,15136"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6847,15142 L 6796,15147"/> + <path fill="none" stroke="rgb(6,154,46)" stroke-width="28" stroke-linejoin="round" d="M 6745,15153 L 6700,15158"/> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id74"> + <rect class="BoundingBox" stroke="none" fill="none" x="18100" y="7986" width="1400" height="1115"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="18350" y="8560"><tspan fill="rgb(0,0,0)" stroke="none">P</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id75"> + <rect class="BoundingBox" stroke="none" fill="none" x="19800" y="14600" width="1315" height="1115"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="494px" font-weight="400"><tspan class="TextPosition" x="20050" y="15174"><tspan fill="rgb(0,0,0)" stroke="none">P‘</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id76"> + <rect class="BoundingBox" stroke="none" fill="none" x="17799" y="7799" width="303" height="303"/> + <path fill="rgb(0,0,0)" stroke="none" d="M 17950,7800 C 18035,7800 18100,7865 18100,7950 18100,8035 18035,8100 17950,8100 17865,8100 17800,8035 17800,7950 17800,7865 17865,7800 17950,7800 Z"/> + <path fill="none" stroke="rgb(0,0,0)" d="M 17950,7800 C 18035,7800 18100,7865 18100,7950 18100,8035 18035,8100 17950,8100 17865,8100 17800,8035 17800,7950 17800,7865 17865,7800 17950,7800 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.CustomShape"> + <g id="id77"> + <rect class="BoundingBox" stroke="none" fill="none" x="19701" y="14352" width="301" height="301"/> + <path fill="rgb(128,0,128)" stroke="none" d="M 19851,14352 C 19936,14352 20001,14417 20001,14502 20001,14587 19936,14652 19851,14652 19766,14652 19701,14587 19701,14502 19701,14417 19766,14352 19851,14352 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id78"> + <rect class="BoundingBox" stroke="none" fill="none" x="7549" y="7789" width="1130" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="7799" y="8172"><tspan fill="rgb(255,255,255)" stroke="none">quad</tspan></tspan></tspan></text> + </g> + </g> + <g class="Group"> + <g class="com.sun.star.drawing.LineShape"> + <g id="id79"> + <rect class="BoundingBox" stroke="none" fill="none" x="2782" y="10424" width="1219" height="353"/> + <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 2800,10600 L 3743,10600"/> + <path fill="rgb(0,0,0)" stroke="none" d="M 4000,10600 L 3719,10424 3719,10776 4000,10600 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id80"> + <rect class="BoundingBox" stroke="none" fill="none" x="2624" y="9400" width="353" height="1219"/> + <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 2800,10600 L 2800,9657"/> + <path fill="rgb(0,0,0)" stroke="none" d="M 2800,9400 L 2624,9681 2976,9681 2800,9400 Z"/> + </g> + </g> + </g> + <g class="Group"> + <g class="com.sun.star.drawing.LineShape"> + <g id="id81"> + <rect class="BoundingBox" stroke="none" fill="none" x="2782" y="15724" width="1219" height="353"/> + <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 2800,15900 L 3743,15900"/> + <path fill="rgb(0,0,0)" stroke="none" d="M 4000,15900 L 3719,15724 3719,16076 4000,15900 Z"/> + </g> + </g> + <g class="com.sun.star.drawing.LineShape"> + <g id="id82"> + <rect class="BoundingBox" stroke="none" fill="none" x="2624" y="14700" width="353" height="1219"/> + <path fill="none" stroke="rgb(0,0,0)" stroke-width="35" stroke-linejoin="round" d="M 2800,15900 L 2800,14957"/> + <path fill="rgb(0,0,0)" stroke="none" d="M 2800,14700 L 2624,14981 2976,14981 2800,14700 Z"/> + </g> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id83"> + <rect class="BoundingBox" stroke="none" fill="none" x="2478" y="8788" width="804" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2728" y="9171"><tspan fill="rgb(0,0,0)" stroke="none">y</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id84"> + <rect class="BoundingBox" stroke="none" fill="none" x="3897" y="10300" width="804" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4147" y="10683"><tspan fill="rgb(0,0,0)" stroke="none">x</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id85"> + <rect class="BoundingBox" stroke="none" fill="none" x="2478" y="14100" width="804" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="2728" y="14483"><tspan fill="rgb(0,0,0)" stroke="none">t</tspan></tspan></tspan></text> + </g> + </g> + <g class="com.sun.star.drawing.TextShape"> + <g id="id86"> + <rect class="BoundingBox" stroke="none" fill="none" x="3897" y="15612" width="804" height="570"/> + <text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="282px" font-weight="400"><tspan class="TextPosition" x="4147" y="15995"><tspan fill="rgb(0,0,0)" stroke="none">s</tspan></tspan></tspan></text> + </g> + </g> + </g> + </g> + </g> + </g> + </g> </svg> \ No newline at end of file diff --git a/content/html/_images/MaximumSpeedLimit-38.svg b/content/html/_images/MaximumSpeedLimit-38.svg index e06cd37d87aaaad29d8ff25996104f652dbda260..b37c4e0e040d2aaaca5809caa6d6a2f2795bf0dc 100644 --- a/content/html/_images/MaximumSpeedLimit-38.svg +++ b/content/html/_images/MaximumSpeedLimit-38.svg @@ -1,119 +1,119 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - inkscape:version="1.0 (4035a4fb49, 2020-05-01)" - sodipodi:docname="China_road_sign_ç¦_38 (40).svg" - viewBox="0 0 300 299.99982" - height="299.99982" - width="300" - id="svg4991" - version="1.1"> - <metadata - id="metadata4997"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs4995" /> - <sodipodi:namedview - inkscape:current-layer="text5005" - inkscape:window-maximized="1" - inkscape:window-y="-9" - inkscape:window-x="-9" - inkscape:cy="326.02181" - inkscape:cx="514.55326" - inkscape:zoom="0.94398813" - showgrid="false" - id="namedview4993" - inkscape:window-height="1001" - inkscape:window-width="1920" - inkscape:pageshadow="2" - inkscape:pageopacity="0" - guidetolerance="10" - gridtolerance="10" - objecttolerance="10" - borderopacity="1" - bordercolor="#666666" - pagecolor="#ffffff" /> - <g - transform="translate(-0.73552479,-3.282)" - id="g4999" - inkscape:label="Image" - inkscape:groupmode="layer"> - <g - style="font-style:normal;font-weight:normal;font-size:206.299px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:5.15748" - id="text5005" - transform="matrix(0.5543198,0,0,0.76735795,0.25581729,1.1414875)" - aria-label="4"> - <g - style="opacity:1" - transform="matrix(1.1552271,0,0,0.83450603,572.73314,7.5646904)" - id="g3929" - inkscape:label="Image"> - <g - inkscape:label="Image" - id="g3722" - transform="translate(-493.79868,-8.1185834)"> - <g - id="g3720" - transform="matrix(1.2901279,0,0,1.2901279,-1.2275844,2.3962852)"> - <path - id="path3714" - d="M 362.52362,181.56447 A 180.9592,180.9592 0 0 1 181.56442,362.52367 180.9592,180.9592 0 0 1 0.60522461,181.56447 180.9592,180.9592 0 0 1 181.56442,0.60527039 180.9592,180.9592 0 0 1 362.52362,181.56447 Z" - style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.21043;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" /> - </g> - </g> - <g - transform="matrix(1.2189513,0,0,1.2189513,-495.96377,-8.4666747)" - inkscape:label="Image" - id="g1122"> - <g - inkscape:label="Image" - id="g3929-2" - transform="translate(-288.89431,636.83941)"> - <g - transform="translate(-493.79868,-8.1185834)" - id="g3722-4" - inkscape:label="Image"> - <g - transform="matrix(1.0595545,0,0,1.0595545,140.15804,-108.85065)" - id="g3720-5"> - <path - d="M 963.83093,-307.15955 A 175.31982,175.31982 0 0 1 788.51111,-131.83972 175.31982,175.31982 0 0 1 613.19128,-307.15955 175.31982,175.31982 0 0 1 788.51111,-482.47937 175.31982,175.31982 0 0 1 963.83093,-307.15955" - style="fill:#c0111e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:6.91083" - id="path884" /> - <path - d="M 931.14854,-306.84509 A 142.48772,142.48772 0 0 1 788.66082,-164.35738 142.48772,142.48772 0 0 1 646.1731,-306.84509 142.48772,142.48772 0 0 1 788.66082,-449.33281 142.48772,142.48772 0 0 1 931.14854,-306.84509" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.61663" - id="ellipse886" /> - </g> - </g> - </g> - </g> - </g> - <path - transform="scale(1.1765728,0.84992616)" - d="m 301.4707,131.99414 c -18.46903,0 -33.19764,10.19501 -44.18554,30.58398 -10.05277,18.60899 -15.08008,41.74919 -15.08008,69.41993 0,27.67074 4.96841,50.89131 14.9043,69.66211 10.9879,20.87441 25.7754,31.3125 44.36132,31.3125 18.35214,0 33.02187,-10.43809 44.00977,-31.3125 10.05277,-19.25625 15.07812,-42.63952 15.07812,-70.14844 0,-27.18529 -4.90953,-50.08243 -14.72851,-68.69141 -10.87102,-20.55078 -25.65656,-30.82617 -44.35938,-30.82617 z m -118.64258,3.15625 -83.986323,119.42188 v 36.16601 h 83.285153 v 38.59375 h 26.82617 v -38.59375 h 14.37891 V 253.60156 H 208.95312 V 135.15039 Z m 118.64258,35.68164 c 9.81898,0 17.64951,6.39027 23.49414,19.17383 5.37706,11.81266 8.06641,25.81047 8.06641,41.99219 0,16.34353 -2.68935,30.50209 -8.06641,42.47656 -5.84463,13.43083 -13.67516,20.14648 -23.49414,20.14648 -9.58519,0 -17.47656,-6.63333 -23.67187,-19.90234 -5.49395,-12.13629 -8.24024,-26.37717 -8.24024,-42.7207 0,-18.60898 3.21349,-33.4144 9.64258,-44.41797 6.54599,-11.16539 13.97016,-16.74805 22.26953,-16.74805 z m -119.34375,18.93164 v 64.08008 h -45.23633 z" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:BywayEModified;-inkscape-font-specification:BywayEModified;fill:#000000;stroke-width:5.15748;opacity:1" - id="path5014" /> - </g> - <g - style="font-style:normal;font-weight:normal;font-size:206.299px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:5.15748" - id="text5009" - transform="scale(0.84992616,1.1765728)" - aria-label="0" /> - </g> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + inkscape:version="1.0 (4035a4fb49, 2020-05-01)" + sodipodi:docname="China_road_sign_ç¦_38 (40).svg" + viewBox="0 0 300 299.99982" + height="299.99982" + width="300" + id="svg4991" + version="1.1"> + <metadata + id="metadata4997"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs4995" /> + <sodipodi:namedview + inkscape:current-layer="text5005" + inkscape:window-maximized="1" + inkscape:window-y="-9" + inkscape:window-x="-9" + inkscape:cy="326.02181" + inkscape:cx="514.55326" + inkscape:zoom="0.94398813" + showgrid="false" + id="namedview4993" + inkscape:window-height="1001" + inkscape:window-width="1920" + inkscape:pageshadow="2" + inkscape:pageopacity="0" + guidetolerance="10" + gridtolerance="10" + objecttolerance="10" + borderopacity="1" + bordercolor="#666666" + pagecolor="#ffffff" /> + <g + transform="translate(-0.73552479,-3.282)" + id="g4999" + inkscape:label="Image" + inkscape:groupmode="layer"> + <g + style="font-style:normal;font-weight:normal;font-size:206.299px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:5.15748" + id="text5005" + transform="matrix(0.5543198,0,0,0.76735795,0.25581729,1.1414875)" + aria-label="4"> + <g + style="opacity:1" + transform="matrix(1.1552271,0,0,0.83450603,572.73314,7.5646904)" + id="g3929" + inkscape:label="Image"> + <g + inkscape:label="Image" + id="g3722" + transform="translate(-493.79868,-8.1185834)"> + <g + id="g3720" + transform="matrix(1.2901279,0,0,1.2901279,-1.2275844,2.3962852)"> + <path + id="path3714" + d="M 362.52362,181.56447 A 180.9592,180.9592 0 0 1 181.56442,362.52367 180.9592,180.9592 0 0 1 0.60522461,181.56447 180.9592,180.9592 0 0 1 181.56442,0.60527039 180.9592,180.9592 0 0 1 362.52362,181.56447 Z" + style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.21043;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker:none;enable-background:accumulate" /> + </g> + </g> + <g + transform="matrix(1.2189513,0,0,1.2189513,-495.96377,-8.4666747)" + inkscape:label="Image" + id="g1122"> + <g + inkscape:label="Image" + id="g3929-2" + transform="translate(-288.89431,636.83941)"> + <g + transform="translate(-493.79868,-8.1185834)" + id="g3722-4" + inkscape:label="Image"> + <g + transform="matrix(1.0595545,0,0,1.0595545,140.15804,-108.85065)" + id="g3720-5"> + <path + d="M 963.83093,-307.15955 A 175.31982,175.31982 0 0 1 788.51111,-131.83972 175.31982,175.31982 0 0 1 613.19128,-307.15955 175.31982,175.31982 0 0 1 788.51111,-482.47937 175.31982,175.31982 0 0 1 963.83093,-307.15955" + style="fill:#c0111e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:6.91083" + id="path884" /> + <path + d="M 931.14854,-306.84509 A 142.48772,142.48772 0 0 1 788.66082,-164.35738 142.48772,142.48772 0 0 1 646.1731,-306.84509 142.48772,142.48772 0 0 1 788.66082,-449.33281 142.48772,142.48772 0 0 1 931.14854,-306.84509" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.61663" + id="ellipse886" /> + </g> + </g> + </g> + </g> + </g> + <path + transform="scale(1.1765728,0.84992616)" + d="m 301.4707,131.99414 c -18.46903,0 -33.19764,10.19501 -44.18554,30.58398 -10.05277,18.60899 -15.08008,41.74919 -15.08008,69.41993 0,27.67074 4.96841,50.89131 14.9043,69.66211 10.9879,20.87441 25.7754,31.3125 44.36132,31.3125 18.35214,0 33.02187,-10.43809 44.00977,-31.3125 10.05277,-19.25625 15.07812,-42.63952 15.07812,-70.14844 0,-27.18529 -4.90953,-50.08243 -14.72851,-68.69141 -10.87102,-20.55078 -25.65656,-30.82617 -44.35938,-30.82617 z m -118.64258,3.15625 -83.986323,119.42188 v 36.16601 h 83.285153 v 38.59375 h 26.82617 v -38.59375 h 14.37891 V 253.60156 H 208.95312 V 135.15039 Z m 118.64258,35.68164 c 9.81898,0 17.64951,6.39027 23.49414,19.17383 5.37706,11.81266 8.06641,25.81047 8.06641,41.99219 0,16.34353 -2.68935,30.50209 -8.06641,42.47656 -5.84463,13.43083 -13.67516,20.14648 -23.49414,20.14648 -9.58519,0 -17.47656,-6.63333 -23.67187,-19.90234 -5.49395,-12.13629 -8.24024,-26.37717 -8.24024,-42.7207 0,-18.60898 3.21349,-33.4144 9.64258,-44.41797 6.54599,-11.16539 13.97016,-16.74805 22.26953,-16.74805 z m -119.34375,18.93164 v 64.08008 h -45.23633 z" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:BywayEModified;-inkscape-font-specification:BywayEModified;fill:#000000;stroke-width:5.15748;opacity:1" + id="path5014" /> + </g> + <g + style="font-style:normal;font-weight:normal;font-size:206.299px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:5.15748" + id="text5009" + transform="scale(0.84992616,1.1765728)" + aria-label="0" /> + </g> +</svg> diff --git a/content/html/_images/MaximumSpeedLimit_274-130.svg b/content/html/_images/MaximumSpeedLimit_274-130.svg index 8a3a6fd8be1009701ff7e97c616739d1c7c4a11c..e810e4a25d96ef4cdb6fe0e07adfa177bcd6c036 100644 --- a/content/html/_images/MaximumSpeedLimit_274-130.svg +++ b/content/html/_images/MaximumSpeedLimit_274-130.svg @@ -1,110 +1,110 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600.995 600.995" - height="600.995" - width="600.995" - xml:space="preserve" - id="svg16340" - version="1.1"><metadata - id="metadata4857"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs16344" /><path - id="path16350" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 600.49998,300.5 c 0,165.688 -134.31199,300 -299.99999,300 C 134.812,600.5 0.49999999,466.188 0.49999999,300.5 0.49999999,134.81201 134.812,0.50001035 300.49999,0.50001035 466.18799,0.50001035 600.49998,134.81201 600.49998,300.5 Z" /><path - id="path16352" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="M 300.49999,1.0358208e-5 C 134.54133,1.0358208e-5 0,134.54134 0,300.5 0,466.45333 134.54133,600.99466 300.49999,600.99466 466.45332,600.99466 600.99465,466.45333 600.99465,300.5 600.99465,134.54134 466.45332,1.0358208e-5 300.49999,1.0358208e-5 Z m 0,0.499999991792 c 165.688,0 299.99999,134.31199965 299.99999,299.99998965 0,165.688 -134.31199,300 -299.99999,300 C 134.812,600.5 0.49999999,466.188 0.49999999,300.5 0.49999999,134.81201 134.812,0.50001035 300.49999,0.50001035 Z" /><path - id="path16354" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="M 300.49999,10.50001 C 140.812,10.50001 10.5,140.81201 10.5,300.5 c 0,159.68267 130.312,290 289.99999,290 159.68267,0 290,-130.31733 290,-290 0,-159.68799 -130.31733,-289.99999 -290,-289.99999 z m 0,80.401331 c 116.23467,0 209.59866,93.358669 209.59866,209.598659 0,116.23467 -93.36399,209.59866 -209.59866,209.59866 C 184.26,510.09866 90.901331,416.73467 90.901331,300.5 90.901331,184.26001 184.26,90.901341 300.49999,90.901341 Z" /><path - id="path16356" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.791999,30.354676 v 0.03067 h -0.032 z" /><path - id="path16358" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.03067 v 0.03067 h -0.03067 z" /><path - id="path16360" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.385343 v -0.03067 l 0.032,0.03067 z m 0.032,0 -0.032,-0.03067 v 0.03067 z" /><path - id="path16362" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.385343 h -0.06267 0.032 v -0.03067 z" /><path - id="path16364" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.385343 v -0.03067 0.03067 l 0.032,-0.03067 z" /><path - id="path16366" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.03067 v 0.03067 h -0.03067 z" /><path - id="path16368" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.354676 v 0.06133 h -0.06267 z" /><path - id="path16370" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path - id="path16372" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.41601 v -0.06133 l 0.06267,0.06133 z m 0.06267,0 -0.06267,-0.06133 v 0.06133 z" /><path - id="path16374" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.41601 h -0.06267 0.032 v -0.06133 z" /><path - id="path16376" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.41601 v -0.06133 0.06133 l 0.06267,-0.06133 z" /><path - id="path16378" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path - id="path16380" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.354676 v 0.06133 h -0.06267 z" /><path - id="path16382" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path - id="path16384" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.41601 v -0.06133 l 0.06267,0.06133 z m 0.06267,0 -0.06267,-0.06133 v 0.06133 z" /><path - id="path16386" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.41601 h -0.06267 0.032 v -0.06133 z" /><path - id="path16388" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.41601 v -0.06133 0.06133 l 0.06267,-0.06133 z" /><path - id="path16390" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path - id="path16392" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.354676 v 0.06133 h -0.06267 z" /><path - id="path16394" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path - id="path16396" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.41601 v -0.06133 l 0.06267,0.06133 z m 0.06267,0 -0.06267,-0.06133 v 0.06133 z" /><path - id="path16398" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.41601 h -0.06267 0.032 v -0.06133 z" /><path - id="path16400" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.41601 v -0.06133 0.06133 l 0.06267,-0.06133 z" /><path - id="path16402" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><g - style="fill:#000000" - transform="translate(3.104875,1.18813)" - id="g5098"><path - id="path5085" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:'DIN Condensed';-inkscape-font-specification:'DIN Condensed, ';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.07722669px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 166.27021,213.67652 -35.22099,25.89779 v -37.29282 l 35.22099,-25.89779 h 35.221 v 245.85635 h -35.221 z" /><path - id="path5087" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:'DIN Condensed';-inkscape-font-specification:'DIN Condensed, ';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.07722669px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 269.42551,279.97486 q 15.88398,0 21.75414,-3.79834 6.21547,-3.79835 6.21547,-17.6105 v -31.76796 q 0,-7.59668 -4.83425,-12.43093 -4.48895,-4.83426 -12.43094,-4.83426 -9.32321,0 -13.46685,5.87017 -3.79835,5.87016 -3.79835,11.39502 v 20.02763 h -35.22099 v -20.37293 q 0,-10.70442 4.14365,-20.37293 4.14364,-9.66851 11.39502,-16.57458 7.25139,-6.90608 16.91989,-11.04973 9.66851,-4.14364 20.71824,-4.14364 14.50276,0 23.82596,5.87016 9.66851,5.52486 14.50276,11.39503 3.45304,4.14365 5.87017,8.6326 2.76243,4.14364 4.14365,10.01381 1.72652,5.52486 2.41712,13.81215 1.03592,7.94199 1.03592,19.68232 0,12.77625 -0.69061,20.71824 -0.34531,7.94198 -2.76243,13.46685 -2.07183,5.17955 -6.56078,8.9779 -4.14364,3.79834 -11.74033,8.28729 8.28729,5.17956 12.43094,9.66851 4.48895,4.48895 6.56077,10.70442 2.07183,5.87016 2.41713,14.50276 0.34531,8.28729 0.34531,21.40884 0,12.08563 -0.69061,20.02762 -0.34531,7.94199 -1.38122,13.46685 -1.03591,5.17956 -2.76243,8.9779 -1.72652,3.79835 -4.48895,7.94199 -6.56077,9.66851 -16.91989,16.22928 -10.35911,6.21547 -26.5884,6.21547 -8.28729,0 -17.61049,-2.76243 -9.32321,-2.76243 -16.91989,-8.9779 -7.59669,-6.21547 -12.77625,-16.22928 -4.83425,-10.01381 -4.83425,-24.51657 v -20.02763 h 35.22099 v 18.30111 q 0,8.28729 4.48896,13.81215 4.83425,5.17956 12.77624,5.17956 7.94199,0 12.43094,-5.17956 4.83425,-5.52486 4.83425,-14.50276 v -35.22099 q 0,-7.25139 -1.38121,-11.74034 -1.03592,-4.48895 -4.14365,-6.90607 -3.10774,-2.76243 -8.6326,-3.45304 -5.17956,-1.03591 -13.81215,-1.03591 z" /><path - id="path5089" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:'DIN Condensed';-inkscape-font-specification:'DIN Condensed, ';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.07722669px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600.995 600.995" + height="600.995" + width="600.995" + xml:space="preserve" + id="svg16340" + version="1.1"><metadata + id="metadata4857"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs16344" /><path + id="path16350" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 600.49998,300.5 c 0,165.688 -134.31199,300 -299.99999,300 C 134.812,600.5 0.49999999,466.188 0.49999999,300.5 0.49999999,134.81201 134.812,0.50001035 300.49999,0.50001035 466.18799,0.50001035 600.49998,134.81201 600.49998,300.5 Z" /><path + id="path16352" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="M 300.49999,1.0358208e-5 C 134.54133,1.0358208e-5 0,134.54134 0,300.5 0,466.45333 134.54133,600.99466 300.49999,600.99466 466.45332,600.99466 600.99465,466.45333 600.99465,300.5 600.99465,134.54134 466.45332,1.0358208e-5 300.49999,1.0358208e-5 Z m 0,0.499999991792 c 165.688,0 299.99999,134.31199965 299.99999,299.99998965 0,165.688 -134.31199,300 -299.99999,300 C 134.812,600.5 0.49999999,466.188 0.49999999,300.5 0.49999999,134.81201 134.812,0.50001035 300.49999,0.50001035 Z" /><path + id="path16354" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="M 300.49999,10.50001 C 140.812,10.50001 10.5,140.81201 10.5,300.5 c 0,159.68267 130.312,290 289.99999,290 159.68267,0 290,-130.31733 290,-290 0,-159.68799 -130.31733,-289.99999 -290,-289.99999 z m 0,80.401331 c 116.23467,0 209.59866,93.358669 209.59866,209.598659 0,116.23467 -93.36399,209.59866 -209.59866,209.59866 C 184.26,510.09866 90.901331,416.73467 90.901331,300.5 90.901331,184.26001 184.26,90.901341 300.49999,90.901341 Z" /><path + id="path16356" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.791999,30.354676 v 0.03067 h -0.032 z" /><path + id="path16358" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.03067 v 0.03067 h -0.03067 z" /><path + id="path16360" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.385343 v -0.03067 l 0.032,0.03067 z m 0.032,0 -0.032,-0.03067 v 0.03067 z" /><path + id="path16362" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.385343 h -0.06267 0.032 v -0.03067 z" /><path + id="path16364" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.385343 v -0.03067 0.03067 l 0.032,-0.03067 z" /><path + id="path16366" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.03067 v 0.03067 h -0.03067 z" /><path + id="path16368" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.354676 v 0.06133 h -0.06267 z" /><path + id="path16370" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path + id="path16372" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.41601 v -0.06133 l 0.06267,0.06133 z m 0.06267,0 -0.06267,-0.06133 v 0.06133 z" /><path + id="path16374" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.41601 h -0.06267 0.032 v -0.06133 z" /><path + id="path16376" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.41601 v -0.06133 0.06133 l 0.06267,-0.06133 z" /><path + id="path16378" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path + id="path16380" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.354676 v 0.06133 h -0.06267 z" /><path + id="path16382" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path + id="path16384" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.41601 v -0.06133 l 0.06267,0.06133 z m 0.06267,0 -0.06267,-0.06133 v 0.06133 z" /><path + id="path16386" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.41601 h -0.06267 0.032 v -0.06133 z" /><path + id="path16388" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.41601 v -0.06133 0.06133 l 0.06267,-0.06133 z" /><path + id="path16390" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path + id="path16392" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.354676 v 0.06133 h -0.06267 z" /><path + id="path16394" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path + id="path16396" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.41601 v -0.06133 l 0.06267,0.06133 z m 0.06267,0 -0.06267,-0.06133 v 0.06133 z" /><path + id="path16398" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.41601 h -0.06267 0.032 v -0.06133 z" /><path + id="path16400" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.41601 v -0.06133 0.06133 l 0.06267,-0.06133 z" /><path + id="path16402" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><g + style="fill:#000000" + transform="translate(3.104875,1.18813)" + id="g5098"><path + id="path5085" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:'DIN Condensed';-inkscape-font-specification:'DIN Condensed, ';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.07722669px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 166.27021,213.67652 -35.22099,25.89779 v -37.29282 l 35.22099,-25.89779 h 35.221 v 245.85635 h -35.221 z" /><path + id="path5087" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:'DIN Condensed';-inkscape-font-specification:'DIN Condensed, ';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.07722669px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 269.42551,279.97486 q 15.88398,0 21.75414,-3.79834 6.21547,-3.79835 6.21547,-17.6105 v -31.76796 q 0,-7.59668 -4.83425,-12.43093 -4.48895,-4.83426 -12.43094,-4.83426 -9.32321,0 -13.46685,5.87017 -3.79835,5.87016 -3.79835,11.39502 v 20.02763 h -35.22099 v -20.37293 q 0,-10.70442 4.14365,-20.37293 4.14364,-9.66851 11.39502,-16.57458 7.25139,-6.90608 16.91989,-11.04973 9.66851,-4.14364 20.71824,-4.14364 14.50276,0 23.82596,5.87016 9.66851,5.52486 14.50276,11.39503 3.45304,4.14365 5.87017,8.6326 2.76243,4.14364 4.14365,10.01381 1.72652,5.52486 2.41712,13.81215 1.03592,7.94199 1.03592,19.68232 0,12.77625 -0.69061,20.71824 -0.34531,7.94198 -2.76243,13.46685 -2.07183,5.17955 -6.56078,8.9779 -4.14364,3.79834 -11.74033,8.28729 8.28729,5.17956 12.43094,9.66851 4.48895,4.48895 6.56077,10.70442 2.07183,5.87016 2.41713,14.50276 0.34531,8.28729 0.34531,21.40884 0,12.08563 -0.69061,20.02762 -0.34531,7.94199 -1.38122,13.46685 -1.03591,5.17956 -2.76243,8.9779 -1.72652,3.79835 -4.48895,7.94199 -6.56077,9.66851 -16.91989,16.22928 -10.35911,6.21547 -26.5884,6.21547 -8.28729,0 -17.61049,-2.76243 -9.32321,-2.76243 -16.91989,-8.9779 -7.59669,-6.21547 -12.77625,-16.22928 -4.83425,-10.01381 -4.83425,-24.51657 v -20.02763 h 35.22099 v 18.30111 q 0,8.28729 4.48896,13.81215 4.83425,5.17956 12.77624,5.17956 7.94199,0 12.43094,-5.17956 4.83425,-5.52486 4.83425,-14.50276 v -35.22099 q 0,-7.25139 -1.38121,-11.74034 -1.03592,-4.48895 -4.14365,-6.90607 -3.10774,-2.76243 -8.6326,-3.45304 -5.17956,-1.03591 -13.81215,-1.03591 z" /><path + id="path5089" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:'DIN Condensed';-inkscape-font-specification:'DIN Condensed, ';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.07722669px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 358.76865,227.14337 q 0,-12.43094 4.14364,-22.09945 4.48895,-9.66851 11.74033,-16.57458 7.25139,-6.90608 16.57459,-10.35912 9.66851,-3.79834 20.02762,-3.79834 10.35912,0 19.68232,3.79834 9.66851,3.45304 16.91989,10.35912 7.25138,6.90607 11.39503,16.57458 4.48895,9.66851 4.48895,22.09945 v 144.33701 q 0,12.43094 -4.48895,22.09945 -4.14365,9.66851 -11.39503,16.57459 -7.25138,6.90607 -16.91989,10.70442 -9.3232,3.45303 -19.68232,3.45303 -10.35911,0 -20.02762,-3.45303 -9.3232,-3.79835 -16.57459,-10.70442 -7.25138,-6.90608 -11.74033,-16.57459 -4.14364,-9.66851 -4.14364,-22.09945 z m 35.22099,144.33701 q 0,7.59669 4.83426,12.77625 4.83425,4.83425 12.43093,4.83425 7.59669,0 12.43094,-4.83425 4.83426,-5.17956 4.83426,-12.77625 V 227.14337 q 0,-7.59669 -4.83426,-12.43094 -4.83425,-5.17956 -12.43094,-5.17956 -7.59668,0 -12.43093,5.17956 -4.83426,4.83425 -4.83426,12.43094 z" /></g></svg> \ No newline at end of file diff --git a/content/html/_images/MaximumSpeedLimit_274-5.svg b/content/html/_images/MaximumSpeedLimit_274-5.svg index d0635e00348e57d84951c7b0d2f78c5c2ca222b0..1acae3726602274724e0bb397ab1827e477db3d9 100644 --- a/content/html/_images/MaximumSpeedLimit_274-5.svg +++ b/content/html/_images/MaximumSpeedLimit_274-5.svg @@ -1,104 +1,104 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600.995 600.995" - height="600.995" - width="600.995" - xml:space="preserve" - id="svg16340" - version="1.1"><metadata - id="metadata4857"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs16344" /><path - id="path16350" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 600.49998,300.5 c 0,165.688 -134.31199,300 -299.99999,300 C 134.812,600.5 0.49999999,466.188 0.49999999,300.5 0.49999999,134.81201 134.812,0.50001035 300.49999,0.50001035 466.18799,0.50001035 600.49998,134.81201 600.49998,300.5 Z" /><path - id="path16352" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="M 300.49999,1.0358208e-5 C 134.54133,1.0358208e-5 0,134.54134 0,300.5 0,466.45333 134.54133,600.99466 300.49999,600.99466 466.45332,600.99466 600.99465,466.45333 600.99465,300.5 600.99465,134.54134 466.45332,1.0358208e-5 300.49999,1.0358208e-5 Z m 0,0.499999991792 c 165.688,0 299.99999,134.31199965 299.99999,299.99998965 0,165.688 -134.31199,300 -299.99999,300 C 134.812,600.5 0.49999999,466.188 0.49999999,300.5 0.49999999,134.81201 134.812,0.50001035 300.49999,0.50001035 Z" /><path - id="path16354" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="M 300.49999,10.50001 C 140.812,10.50001 10.5,140.81201 10.5,300.5 c 0,159.68267 130.312,290 289.99999,290 159.68267,0 290,-130.31733 290,-290 0,-159.68799 -130.31733,-289.99999 -290,-289.99999 z m 0,80.401331 c 116.23467,0 209.59866,93.358669 209.59866,209.598659 0,116.23467 -93.36399,209.59866 -209.59866,209.59866 C 184.26,510.09866 90.901331,416.73467 90.901331,300.5 90.901331,184.26001 184.26,90.901341 300.49999,90.901341 Z" /><path - id="path16356" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.791999,30.354676 v 0.03067 h -0.032 z" /><path - id="path16358" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.03067 v 0.03067 h -0.03067 z" /><path - id="path16360" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.385343 v -0.03067 l 0.032,0.03067 z m 0.032,0 -0.032,-0.03067 v 0.03067 z" /><path - id="path16362" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.385343 h -0.06267 0.032 v -0.03067 z" /><path - id="path16364" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.385343 v -0.03067 0.03067 l 0.032,-0.03067 z" /><path - id="path16366" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.03067 v 0.03067 h -0.03067 z" /><path - id="path16368" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.354676 v 0.06133 h -0.06267 z" /><path - id="path16370" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path - id="path16372" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.41601 v -0.06133 l 0.06267,0.06133 z m 0.06267,0 -0.06267,-0.06133 v 0.06133 z" /><path - id="path16374" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.41601 h -0.06267 0.032 v -0.06133 z" /><path - id="path16376" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.41601 v -0.06133 0.06133 l 0.06267,-0.06133 z" /><path - id="path16378" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path - id="path16380" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.354676 v 0.06133 h -0.06267 z" /><path - id="path16382" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path - id="path16384" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.41601 v -0.06133 l 0.06267,0.06133 z m 0.06267,0 -0.06267,-0.06133 v 0.06133 z" /><path - id="path16386" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.41601 h -0.06267 0.032 v -0.06133 z" /><path - id="path16388" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.41601 v -0.06133 0.06133 l 0.06267,-0.06133 z" /><path - id="path16390" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path - id="path16392" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.354676 v 0.06133 h -0.06267 z" /><path - id="path16394" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path - id="path16396" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.41601 v -0.06133 l 0.06267,0.06133 z m 0.06267,0 -0.06267,-0.06133 v 0.06133 z" /><path - id="path16398" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.822666,30.41601 h -0.06267 0.032 v -0.06133 z" /><path - id="path16400" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.41601 v -0.06133 0.06133 l 0.06267,-0.06133 z" /><path - id="path16402" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" - d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><g - id="text4861" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:348.18942261px;line-height:125%;font-family:'TGL 0-17';-inkscape-font-specification:'TGL 0-17';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - aria-label="5"><path - id="path5123" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'DIN 1451 Std';-inkscape-font-specification:'DIN 1451 Std';fill:#000000;stroke-width:0.0772267px" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600.995 600.995" + height="600.995" + width="600.995" + xml:space="preserve" + id="svg16340" + version="1.1"><metadata + id="metadata4857"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs16344" /><path + id="path16350" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 600.49998,300.5 c 0,165.688 -134.31199,300 -299.99999,300 C 134.812,600.5 0.49999999,466.188 0.49999999,300.5 0.49999999,134.81201 134.812,0.50001035 300.49999,0.50001035 466.18799,0.50001035 600.49998,134.81201 600.49998,300.5 Z" /><path + id="path16352" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="M 300.49999,1.0358208e-5 C 134.54133,1.0358208e-5 0,134.54134 0,300.5 0,466.45333 134.54133,600.99466 300.49999,600.99466 466.45332,600.99466 600.99465,466.45333 600.99465,300.5 600.99465,134.54134 466.45332,1.0358208e-5 300.49999,1.0358208e-5 Z m 0,0.499999991792 c 165.688,0 299.99999,134.31199965 299.99999,299.99998965 0,165.688 -134.31199,300 -299.99999,300 C 134.812,600.5 0.49999999,466.188 0.49999999,300.5 0.49999999,134.81201 134.812,0.50001035 300.49999,0.50001035 Z" /><path + id="path16354" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="M 300.49999,10.50001 C 140.812,10.50001 10.5,140.81201 10.5,300.5 c 0,159.68267 130.312,290 289.99999,290 159.68267,0 290,-130.31733 290,-290 0,-159.68799 -130.31733,-289.99999 -290,-289.99999 z m 0,80.401331 c 116.23467,0 209.59866,93.358669 209.59866,209.598659 0,116.23467 -93.36399,209.59866 -209.59866,209.59866 C 184.26,510.09866 90.901331,416.73467 90.901331,300.5 90.901331,184.26001 184.26,90.901341 300.49999,90.901341 Z" /><path + id="path16356" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.791999,30.354676 v 0.03067 h -0.032 z" /><path + id="path16358" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.03067 v 0.03067 h -0.03067 z" /><path + id="path16360" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.385343 v -0.03067 l 0.032,0.03067 z m 0.032,0 -0.032,-0.03067 v 0.03067 z" /><path + id="path16362" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.385343 h -0.06267 0.032 v -0.03067 z" /><path + id="path16364" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.385343 v -0.03067 0.03067 l 0.032,-0.03067 z" /><path + id="path16366" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.03067 v 0.03067 h -0.03067 z" /><path + id="path16368" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.354676 v 0.06133 h -0.06267 z" /><path + id="path16370" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path + id="path16372" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.41601 v -0.06133 l 0.06267,0.06133 z m 0.06267,0 -0.06267,-0.06133 v 0.06133 z" /><path + id="path16374" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.41601 h -0.06267 0.032 v -0.06133 z" /><path + id="path16376" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.41601 v -0.06133 0.06133 l 0.06267,-0.06133 z" /><path + id="path16378" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path + id="path16380" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.354676 v 0.06133 h -0.06267 z" /><path + id="path16382" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path + id="path16384" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.41601 v -0.06133 l 0.06267,0.06133 z m 0.06267,0 -0.06267,-0.06133 v 0.06133 z" /><path + id="path16386" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.41601 h -0.06267 0.032 v -0.06133 z" /><path + id="path16388" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.41601 v -0.06133 0.06133 l 0.06267,-0.06133 z" /><path + id="path16390" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path + id="path16392" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.354676 v 0.06133 h -0.06267 z" /><path + id="path16394" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><path + id="path16396" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.41601 v -0.06133 l 0.06267,0.06133 z m 0.06267,0 -0.06267,-0.06133 v 0.06133 z" /><path + id="path16398" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.822666,30.41601 h -0.06267 0.032 v -0.06133 z" /><path + id="path16400" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.41601 v -0.06133 0.06133 l 0.06267,-0.06133 z" /><path + id="path16402" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.33333325" + d="m 29.759999,30.354676 h 0.06267 v 0.06267 h -0.06267 z" /><g + id="text4861" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:348.18942261px;line-height:125%;font-family:'TGL 0-17';-inkscape-font-specification:'TGL 0-17';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + aria-label="5"><path + id="path5123" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'DIN 1451 Std';-inkscape-font-specification:'DIN 1451 Std';fill:#000000;stroke-width:0.0772267px" d="m 234.344,175.49999 h 131.96379 v 35.51532 h -98.53761 v 56.0585 q 17.06128,-13.57939 39.69359,-13.57939 14.27577,0 25.76602,5.57103 11.49025,5.22284 18.45404,12.53482 5.22284,5.57103 8.70474,11.14206 3.83008,5.22284 5.91922,12.88301 2.43732,7.66017 3.48189,18.10585 1.39276,10.44568 1.39276,25.76602 0,12.53482 -1.04457,21.58774 -0.69638,8.70474 -2.78551,15.66853 -1.74095,6.61559 -4.52647,11.83844 -2.78551,5.22284 -6.96379,10.44568 -7.66016,9.7493 -21.23955,18.10585 -13.57939,8.35654 -32.38162,8.35654 -12.18663,0 -24.37326,-3.48189 -11.83844,-3.48189 -21.93593,-11.14206 -10.09749,-8.00836 -17.06128,-20.19499 -6.96379,-12.18663 -9.05293,-29.5961 h 35.51532 q 2.78552,13.2312 11.49026,21.23956 9.05292,7.66016 24.02507,7.66016 12.883,0 19.84679,-4.87465 7.31198,-5.22284 10.44569,-12.88301 3.48189,-8.00835 3.83008,-17.40947 0.69638,-9.40111 0.69638,-18.10585 0,-10.44568 -1.74095,-19.15042 -1.39276,-8.70473 -5.22284,-14.97214 -3.83008,-6.26741 -11.14206,-9.74931 -6.96379,-3.83008 -17.75766,-3.83008 -10.0975,0 -18.10585,4.87465 -7.66017,4.52647 -13.92758,15.66853 H 234.344 Z" /></g></svg> \ No newline at end of file diff --git a/content/html/_images/MaximumSpeedLimit_R2-1.svg b/content/html/_images/MaximumSpeedLimit_R2-1.svg index cdb51c08216881dc626ab0d04b045e8f3da82060..181b52679f607968bc496869e24230a86046c6a6 100644 --- a/content/html/_images/MaximumSpeedLimit_R2-1.svg +++ b/content/html/_images/MaximumSpeedLimit_R2-1.svg @@ -1,23 +1,23 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="2710" height="3250" version="1.0"> - <metadata id="metadata1384"/> - <g id="g10806" transform="translate(-891.88772,1776.7297)"> - <g id="g3264" transform="matrix(0.190476,0,0,0.190476,725.7986,703.1369)"> - <path inkscape:connector-curvature="0" d="m 15073.23,3131.0006 c 0,489.3 -396.638,885.938 -885.938,885.938 l -12403.1376,0 c -489.2913,0 -885.93835,-396.638 -885.93835,-885.938 l 0,-15238.1406 c 0,-489.291 396.64705,-885.938 885.93835,-885.938 l 12403.1376,0 c 489.3,0 885.938,396.647 885.938,885.938 l 0,15238.1406 z" id="path11" fill="#ffffff" stroke="#000000" stroke-width="52.5"/> - <path inkscape:connector-curvature="0" d="m 1784.1545,3780.6884 c -358.24,0 -649.6882,-291.441 -649.6882,-649.688 l 0,-15238.1404 c 0,-358.24 291.4482,-649.688 649.6882,-649.688 l 12403.1375,0 c 358.247,0 649.688,291.448 649.688,649.688 l 0,15238.1404 c 0,358.247 -291.441,649.688 -649.688,649.688 l -12403.1375,0 z" id="path13"/> - <path inkscape:connector-curvature="0" d="m 1784.1544,3426.3128 c -162.8355,0 -295.3128,-132.497 -295.3128,-295.312 l 0,-15238.1408 c 0,-162.835 132.4773,-295.313 295.3128,-295.313 l 12403.1376,0 c 162.815,0 295.312,132.478 295.312,295.313 l 0,15238.1408 c 0,162.815 -132.497,295.312 -295.312,295.312 l -12403.1376,0 z" id="path15" fill="#ffffff"/> - <path inkscape:connector-curvature="0" d="m 12769.462,-10352.877 c -107.625,-58.019 -231.788,-91.186 -355.95,-91.186 l -358.444,0 0,1516.9894 358.444,0 c 124.162,0 240.056,-33.1669 339.412,-91.1926 248.326,-132.6282 364.22,-348.1541 364.22,-671.4428 0,-315 -115.894,-530.526 -347.682,-663.168 z m 198.713,1707.6368 c -165.572,91.186 -364.285,140.9298 -554.663,140.9298 l -788.945,0 0,-2362.5156 788.945,0 c 198.647,0 389.091,49.737 562.931,149.218 364.22,207.231 562.932,563.687 562.932,1027.899 0,472.4939 -198.712,837.2314 -571.2,1044.4688 z" id="path17"/> - <path inkscape:connector-curvature="0" d="m 7135.8129,-8504.3104 0,-2362.5156 1730.2705,0 0,422.763 -1297.67,0 0,439.354 707.0444,0 0,431.0448 -707.0444,0 0,646.5906 1339.2763,0 0,422.7632 -1771.8768,0 z" id="path19"/> - <path inkscape:connector-curvature="0" d="m 9380.1902,-8504.3104 0,-2362.5156 1730.2708,0 0,422.763 -1297.6704,0 0,439.354 707.0444,0 0,431.0448 -707.0444,0 0,646.5906 1339.2764,0 0,422.7632 -1771.8768,0 z" id="path21"/> - <path inkscape:connector-curvature="0" d="m 5963.6902,-10444.063 -713.4692,0 0,588.5588 713.4692,0 c 207.1258,0 347.9572,-116.0579 347.9572,-290.1348 0,-182.359 -140.8314,-298.424 -347.9572,-298.424 z m 405.9566,920.1491 c -132.5495,74.6157 -240.2599,91.1729 -422.5335,91.1729 l -696.8923,0 0,928.4306 -430.8351,0 0,-2362.5156 1127.7274,0 c 182.2736,0 289.984,24.866 422.5335,99.481 223.7159,124.34 364.5473,356.449 364.5473,621.706 0,248.6926 -140.8314,497.3787 -364.5473,621.7251 z" id="path23"/> - <path inkscape:connector-curvature="0" d="m 3312.8838,-9564.4636 c -105.1511,-29.0325 -369.5741,-92.4985 -458.798,-144.8083 -177.8373,-104.2716 -313.7731,-274.7721 -313.7731,-527.5471 0,-389.602 333.0013,-654.872 815.8639,-654.872 349.657,0 641.0454,116.058 882.48,364.737 l -316.3653,281.854 c -149.8483,-157.514 -341.3291,-232.11 -566.1147,-232.11 -241.4346,0 -382.9616,91.18 -382.9616,240.391 0,132.629 83.2585,190.661 374.6338,256.975 316.3588,66.3141 524.5018,132.6282 657.6944,198.9555 208.1431,107.7563 341.3357,331.5903 341.3357,588.5584 0,240.3912 -108.2223,422.7632 -333.0078,555.398 -166.4974,99.4745 -382.9551,157.4871 -599.4063,157.4871 -407.9451,0 -715.9826,-149.2052 -982.3941,-455.917 l 341.3357,-265.2697 c 174.8383,207.2505 366.3191,298.4431 632.724,298.4431 299.7032,0 516.1609,-132.6479 516.1609,-306.7184 0,-221.7405 -241.1918,-253.9362 -609.4075,-355.5566 z" id="path25"/> - <path inkscape:connector-curvature="0" d="m 5835.2751,-4960.5697 0,-2362.4764 425.2373,0 0,2362.4764 -425.2373,0 z" id="path27"/> - <path inkscape:connector-curvature="0" d="m 9710.9405,-4960.5697 0,-2362.4764 425.2505,0 0,2362.4764 -425.2505,0 z" id="path29"/> - <path inkscape:connector-curvature="0" d="m 3661.7466,-4960.5697 0,-2362.4764 424.253,0 0,1997.7323 1347.6238,0 0,364.7441 -1771.8768,0 z" id="path31"/> - <path inkscape:connector-curvature="0" d="m 8680.6275,-4960.5697 0,-1442.3736 -699.0387,1442.3736 -690.7364,-1442.3736 0,1442.3736 -416.0892,0 0,-2362.4895 416.0892,0 690.7364,1400.9508 699.0387,-1400.9508 416.0629,0 0,2362.4895 -416.0629,0 z" id="path33"/> - <path inkscape:connector-curvature="0" d="m 11630.736,-6908.571 0,1948.0013 -413.963,0 0,-1948.0013 -678.957,0 0,-414.4682 1771.877,0 0,414.4682 -678.957,0 z" id="path35"/> - <path inkscape:connector-curvature="0" d="m 5021.0583,1990.2402 c -779.2451,0 -1478.559,-198.975 -2197.8622,-636.629 L 3362.667,498.12324 c 499.5183,298.397 1078.9548,457.538 1658.3913,457.538 859.1634,0 1378.6645,-378 1378.6645,-1014.629997 0,-298.397003 -139.8601,-596.794003 -359.645,-775.885003 -199.8087,-159.141 -499.5315,-238.74304 -919.1185,-238.74304 -379.641,0 -679.3375,59.719 -1098.9376,218.85904 l -1019.0129,-258.62904 179.8324,-2665.9517 3796.3116,0 -19.9829,994.7442 -2817.2578,0 -59.9288,815.7196 c 459.5395,-99.4876 739.2664,-139.2559 1098.9245,-139.2559 1298.7332,0 2237.8213,875.3728 2237.8213,2049.141843 0,1193.719957 -999.0235,2049.208957 -2397.6708,2049.208957 z" id="path37"/> - <path inkscape:connector-curvature="0" d="m 12131.324,-954.22576 c 0,-1193.71974 -498.488,-1909.88554 -1355.945,-1909.88554 -1016.926,0 -1375.8294,1054.3974 -1375.8294,1890.00154 0,1253.373 518.438,1949.721 1375.8294,1949.721 837.507,0 1355.945,-775.886 1355.945,-1949.721 l 0,19.884 z M 10775.379,1990.2402 c -1694.8985,0 -2392.7555,-1452.34896 -2392.7555,-2944.46596 0,-1492.11644 717.807,-2924.51474 2392.7555,-2924.51474 1694.898,0 2372.871,1472.1666 2372.871,2904.63074 0,1452.349 -658.023,2964.34996 -2372.871,2964.34996 z" id="path39"/> - </g> - </g> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="2710" height="3250" version="1.0"> + <metadata id="metadata1384"/> + <g id="g10806" transform="translate(-891.88772,1776.7297)"> + <g id="g3264" transform="matrix(0.190476,0,0,0.190476,725.7986,703.1369)"> + <path inkscape:connector-curvature="0" d="m 15073.23,3131.0006 c 0,489.3 -396.638,885.938 -885.938,885.938 l -12403.1376,0 c -489.2913,0 -885.93835,-396.638 -885.93835,-885.938 l 0,-15238.1406 c 0,-489.291 396.64705,-885.938 885.93835,-885.938 l 12403.1376,0 c 489.3,0 885.938,396.647 885.938,885.938 l 0,15238.1406 z" id="path11" fill="#ffffff" stroke="#000000" stroke-width="52.5"/> + <path inkscape:connector-curvature="0" d="m 1784.1545,3780.6884 c -358.24,0 -649.6882,-291.441 -649.6882,-649.688 l 0,-15238.1404 c 0,-358.24 291.4482,-649.688 649.6882,-649.688 l 12403.1375,0 c 358.247,0 649.688,291.448 649.688,649.688 l 0,15238.1404 c 0,358.247 -291.441,649.688 -649.688,649.688 l -12403.1375,0 z" id="path13"/> + <path inkscape:connector-curvature="0" d="m 1784.1544,3426.3128 c -162.8355,0 -295.3128,-132.497 -295.3128,-295.312 l 0,-15238.1408 c 0,-162.835 132.4773,-295.313 295.3128,-295.313 l 12403.1376,0 c 162.815,0 295.312,132.478 295.312,295.313 l 0,15238.1408 c 0,162.815 -132.497,295.312 -295.312,295.312 l -12403.1376,0 z" id="path15" fill="#ffffff"/> + <path inkscape:connector-curvature="0" d="m 12769.462,-10352.877 c -107.625,-58.019 -231.788,-91.186 -355.95,-91.186 l -358.444,0 0,1516.9894 358.444,0 c 124.162,0 240.056,-33.1669 339.412,-91.1926 248.326,-132.6282 364.22,-348.1541 364.22,-671.4428 0,-315 -115.894,-530.526 -347.682,-663.168 z m 198.713,1707.6368 c -165.572,91.186 -364.285,140.9298 -554.663,140.9298 l -788.945,0 0,-2362.5156 788.945,0 c 198.647,0 389.091,49.737 562.931,149.218 364.22,207.231 562.932,563.687 562.932,1027.899 0,472.4939 -198.712,837.2314 -571.2,1044.4688 z" id="path17"/> + <path inkscape:connector-curvature="0" d="m 7135.8129,-8504.3104 0,-2362.5156 1730.2705,0 0,422.763 -1297.67,0 0,439.354 707.0444,0 0,431.0448 -707.0444,0 0,646.5906 1339.2763,0 0,422.7632 -1771.8768,0 z" id="path19"/> + <path inkscape:connector-curvature="0" d="m 9380.1902,-8504.3104 0,-2362.5156 1730.2708,0 0,422.763 -1297.6704,0 0,439.354 707.0444,0 0,431.0448 -707.0444,0 0,646.5906 1339.2764,0 0,422.7632 -1771.8768,0 z" id="path21"/> + <path inkscape:connector-curvature="0" d="m 5963.6902,-10444.063 -713.4692,0 0,588.5588 713.4692,0 c 207.1258,0 347.9572,-116.0579 347.9572,-290.1348 0,-182.359 -140.8314,-298.424 -347.9572,-298.424 z m 405.9566,920.1491 c -132.5495,74.6157 -240.2599,91.1729 -422.5335,91.1729 l -696.8923,0 0,928.4306 -430.8351,0 0,-2362.5156 1127.7274,0 c 182.2736,0 289.984,24.866 422.5335,99.481 223.7159,124.34 364.5473,356.449 364.5473,621.706 0,248.6926 -140.8314,497.3787 -364.5473,621.7251 z" id="path23"/> + <path inkscape:connector-curvature="0" d="m 3312.8838,-9564.4636 c -105.1511,-29.0325 -369.5741,-92.4985 -458.798,-144.8083 -177.8373,-104.2716 -313.7731,-274.7721 -313.7731,-527.5471 0,-389.602 333.0013,-654.872 815.8639,-654.872 349.657,0 641.0454,116.058 882.48,364.737 l -316.3653,281.854 c -149.8483,-157.514 -341.3291,-232.11 -566.1147,-232.11 -241.4346,0 -382.9616,91.18 -382.9616,240.391 0,132.629 83.2585,190.661 374.6338,256.975 316.3588,66.3141 524.5018,132.6282 657.6944,198.9555 208.1431,107.7563 341.3357,331.5903 341.3357,588.5584 0,240.3912 -108.2223,422.7632 -333.0078,555.398 -166.4974,99.4745 -382.9551,157.4871 -599.4063,157.4871 -407.9451,0 -715.9826,-149.2052 -982.3941,-455.917 l 341.3357,-265.2697 c 174.8383,207.2505 366.3191,298.4431 632.724,298.4431 299.7032,0 516.1609,-132.6479 516.1609,-306.7184 0,-221.7405 -241.1918,-253.9362 -609.4075,-355.5566 z" id="path25"/> + <path inkscape:connector-curvature="0" d="m 5835.2751,-4960.5697 0,-2362.4764 425.2373,0 0,2362.4764 -425.2373,0 z" id="path27"/> + <path inkscape:connector-curvature="0" d="m 9710.9405,-4960.5697 0,-2362.4764 425.2505,0 0,2362.4764 -425.2505,0 z" id="path29"/> + <path inkscape:connector-curvature="0" d="m 3661.7466,-4960.5697 0,-2362.4764 424.253,0 0,1997.7323 1347.6238,0 0,364.7441 -1771.8768,0 z" id="path31"/> + <path inkscape:connector-curvature="0" d="m 8680.6275,-4960.5697 0,-1442.3736 -699.0387,1442.3736 -690.7364,-1442.3736 0,1442.3736 -416.0892,0 0,-2362.4895 416.0892,0 690.7364,1400.9508 699.0387,-1400.9508 416.0629,0 0,2362.4895 -416.0629,0 z" id="path33"/> + <path inkscape:connector-curvature="0" d="m 11630.736,-6908.571 0,1948.0013 -413.963,0 0,-1948.0013 -678.957,0 0,-414.4682 1771.877,0 0,414.4682 -678.957,0 z" id="path35"/> + <path inkscape:connector-curvature="0" d="m 5021.0583,1990.2402 c -779.2451,0 -1478.559,-198.975 -2197.8622,-636.629 L 3362.667,498.12324 c 499.5183,298.397 1078.9548,457.538 1658.3913,457.538 859.1634,0 1378.6645,-378 1378.6645,-1014.629997 0,-298.397003 -139.8601,-596.794003 -359.645,-775.885003 -199.8087,-159.141 -499.5315,-238.74304 -919.1185,-238.74304 -379.641,0 -679.3375,59.719 -1098.9376,218.85904 l -1019.0129,-258.62904 179.8324,-2665.9517 3796.3116,0 -19.9829,994.7442 -2817.2578,0 -59.9288,815.7196 c 459.5395,-99.4876 739.2664,-139.2559 1098.9245,-139.2559 1298.7332,0 2237.8213,875.3728 2237.8213,2049.141843 0,1193.719957 -999.0235,2049.208957 -2397.6708,2049.208957 z" id="path37"/> + <path inkscape:connector-curvature="0" d="m 12131.324,-954.22576 c 0,-1193.71974 -498.488,-1909.88554 -1355.945,-1909.88554 -1016.926,0 -1375.8294,1054.3974 -1375.8294,1890.00154 0,1253.373 518.438,1949.721 1375.8294,1949.721 837.507,0 1355.945,-775.886 1355.945,-1949.721 l 0,19.884 z M 10775.379,1990.2402 c -1694.8985,0 -2392.7555,-1452.34896 -2392.7555,-2944.46596 0,-1492.11644 717.807,-2924.51474 2392.7555,-2924.51474 1694.898,0 2372.871,1472.1666 2372.871,2904.63074 0,1452.349 -658.023,2964.34996 -2372.871,2964.34996 z" id="path39"/> + </g> + </g> +</svg> diff --git a/content/html/_images/MinimumSpeedLimit_275.svg b/content/html/_images/MinimumSpeedLimit_275.svg index 50f1704bff1101a28d06e6c4bcdce07da81f2ce5..2c1c07cc830090a27d2a006fe623ddef5c162d12 100644 --- a/content/html/_images/MinimumSpeedLimit_275.svg +++ b/content/html/_images/MinimumSpeedLimit_275.svg @@ -1,35 +1,35 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 602.02063 602.02252" - height="602.02252" - width="602.02063" - xml:space="preserve" - version="1.1" - id="svg7242"><metadata - id="metadata7248"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs7246" /><g - transform="matrix(1.25,0,0,-1.25,0,602.02251)" - id="g7250"><g - id="g7252"><path - id="path7254" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 410.824,410.778 c 31.278,-31.277 50.75,-64.996 62.203,-107.726 11.453,-42.77 11.453,-81.715 0,-124.485 C 461.578,135.837 442.086,102.098 410.789,70.802 379.512,39.524 345.789,20.048 303.039,8.579 260.293,-2.855 221.324,-2.87 178.578,8.598 135.844,20.052 102.125,39.524 70.848,70.802 39.551,102.098 20.059,135.837 8.59,178.587 c -11.453,42.73 -11.453,81.715 0,124.445 11.469,42.746 30.941,76.469 62.222,107.746 31.293,31.297 65.036,50.789 107.762,62.242 42.75,11.469 81.719,11.453 124.469,0.02 42.746,-11.473 76.484,-30.961 107.781,-62.262 z m -0.281,-0.281 C 379.289,441.751 345.629,461.2 302.938,472.653 260.246,484.071 221.367,484.091 178.68,472.634 136.004,461.196 102.348,441.751 71.094,410.497 39.859,379.259 20.426,345.618 8.973,302.931 -2.461,260.259 -2.461,221.364 8.977,178.692 20.43,136.001 39.879,102.341 71.133,71.087 102.367,39.852 136.012,20.423 178.68,8.985 221.371,-2.468 260.246,-2.448 302.938,8.966 c 42.691,11.453 76.332,30.882 107.57,62.117 31.254,31.254 50.699,64.914 62.133,107.59 11.437,42.707 11.437,81.566 0,124.273 -11.43,42.672 -30.864,76.317 -62.098,107.551 z" /><path - id="path7256" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 71.094,410.497 c 31.254,31.254 64.91,50.699 107.586,62.137 42.687,11.457 81.566,11.437 124.258,0.019 42.691,-11.457 76.351,-30.902 107.605,-62.156 31.238,-31.234 50.668,-64.879 62.098,-107.551 11.437,-42.707 11.437,-81.57 0.004,-124.277 C 461.207,135.997 441.762,102.337 410.508,71.083 379.27,39.848 345.629,20.419 302.941,8.966 260.25,-2.452 221.371,-2.468 178.68,8.985 136.012,20.423 102.371,39.848 71.133,71.087 39.879,102.341 20.434,136.001 8.977,178.692 c -11.438,42.672 -11.438,81.567 0,124.242 11.449,42.684 30.882,76.325 62.117,107.563 z" /><path - id="path7258" - style="fill:#154889;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 79.035,402.595 c 29.77,29.769 61.867,48.32 102.555,59.195 40.683,10.914 77.777,10.914 118.445,0.019 40.684,-10.875 72.801,-29.441 102.59,-59.23 29.773,-29.773 48.281,-61.871 59.176,-102.535 10.894,-40.707 10.894,-77.762 0.004,-118.465 C 450.906,140.911 432.379,108.794 402.609,79.024 372.816,49.235 340.719,30.684 300.035,19.809 259.367,8.915 222.273,8.915 181.586,19.829 140.902,30.704 108.824,49.235 79.051,79.005 c -29.789,29.793 -48.356,61.906 -59.227,102.59 -10.898,40.668 -10.898,77.761 0,118.429 10.871,40.684 29.422,72.782 59.211,102.571 z" /><path - id="path7260" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 82.223,180.595 34.914,0 c 4.746,-19.61 24.504,-31.676 44.125,-26.918 16.398,3.968 27.949,18.656 27.949,35.523 l 0,4.297 c 0,20.195 -16.371,36.555 -36.551,36.555 l -15.051,0 0,30.109 15.051,0 c 18.992,0 34.402,15.398 34.402,34.391 0,19.007 -15.41,34.406 -34.402,34.406 -16.508,0 -30.707,-11.735 -33.801,-27.949 l -34.695,0 c 3.555,37.828 37.109,65.609 74.938,62.05 35.351,-3.324 62.355,-33.007 62.355,-68.507 0,-19.586 -9.527,-37.95 -25.535,-49.223 17.297,-11.566 27.683,-31.02 27.683,-51.832 l 0,-4.297 c 0,-39.187 -31.761,-70.945 -70.945,-70.945 -35.863,0 -66.082,26.746 -70.437,62.34" /><path - id="path7262" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 602.02063 602.02252" + height="602.02252" + width="602.02063" + xml:space="preserve" + version="1.1" + id="svg7242"><metadata + id="metadata7248"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs7246" /><g + transform="matrix(1.25,0,0,-1.25,0,602.02251)" + id="g7250"><g + id="g7252"><path + id="path7254" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 410.824,410.778 c 31.278,-31.277 50.75,-64.996 62.203,-107.726 11.453,-42.77 11.453,-81.715 0,-124.485 C 461.578,135.837 442.086,102.098 410.789,70.802 379.512,39.524 345.789,20.048 303.039,8.579 260.293,-2.855 221.324,-2.87 178.578,8.598 135.844,20.052 102.125,39.524 70.848,70.802 39.551,102.098 20.059,135.837 8.59,178.587 c -11.453,42.73 -11.453,81.715 0,124.445 11.469,42.746 30.941,76.469 62.222,107.746 31.293,31.297 65.036,50.789 107.762,62.242 42.75,11.469 81.719,11.453 124.469,0.02 42.746,-11.473 76.484,-30.961 107.781,-62.262 z m -0.281,-0.281 C 379.289,441.751 345.629,461.2 302.938,472.653 260.246,484.071 221.367,484.091 178.68,472.634 136.004,461.196 102.348,441.751 71.094,410.497 39.859,379.259 20.426,345.618 8.973,302.931 -2.461,260.259 -2.461,221.364 8.977,178.692 20.43,136.001 39.879,102.341 71.133,71.087 102.367,39.852 136.012,20.423 178.68,8.985 221.371,-2.468 260.246,-2.448 302.938,8.966 c 42.691,11.453 76.332,30.882 107.57,62.117 31.254,31.254 50.699,64.914 62.133,107.59 11.437,42.707 11.437,81.566 0,124.273 -11.43,42.672 -30.864,76.317 -62.098,107.551 z" /><path + id="path7256" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 71.094,410.497 c 31.254,31.254 64.91,50.699 107.586,62.137 42.687,11.457 81.566,11.437 124.258,0.019 42.691,-11.457 76.351,-30.902 107.605,-62.156 31.238,-31.234 50.668,-64.879 62.098,-107.551 11.437,-42.707 11.437,-81.57 0.004,-124.277 C 461.207,135.997 441.762,102.337 410.508,71.083 379.27,39.848 345.629,20.419 302.941,8.966 260.25,-2.452 221.371,-2.468 178.68,8.985 136.012,20.423 102.371,39.848 71.133,71.087 39.879,102.341 20.434,136.001 8.977,178.692 c -11.438,42.672 -11.438,81.567 0,124.242 11.449,42.684 30.882,76.325 62.117,107.563 z" /><path + id="path7258" + style="fill:#154889;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 79.035,402.595 c 29.77,29.769 61.867,48.32 102.555,59.195 40.683,10.914 77.777,10.914 118.445,0.019 40.684,-10.875 72.801,-29.441 102.59,-59.23 29.773,-29.773 48.281,-61.871 59.176,-102.535 10.894,-40.707 10.894,-77.762 0.004,-118.465 C 450.906,140.911 432.379,108.794 402.609,79.024 372.816,49.235 340.719,30.684 300.035,19.809 259.367,8.915 222.273,8.915 181.586,19.829 140.902,30.704 108.824,49.235 79.051,79.005 c -29.789,29.793 -48.356,61.906 -59.227,102.59 -10.898,40.668 -10.898,77.761 0,118.429 10.871,40.684 29.422,72.782 59.211,102.571 z" /><path + id="path7260" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 82.223,180.595 34.914,0 c 4.746,-19.61 24.504,-31.676 44.125,-26.918 16.398,3.968 27.949,18.656 27.949,35.523 l 0,4.297 c 0,20.195 -16.371,36.555 -36.551,36.555 l -15.051,0 0,30.109 15.051,0 c 18.992,0 34.402,15.398 34.402,34.391 0,19.007 -15.41,34.406 -34.402,34.406 -16.508,0 -30.707,-11.735 -33.801,-27.949 l -34.695,0 c 3.555,37.828 37.109,65.609 74.938,62.05 35.351,-3.324 62.355,-33.007 62.355,-68.507 0,-19.586 -9.527,-37.95 -25.535,-49.223 17.297,-11.566 27.683,-31.02 27.683,-51.832 l 0,-4.297 c 0,-39.187 -31.761,-70.945 -70.945,-70.945 -35.863,0 -66.082,26.746 -70.437,62.34" /><path + id="path7262" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 292.418,187.052 c 0,-19.004 15.387,-34.407 34.402,-34.407 18.996,0 34.395,15.403 34.395,34.407 l 0,107.5 c 0,19.007 -15.399,34.406 -34.395,34.406 -19.015,0 -34.402,-15.399 -34.402,-34.406 l 0,-107.5 z m -34.406,0 0,107.5 c 0,38 30.8,68.812 68.808,68.812 37.989,0 68.789,-30.812 68.789,-68.812 l 0,-107.5 c 0,-37.996 -30.8,-68.797 -68.789,-68.797 -38.008,0 -68.808,30.801 -68.808,68.797" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/OvertakingBanBegin_276.svg b/content/html/_images/OvertakingBanBegin_276.svg index c01375ed817650e078f522484e3156dd860b7b89..bc2393c26e1333573313faa8940db525a04a04a3 100644 --- a/content/html/_images/OvertakingBanBegin_276.svg +++ b/content/html/_images/OvertakingBanBegin_276.svg @@ -1,41 +1,41 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600.995 600.995" - height="600.995" - width="600.995" - xml:space="preserve" - version="1.1" - id="svg6189"><metadata - id="metadata6195"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs6193" /><g - transform="matrix(1.25,0,0,-1.25,0,600.99499)" - id="g6197"><g - id="g6199"><path - id="path6201" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 480.398,240.398 c 0,-132.551 -107.449,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.55 107.45,240 240,240 132.551,0 240,-107.45 240,-240 z" /><path - id="path6203" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 240.398,480.796 C 107.633,480.796 0,373.163 0,240.398 0,107.632 107.633,-0.001 240.398,-0.001 c 132.766,0 240.399,107.633 240.399,240.399 0,132.765 -107.633,240.398 -240.399,240.398 z m 0,-0.398 c 132.551,0 240,-107.45 240,-240 0,-132.551 -107.449,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.55 107.45,240 240,240 z" /><path - id="path6205" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 240.398,472.398 c -127.746,0 -232,-104.254 -232,-232 0,-127.747 104.254,-232 232,-232 127.747,0 232,104.253 232,232 0,127.746 -104.253,232 -232,232 z m 0,-64.321 c 92.989,0 167.68,-74.691 167.68,-167.679 0,-92.989 -74.691,-167.68 -167.68,-167.68 -92.988,0 -167.679,74.691 -167.679,167.68 0,92.988 74.691,167.679 167.679,167.679 z" /><path - id="path6207" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 123.008,291.675 c -3.199,0 -6.07,-1.891 -7.356,-4.809 L 102.98,257.73 c -0.898,-2.047 -2.023,-4 -3.367,-5.805 l -1.925,-2.555 c -1.25,-1.672 -1.93,-3.695 -1.93,-5.769 l 0,-20.836 c 0,-4.422 3.586,-8.008 8.008,-8.008 l 118.609,0 c 4.422,0 8.012,3.586 8.012,8.008 l 0,20.836 c 0,2.074 -0.68,4.097 -1.926,5.769 l -1.93,2.555 c -1.343,1.805 -2.469,3.758 -3.367,5.805 l -12.672,29.136 c -1.273,2.918 -4.168,4.809 -7.355,4.809 l -80.129,0 z m 1.937,-8.008 76.254,0 c 1.274,0 2.438,-0.75 2.946,-1.926 l 11.011,-25.32 -104.168,0 11.012,25.32 c 0.512,1.176 1.66,1.926 2.945,1.926 z" /><path - id="path6209" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 203.137,211.546 19.242,0 0,-17.629 c 0,-2.652 -2.16,-4.809 -4.813,-4.809 l -9.617,0 c -2.656,0 -4.812,2.157 -4.812,4.809 l 0,17.629 z m -99.367,0 19.238,0 0,-17.629 c 0,-2.652 -2.156,-4.809 -4.809,-4.809 l -9.621,0 c -2.652,0 -4.808,2.157 -4.808,4.809" /><path - id="path6211" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 277.66,291.675 c -3.187,0 -6.07,-1.891 -7.344,-4.809 L 257.633,257.73 c -0.899,-2.047 -2.024,-4 -3.367,-5.805 l -1.93,-2.555 c -1.246,-1.672 -1.914,-3.695 -1.914,-5.769 l 0,-20.836 c 0,-4.422 3.578,-8.008 8.012,-8.008 l 118.597,0 c 4.422,0 8.008,3.586 8.008,8.008 l 0,20.836 c 0,2.074 -0.668,4.097 -1.93,5.769 l -1.914,2.555 c -1.343,1.805 -2.48,3.758 -3.379,5.805 l -12.671,29.136 c -1.274,2.918 -4.157,4.809 -7.344,4.809 l -80.141,0 z m 1.938,-8.008 76.265,0 c 1.274,0 2.422,-0.75 2.934,-1.926 l 11.023,-25.32 -104.179,0 11.011,25.32 c 0.524,1.176 1.676,1.926 2.946,1.926 z" /><path - id="path6213" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600.995 600.995" + height="600.995" + width="600.995" + xml:space="preserve" + version="1.1" + id="svg6189"><metadata + id="metadata6195"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs6193" /><g + transform="matrix(1.25,0,0,-1.25,0,600.99499)" + id="g6197"><g + id="g6199"><path + id="path6201" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 480.398,240.398 c 0,-132.551 -107.449,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.55 107.45,240 240,240 132.551,0 240,-107.45 240,-240 z" /><path + id="path6203" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 240.398,480.796 C 107.633,480.796 0,373.163 0,240.398 0,107.632 107.633,-0.001 240.398,-0.001 c 132.766,0 240.399,107.633 240.399,240.399 0,132.765 -107.633,240.398 -240.399,240.398 z m 0,-0.398 c 132.551,0 240,-107.45 240,-240 0,-132.551 -107.449,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.55 107.45,240 240,240 z" /><path + id="path6205" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 240.398,472.398 c -127.746,0 -232,-104.254 -232,-232 0,-127.747 104.254,-232 232,-232 127.747,0 232,104.253 232,232 0,127.746 -104.253,232 -232,232 z m 0,-64.321 c 92.989,0 167.68,-74.691 167.68,-167.679 0,-92.989 -74.691,-167.68 -167.68,-167.68 -92.988,0 -167.679,74.691 -167.679,167.68 0,92.988 74.691,167.679 167.679,167.679 z" /><path + id="path6207" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 123.008,291.675 c -3.199,0 -6.07,-1.891 -7.356,-4.809 L 102.98,257.73 c -0.898,-2.047 -2.023,-4 -3.367,-5.805 l -1.925,-2.555 c -1.25,-1.672 -1.93,-3.695 -1.93,-5.769 l 0,-20.836 c 0,-4.422 3.586,-8.008 8.008,-8.008 l 118.609,0 c 4.422,0 8.012,3.586 8.012,8.008 l 0,20.836 c 0,2.074 -0.68,4.097 -1.926,5.769 l -1.93,2.555 c -1.343,1.805 -2.469,3.758 -3.367,5.805 l -12.672,29.136 c -1.273,2.918 -4.168,4.809 -7.355,4.809 l -80.129,0 z m 1.937,-8.008 76.254,0 c 1.274,0 2.438,-0.75 2.946,-1.926 l 11.011,-25.32 -104.168,0 11.012,25.32 c 0.512,1.176 1.66,1.926 2.945,1.926 z" /><path + id="path6209" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 203.137,211.546 19.242,0 0,-17.629 c 0,-2.652 -2.16,-4.809 -4.813,-4.809 l -9.617,0 c -2.656,0 -4.812,2.157 -4.812,4.809 l 0,17.629 z m -99.367,0 19.238,0 0,-17.629 c 0,-2.652 -2.156,-4.809 -4.809,-4.809 l -9.621,0 c -2.652,0 -4.808,2.157 -4.808,4.809" /><path + id="path6211" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 277.66,291.675 c -3.187,0 -6.07,-1.891 -7.344,-4.809 L 257.633,257.73 c -0.899,-2.047 -2.024,-4 -3.367,-5.805 l -1.93,-2.555 c -1.246,-1.672 -1.914,-3.695 -1.914,-5.769 l 0,-20.836 c 0,-4.422 3.578,-8.008 8.012,-8.008 l 118.597,0 c 4.422,0 8.008,3.586 8.008,8.008 l 0,20.836 c 0,2.074 -0.668,4.097 -1.93,5.769 l -1.914,2.555 c -1.343,1.805 -2.48,3.758 -3.379,5.805 l -12.671,29.136 c -1.274,2.918 -4.157,4.809 -7.344,4.809 l -80.141,0 z m 1.938,-8.008 76.265,0 c 1.274,0 2.422,-0.75 2.934,-1.926 l 11.023,-25.32 -104.179,0 11.011,25.32 c 0.524,1.176 1.676,1.926 2.946,1.926 z" /><path + id="path6213" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 357.801,211.546 19.226,0 0,-17.629 c 0,-2.652 -2.156,-4.809 -4.808,-4.809 l -9.617,0 c -2.657,0 -4.801,2.157 -4.801,4.809 l 0,17.629 z m -99.367,0 19.226,0 0,-17.629 c 0,-2.652 -2.156,-4.809 -4.812,-4.809 l -9.606,0 c -2.652,0 -4.808,2.157 -4.808,4.809" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/OvertakingBanEnd_280.svg b/content/html/_images/OvertakingBanEnd_280.svg index ffc0afd4891d3ca4c7215b8f6d74bb4e4960eea0..7c1e27c0c776c2b54eae1aa2f3f20624fe5bf577 100644 --- a/content/html/_images/OvertakingBanEnd_280.svg +++ b/content/html/_images/OvertakingBanEnd_280.svg @@ -1,35 +1,35 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 601.00201 601.00195" - height="601.00195" - width="601.00201" - xml:space="preserve" - version="1.1" - id="svg5518"><metadata - id="metadata5524"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs5522" /><g - transform="matrix(1.25,0,0,-1.25,0,601.00197)" - id="g5526"><g - id="g5528"><path - id="path5530" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 480.402,240.403 c 0,-132.551 -107.453,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.547 107.45,240 240,240 132.547,0 240,-107.453 240,-240 z" /><path - id="path5532" - style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 95.852,303.809 c -0.215,0 -0.43,-0.011 -0.645,-0.027 -0.062,-0.004 -0.129,-0.008 -0.191,-0.012 -0.164,-0.015 -0.325,-0.035 -0.485,-0.054 -0.058,-0.008 -0.113,-0.016 -0.172,-0.024 -0.031,-0.004 -0.058,-0.012 -0.089,-0.015 -0.149,-0.024 -0.297,-0.051 -0.446,-0.082 -0.129,-0.028 -0.258,-0.059 -0.383,-0.09 -0.043,-0.012 -0.086,-0.024 -0.129,-0.035 -2.882,-0.762 -5.32,-2.797 -6.546,-5.618 L 71.102,261.833 c -1.11,-2.531 -2.508,-4.942 -4.18,-7.164 l -2.371,-3.172 C 63,249.438 62.164,246.942 62.164,244.36 l 0,-25.75 c 0,-5.48 4.445,-9.91 9.91,-9.91 l 146.336,0 c 0.774,-0.02 1.528,0.047 2.258,0.199 0.02,0.004 0.043,0.008 0.062,0.012 0.129,0.027 0.258,0.055 0.387,0.09 0.051,0.012 0.102,0.027 0.149,0.039 0.089,0.023 0.179,0.051 0.269,0.078 0.094,0.027 0.184,0.055 0.274,0.086 0.05,0.016 0.105,0.031 0.156,0.051 0.109,0.039 0.223,0.082 0.332,0.125 0.031,0.011 0.062,0.023 0.094,0.035 0.132,0.055 0.261,0.109 0.39,0.168 0.004,0 0.008,0.004 0.012,0.004 0,0 0.004,0.004 0.004,0.004 3.258,1.484 5.566,4.675 5.785,8.437 0.012,0.192 0.02,0.387 0.02,0.582 l 0,25.75 c 0,2.582 -0.825,5.078 -2.383,7.137 l -2.449,3.258 c -0.786,1.054 -1.508,2.152 -2.168,3.281 -0.122,0.207 -0.239,0.418 -0.356,0.629 -0.047,0.078 -0.09,0.16 -0.137,0.242 -0.129,0.234 -0.254,0.477 -0.379,0.715 -0.046,0.094 -0.097,0.183 -0.144,0.277 -0.063,0.125 -0.121,0.25 -0.184,0.375 -0.254,0.512 -0.496,1.031 -0.726,1.559 l -1.653,3.801 -0.257,0.589 L 204,297.852 c -1.477,3.399 -4.711,5.661 -8.352,5.926 -0.238,0.02 -0.48,0.027 -0.722,0.027 l -99.074,0 0,0.004 z m 2.398,-9.91 94.27,0 c 1.457,0 2.792,-0.804 3.48,-2.074 0.012,-0.027 0.027,-0.059 0.043,-0.086 0.039,-0.074 0.074,-0.148 0.109,-0.226 l 9.258,-21.293 0.012,0.011 4.359,-10.008 -128.781,0 2.484,5.692 -0.031,-0.031 11.164,25.629 c 0.625,1.449 2.047,2.386 3.633,2.386 z m -26.176,-89.156 0,-21.789 c 0,-0.414 0.043,-0.813 0.121,-1.199 0.555,-2.711 2.95,-4.758 5.821,-4.758 l 11.894,0 c 3.281,0 5.942,2.672 5.942,5.957 l 0,21.789 -23.778,0 z m 122.84,0 0,-2.234 0.012,0.015 0,-16.34 -0.012,-0.011 0,-3.219 c 0,-2.375 1.41,-4.52 3.582,-5.469 l 0.004,0.004 c 0.723,-0.312 1.52,-0.492 2.355,-0.492 l 11.895,0 c 0.672,0 1.32,0.121 1.922,0.328 0.211,0.07 0.418,0.156 0.617,0.25 0.012,0.008 0.02,0.012 0.031,0.016 0.196,0.093 0.383,0.199 0.563,0.312 0.008,0.004 0.015,0.008 0.023,0.012 0.567,0.359 1.071,0.805 1.485,1.328 0.136,0.168 0.257,0.348 0.375,0.527 0.011,0.02 0.023,0.039 0.035,0.063 0.101,0.164 0.195,0.332 0.281,0.508 0.016,0.031 0.027,0.058 0.043,0.089 0.078,0.168 0.152,0.34 0.215,0.52 0.008,0.023 0.019,0.043 0.027,0.066 l -0.004,-0.003 c 0.207,0.609 0.328,1.257 0.328,1.937 l 0,21.793 -23.777,0 z" /><path - id="path5534" - style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 285.891,303.809 c -0.215,0 -0.43,-0.011 -0.645,-0.027 -0.066,-0.004 -0.129,-0.008 -0.191,-0.012 -0.164,-0.015 -0.325,-0.035 -0.485,-0.054 -0.058,-0.008 -0.113,-0.016 -0.172,-0.024 -0.031,-0.004 -0.058,-0.012 -0.089,-0.015 -0.149,-0.024 -0.301,-0.051 -0.45,-0.082 -0.125,-0.028 -0.254,-0.059 -0.379,-0.09 -0.042,-0.012 -0.085,-0.024 -0.132,-0.035 -2.879,-0.762 -5.317,-2.797 -6.543,-5.618 l -15.664,-36.019 c -1.11,-2.531 -2.508,-4.942 -4.184,-7.164 l -2.371,-3.172 c -1.547,-2.059 -2.383,-4.555 -2.383,-7.137 l 0,-25.75 c 0,-5.48 4.445,-9.91 9.91,-9.91 l 146.336,0 c 0.77,-0.02 1.528,0.047 2.258,0.199 0.02,0.004 0.043,0.008 0.063,0.012 0.128,0.027 0.257,0.055 0.386,0.09 0.051,0.012 0.098,0.027 0.149,0.039 0.09,0.023 0.179,0.051 0.269,0.078 0.09,0.027 0.184,0.055 0.274,0.086 0.05,0.016 0.105,0.031 0.156,0.051 0.109,0.039 0.219,0.082 0.328,0.125 0.031,0.011 0.066,0.023 0.098,0.035 0.129,0.055 0.261,0.109 0.39,0.168 0.004,0 0.008,0.004 0.012,0.004 0,0 0.004,0.004 0.004,0.004 3.258,1.484 5.566,4.675 5.785,8.437 0.012,0.192 0.02,0.387 0.02,0.582 l 0,25.75 c 0,2.582 -0.825,5.078 -2.387,7.137 l -2.445,3.258 c -0.786,1.054 -1.508,2.152 -2.168,3.281 -0.121,0.207 -0.239,0.418 -0.356,0.629 -0.047,0.078 -0.09,0.16 -0.137,0.242 -0.128,0.234 -0.253,0.477 -0.378,0.715 -0.047,0.094 -0.098,0.183 -0.145,0.277 -0.063,0.125 -0.125,0.25 -0.184,0.375 -0.253,0.512 -0.496,1.031 -0.726,1.559 l -1.653,3.801 -0.257,0.589 -13.766,31.629 c -1.477,3.399 -4.711,5.661 -8.351,5.926 -0.239,0.02 -0.481,0.027 -0.723,0.027 l -99.074,0 0,0.004 z m 2.394,-9.91 94.274,0 c 1.453,0 2.793,-0.804 3.476,-2.074 0.016,-0.027 0.031,-0.059 0.047,-0.086 0.039,-0.074 0.074,-0.148 0.106,-0.226 l 9.261,-21.293 0.012,0.011 4.355,-10.008 -128.777,0 2.481,5.692 -0.028,-0.031 11.164,25.629 c 0.621,1.449 2.047,2.386 3.629,2.386 z m -26.172,-89.156 0,-21.789 c 0,-0.414 0.043,-0.813 0.121,-1.199 0.555,-2.711 2.95,-4.758 5.821,-4.758 l 11.894,0 c 3.281,0 5.942,2.672 5.942,5.957 l 0,21.789 -23.778,0 z m 122.84,0 0,-2.234 0.012,0.015 0,-16.34 -0.012,-0.011 0,-3.219 c 0,-2.375 1.41,-4.52 3.582,-5.469 l 0.004,0.004 c 0.723,-0.312 1.52,-0.492 2.356,-0.492 l 11.894,0 c 0.672,0 1.316,0.121 1.922,0.328 0.211,0.07 0.414,0.156 0.617,0.25 0.008,0.008 0.02,0.012 0.031,0.016 0.196,0.093 0.383,0.199 0.563,0.312 0.008,0.004 0.016,0.008 0.019,0.012 0.571,0.359 1.075,0.805 1.489,1.328 0.136,0.168 0.258,0.348 0.375,0.527 0.011,0.02 0.023,0.039 0.035,0.063 0.101,0.164 0.195,0.332 0.281,0.508 0.016,0.031 0.027,0.058 0.043,0.089 0.078,0.168 0.148,0.34 0.215,0.52 0.008,0.023 0.019,0.043 0.027,0.066 l -0.004,-0.003 c 0.207,0.609 0.328,1.257 0.328,1.937 l 0,21.793 -23.777,0 z" /><path - id="path5536" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 240.398,480.802 C 107.633,480.802 0,373.169 0,240.403 0,107.638 107.633,0.001 240.398,0.001 c 132.766,0 240.403,107.637 240.403,240.402 0,132.766 -107.637,240.399 -240.403,240.399 z m 0,-0.399 c 132.551,0 240,-107.453 240,-240 0,-132.551 -107.449,-240 -240,-240 -132.546,0 -240,107.449 -240,240 0,132.547 107.454,240 240,240 z" /><path - id="path5538" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 601.00201 601.00195" + height="601.00195" + width="601.00201" + xml:space="preserve" + version="1.1" + id="svg5518"><metadata + id="metadata5524"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs5522" /><g + transform="matrix(1.25,0,0,-1.25,0,601.00197)" + id="g5526"><g + id="g5528"><path + id="path5530" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 480.402,240.403 c 0,-132.551 -107.453,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.547 107.45,240 240,240 132.547,0 240,-107.453 240,-240 z" /><path + id="path5532" + style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 95.852,303.809 c -0.215,0 -0.43,-0.011 -0.645,-0.027 -0.062,-0.004 -0.129,-0.008 -0.191,-0.012 -0.164,-0.015 -0.325,-0.035 -0.485,-0.054 -0.058,-0.008 -0.113,-0.016 -0.172,-0.024 -0.031,-0.004 -0.058,-0.012 -0.089,-0.015 -0.149,-0.024 -0.297,-0.051 -0.446,-0.082 -0.129,-0.028 -0.258,-0.059 -0.383,-0.09 -0.043,-0.012 -0.086,-0.024 -0.129,-0.035 -2.882,-0.762 -5.32,-2.797 -6.546,-5.618 L 71.102,261.833 c -1.11,-2.531 -2.508,-4.942 -4.18,-7.164 l -2.371,-3.172 C 63,249.438 62.164,246.942 62.164,244.36 l 0,-25.75 c 0,-5.48 4.445,-9.91 9.91,-9.91 l 146.336,0 c 0.774,-0.02 1.528,0.047 2.258,0.199 0.02,0.004 0.043,0.008 0.062,0.012 0.129,0.027 0.258,0.055 0.387,0.09 0.051,0.012 0.102,0.027 0.149,0.039 0.089,0.023 0.179,0.051 0.269,0.078 0.094,0.027 0.184,0.055 0.274,0.086 0.05,0.016 0.105,0.031 0.156,0.051 0.109,0.039 0.223,0.082 0.332,0.125 0.031,0.011 0.062,0.023 0.094,0.035 0.132,0.055 0.261,0.109 0.39,0.168 0.004,0 0.008,0.004 0.012,0.004 0,0 0.004,0.004 0.004,0.004 3.258,1.484 5.566,4.675 5.785,8.437 0.012,0.192 0.02,0.387 0.02,0.582 l 0,25.75 c 0,2.582 -0.825,5.078 -2.383,7.137 l -2.449,3.258 c -0.786,1.054 -1.508,2.152 -2.168,3.281 -0.122,0.207 -0.239,0.418 -0.356,0.629 -0.047,0.078 -0.09,0.16 -0.137,0.242 -0.129,0.234 -0.254,0.477 -0.379,0.715 -0.046,0.094 -0.097,0.183 -0.144,0.277 -0.063,0.125 -0.121,0.25 -0.184,0.375 -0.254,0.512 -0.496,1.031 -0.726,1.559 l -1.653,3.801 -0.257,0.589 L 204,297.852 c -1.477,3.399 -4.711,5.661 -8.352,5.926 -0.238,0.02 -0.48,0.027 -0.722,0.027 l -99.074,0 0,0.004 z m 2.398,-9.91 94.27,0 c 1.457,0 2.792,-0.804 3.48,-2.074 0.012,-0.027 0.027,-0.059 0.043,-0.086 0.039,-0.074 0.074,-0.148 0.109,-0.226 l 9.258,-21.293 0.012,0.011 4.359,-10.008 -128.781,0 2.484,5.692 -0.031,-0.031 11.164,25.629 c 0.625,1.449 2.047,2.386 3.633,2.386 z m -26.176,-89.156 0,-21.789 c 0,-0.414 0.043,-0.813 0.121,-1.199 0.555,-2.711 2.95,-4.758 5.821,-4.758 l 11.894,0 c 3.281,0 5.942,2.672 5.942,5.957 l 0,21.789 -23.778,0 z m 122.84,0 0,-2.234 0.012,0.015 0,-16.34 -0.012,-0.011 0,-3.219 c 0,-2.375 1.41,-4.52 3.582,-5.469 l 0.004,0.004 c 0.723,-0.312 1.52,-0.492 2.355,-0.492 l 11.895,0 c 0.672,0 1.32,0.121 1.922,0.328 0.211,0.07 0.418,0.156 0.617,0.25 0.012,0.008 0.02,0.012 0.031,0.016 0.196,0.093 0.383,0.199 0.563,0.312 0.008,0.004 0.015,0.008 0.023,0.012 0.567,0.359 1.071,0.805 1.485,1.328 0.136,0.168 0.257,0.348 0.375,0.527 0.011,0.02 0.023,0.039 0.035,0.063 0.101,0.164 0.195,0.332 0.281,0.508 0.016,0.031 0.027,0.058 0.043,0.089 0.078,0.168 0.152,0.34 0.215,0.52 0.008,0.023 0.019,0.043 0.027,0.066 l -0.004,-0.003 c 0.207,0.609 0.328,1.257 0.328,1.937 l 0,21.793 -23.777,0 z" /><path + id="path5534" + style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 285.891,303.809 c -0.215,0 -0.43,-0.011 -0.645,-0.027 -0.066,-0.004 -0.129,-0.008 -0.191,-0.012 -0.164,-0.015 -0.325,-0.035 -0.485,-0.054 -0.058,-0.008 -0.113,-0.016 -0.172,-0.024 -0.031,-0.004 -0.058,-0.012 -0.089,-0.015 -0.149,-0.024 -0.301,-0.051 -0.45,-0.082 -0.125,-0.028 -0.254,-0.059 -0.379,-0.09 -0.042,-0.012 -0.085,-0.024 -0.132,-0.035 -2.879,-0.762 -5.317,-2.797 -6.543,-5.618 l -15.664,-36.019 c -1.11,-2.531 -2.508,-4.942 -4.184,-7.164 l -2.371,-3.172 c -1.547,-2.059 -2.383,-4.555 -2.383,-7.137 l 0,-25.75 c 0,-5.48 4.445,-9.91 9.91,-9.91 l 146.336,0 c 0.77,-0.02 1.528,0.047 2.258,0.199 0.02,0.004 0.043,0.008 0.063,0.012 0.128,0.027 0.257,0.055 0.386,0.09 0.051,0.012 0.098,0.027 0.149,0.039 0.09,0.023 0.179,0.051 0.269,0.078 0.09,0.027 0.184,0.055 0.274,0.086 0.05,0.016 0.105,0.031 0.156,0.051 0.109,0.039 0.219,0.082 0.328,0.125 0.031,0.011 0.066,0.023 0.098,0.035 0.129,0.055 0.261,0.109 0.39,0.168 0.004,0 0.008,0.004 0.012,0.004 0,0 0.004,0.004 0.004,0.004 3.258,1.484 5.566,4.675 5.785,8.437 0.012,0.192 0.02,0.387 0.02,0.582 l 0,25.75 c 0,2.582 -0.825,5.078 -2.387,7.137 l -2.445,3.258 c -0.786,1.054 -1.508,2.152 -2.168,3.281 -0.121,0.207 -0.239,0.418 -0.356,0.629 -0.047,0.078 -0.09,0.16 -0.137,0.242 -0.128,0.234 -0.253,0.477 -0.378,0.715 -0.047,0.094 -0.098,0.183 -0.145,0.277 -0.063,0.125 -0.125,0.25 -0.184,0.375 -0.253,0.512 -0.496,1.031 -0.726,1.559 l -1.653,3.801 -0.257,0.589 -13.766,31.629 c -1.477,3.399 -4.711,5.661 -8.351,5.926 -0.239,0.02 -0.481,0.027 -0.723,0.027 l -99.074,0 0,0.004 z m 2.394,-9.91 94.274,0 c 1.453,0 2.793,-0.804 3.476,-2.074 0.016,-0.027 0.031,-0.059 0.047,-0.086 0.039,-0.074 0.074,-0.148 0.106,-0.226 l 9.261,-21.293 0.012,0.011 4.355,-10.008 -128.777,0 2.481,5.692 -0.028,-0.031 11.164,25.629 c 0.621,1.449 2.047,2.386 3.629,2.386 z m -26.172,-89.156 0,-21.789 c 0,-0.414 0.043,-0.813 0.121,-1.199 0.555,-2.711 2.95,-4.758 5.821,-4.758 l 11.894,0 c 3.281,0 5.942,2.672 5.942,5.957 l 0,21.789 -23.778,0 z m 122.84,0 0,-2.234 0.012,0.015 0,-16.34 -0.012,-0.011 0,-3.219 c 0,-2.375 1.41,-4.52 3.582,-5.469 l 0.004,0.004 c 0.723,-0.312 1.52,-0.492 2.356,-0.492 l 11.894,0 c 0.672,0 1.316,0.121 1.922,0.328 0.211,0.07 0.414,0.156 0.617,0.25 0.008,0.008 0.02,0.012 0.031,0.016 0.196,0.093 0.383,0.199 0.563,0.312 0.008,0.004 0.016,0.008 0.019,0.012 0.571,0.359 1.075,0.805 1.489,1.328 0.136,0.168 0.258,0.348 0.375,0.527 0.011,0.02 0.023,0.039 0.035,0.063 0.101,0.164 0.195,0.332 0.281,0.508 0.016,0.031 0.027,0.058 0.043,0.089 0.078,0.168 0.148,0.34 0.215,0.52 0.008,0.023 0.019,0.043 0.027,0.066 l -0.004,-0.003 c 0.207,0.609 0.328,1.257 0.328,1.937 l 0,21.793 -23.777,0 z" /><path + id="path5536" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 240.398,480.802 C 107.633,480.802 0,373.169 0,240.403 0,107.638 107.633,0.001 240.398,0.001 c 132.766,0 240.403,107.637 240.403,240.402 0,132.766 -107.637,240.399 -240.403,240.399 z m 0,-0.399 c 132.551,0 240,-107.453 240,-240 0,-132.551 -107.449,-240 -240,-240 -132.546,0 -240,107.449 -240,240 0,132.547 107.454,240 240,240 z" /><path + id="path5538" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 240.398,472.348 C 112.375,472.348 8.457,368.427 8.457,240.403 8.457,112.376 112.375,8.458 240.398,8.458 c 128.028,0 231.946,103.918 231.946,231.945 0,128.024 -103.918,231.945 -231.946,231.945 z m 0,-12 c 46.309,0 89.25,-14.296 124.676,-38.703 L 59.156,115.727 c -24.406,35.426 -38.703,78.368 -38.703,124.676 0,121.539 98.406,219.945 219.945,219.945 z M 372.32,416.446 c 2.418,-1.816 4.793,-3.683 7.133,-5.594 L 69.949,101.348 c -1.91,2.34 -3.777,4.715 -5.594,7.133 L 372.32,416.446 Z m 13.856,-11.316 c 2.25,-1.992 4.461,-4.024 6.629,-6.102 L 81.773,88.001 c -2.078,2.164 -4.109,4.375 -6.101,6.625 L 386.176,405.13 Z m 12.847,-12.328 c 2.082,-2.164 4.114,-4.375 6.106,-6.625 L 94.625,75.673 c -2.25,1.992 -4.461,4.023 -6.625,6.105 l 311.023,311.024 z m 11.829,-13.344 c 1.91,-2.34 3.777,-4.715 5.593,-7.133 L 108.48,64.356 c -2.418,1.817 -4.796,3.684 -7.136,5.594 l 309.508,309.508 z m 10.793,-14.383 c 24.406,-35.426 38.703,-78.367 38.703,-124.672 0,-121.543 -98.407,-219.945 -219.95,-219.945 -46.304,0 -89.246,14.297 -124.671,38.703 l 305.918,305.914 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/OvertakingBanTrucksBegin_277.svg b/content/html/_images/OvertakingBanTrucksBegin_277.svg index 64fc63d4467d34a80c7349ee8650471a61d94305..1edeb4f617c30fb9de84ab736540d2873b39076f 100644 --- a/content/html/_images/OvertakingBanTrucksBegin_277.svg +++ b/content/html/_images/OvertakingBanTrucksBegin_277.svg @@ -1,113 +1,113 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600.99628 600.99628" - height="600.99628" - width="600.99628" - xml:space="preserve" - version="1.1" - id="svg8759"><metadata - id="metadata8765"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs8763" /><g - transform="matrix(1.25,0,0,-1.25,0,600.99628)" - id="g8767"><g - id="g8769"><path - id="path8771" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 480.398,240.399 c 0,-132.551 -107.449,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.55 107.45,240 240,240 132.551,0 240,-107.45 240,-240 z" /><path - id="path8773" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 240.398,480.797 C 107.633,480.797 0,373.164 0,240.399 0,107.633 107.633,0 240.398,0 c 132.766,0 240.399,107.633 240.399,240.399 0,132.765 -107.633,240.398 -240.399,240.398 z m 0,-0.398 c 132.551,0 240,-107.45 240,-240 0,-132.551 -107.449,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.55 107.45,240 240,240 z" /><path - id="path8775" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 240.398,472.399 c -127.746,0 -232,-104.254 -232,-232 0,-127.747 104.254,-232 232,-232 127.747,0 232,104.253 232,232 0,127.746 -104.253,232 -232,232 z m 0,-64.321 c 92.989,0 167.68,-74.691 167.68,-167.679 0,-92.989 -74.691,-167.68 -167.68,-167.68 -92.988,0 -167.679,74.691 -167.679,167.68 0,92.988 74.691,167.679 167.679,167.679 z" /><path - id="path8777" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.832,456.512 0,-0.024 -0.023,0 0.023,0.024 z" /><path - id="path8779" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.023,0 0,-0.023 -0.023,0 0,0.023 z" /><path - id="path8781" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.488 0,0.024 0.023,-0.024 -0.023,0 z m 0.023,0 -0.023,0.024 0,-0.024 0.023,0 z" /><path - id="path8783" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.488 -0.05,0 0.023,0 0,0.024 0.027,-0.024 z" /><path - id="path8785" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.488 0,0.024 0,-0.024 0.023,0.024 -0.023,-0.024 z" /><path - id="path8787" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.023,0 0,-0.023 -0.023,0 0,0.023 z" /><path - id="path8789" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.512 0,-0.047 -0.05,0 0.05,0.047 z" /><path - id="path8791" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path - id="path8793" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.465 0,0.047 0.05,-0.047 -0.05,0 z m 0.05,0 -0.05,0.047 0,-0.047 0.05,0 z" /><path - id="path8795" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.465 -0.05,0 0.023,0 0,0.047 0.027,-0.047 z" /><path - id="path8797" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.465 0,0.047 0,-0.047 0.05,0.047 -0.05,-0.047 z" /><path - id="path8799" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path - id="path8801" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.512 0,-0.047 -0.05,0 0.05,0.047 z" /><path - id="path8803" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path - id="path8805" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.465 0,0.047 0.05,-0.047 -0.05,0 z m 0.05,0 -0.05,0.047 0,-0.047 0.05,0 z" /><path - id="path8807" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.465 -0.05,0 0.023,0 0,0.047 0.027,-0.047 z" /><path - id="path8809" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.465 0,0.047 0,-0.047 0.05,0.047 -0.05,-0.047 z" /><path - id="path8811" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path - id="path8813" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.512 0,-0.047 -0.05,0 0.05,0.047 z" /><path - id="path8815" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path - id="path8817" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.465 0,0.047 0.05,-0.047 -0.05,0 z m 0.05,0 -0.05,0.047 0,-0.047 0.05,0 z" /><path - id="path8819" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.859,456.465 -0.05,0 0.023,0 0,0.047 0.027,-0.047 z" /><path - id="path8821" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.465 0,0.047 0,-0.047 0.05,0.047 -0.05,-0.047 z" /><path - id="path8823" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path - id="path8825" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 112.586,203.277 0,104.895 c 0,6.238 5.066,11.305 11.305,11.305 l 93.589,0 c 6.243,0 11.305,-5.067 11.305,-11.305 l 0,-104.895 -116.199,0 z M 215.871,161.32 c -1.781,0 -3.223,1.442 -3.223,3.223 l 0,32.289 c 0,1.77 1.442,3.223 3.223,3.223 l 9.691,0 c 1.782,0 3.223,-1.453 3.223,-3.223 l 0,-32.289 c 0,-1.781 -1.441,-3.223 -3.223,-3.223 l -9.691,0 z m -80.687,0 c -1.782,0 -3.223,1.442 -3.223,3.223 l 0,32.289 c 0,1.77 1.441,3.223 3.223,3.223 l 9.679,0 c 1.782,0 3.235,-1.453 3.235,-3.223 l 0,-8.883 c 0,-1.777 1.441,-3.222 3.222,-3.222 l 6.129,0 c 1.66,0 3.262,0.633 4.461,1.781 l 2.094,2 c 1.805,1.723 4.191,2.68 6.676,2.68 2.496,0 4.882,-0.957 6.687,-2.68 l 2.098,-2 c 1.199,-1.148 2.797,-1.781 4.457,-1.781 l 6.129,0 c 1.781,0 3.238,1.445 3.238,3.222 l 0,8.883 c 0,1.77 1.441,3.223 3.223,3.223 l 9.679,0 c 1.782,0 3.223,-1.453 3.223,-3.223 l 0,-32.289 c 0,-1.781 -1.441,-3.223 -3.223,-3.223 l -9.679,0 c -1.782,0 -3.223,1.442 -3.223,3.223 l 0,8.883 c 0,1.781 -1.457,3.234 -3.238,3.234 l -6.129,0 c -1.66,0 -3.258,-0.656 -4.457,-1.793 l -2.098,-2 c -1.805,-1.707 -4.191,-2.664 -6.687,-2.664 -2.485,0 -4.871,0.957 -6.676,2.664 l -2.094,2 c -1.199,1.137 -2.801,1.793 -4.461,1.793 l -6.129,0 c -1.781,0 -3.222,-1.453 -3.222,-3.234 l 0,-8.883 c 0,-1.781 -1.453,-3.223 -3.235,-3.223 l -9.679,0 z m -19.364,0 c -1.777,0 -3.234,1.442 -3.234,3.223 l 0,32.289 c 0,1.77 1.457,3.223 3.234,3.223 l 9.684,0 c 1.777,0 3.223,-1.453 3.223,-3.223 l 0,-32.289 c 0,-1.781 -1.446,-3.223 -3.223,-3.223" /><path - id="path8827" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 248.812,213.211 c 0,1.988 0.641,3.914 1.84,5.5 l 1.832,2.449 c 1.27,1.707 2.348,3.563 3.211,5.524 l 12.078,27.73 c 1.211,2.789 3.961,4.594 6.989,4.594 l 76.316,0 c 3.039,0 5.789,-1.805 7,-4.594 l 12.07,-27.73 c 0.86,-1.961 1.938,-3.817 3.223,-5.524 l 1.828,-2.449 c 1.188,-1.586 1.828,-3.512 1.828,-5.5 l 0,-19.844 c 0,-4.203 -3.414,-7.621 -7.632,-7.621 l -112.95,0 c -4.203,0 -7.633,3.418 -7.633,7.621" /><path - id="path8829" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 263.312,225.438 10.493,24.097 c 0.496,1.114 1.59,1.84 2.812,1.84 l 72.617,0 c 1.227,0 2.317,-0.726 2.801,-1.84 l 10.492,-24.097" /><path - id="path8831" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600.99628 600.99628" + height="600.99628" + width="600.99628" + xml:space="preserve" + version="1.1" + id="svg8759"><metadata + id="metadata8765"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs8763" /><g + transform="matrix(1.25,0,0,-1.25,0,600.99628)" + id="g8767"><g + id="g8769"><path + id="path8771" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 480.398,240.399 c 0,-132.551 -107.449,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.55 107.45,240 240,240 132.551,0 240,-107.45 240,-240 z" /><path + id="path8773" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 240.398,480.797 C 107.633,480.797 0,373.164 0,240.399 0,107.633 107.633,0 240.398,0 c 132.766,0 240.399,107.633 240.399,240.399 0,132.765 -107.633,240.398 -240.399,240.398 z m 0,-0.398 c 132.551,0 240,-107.45 240,-240 0,-132.551 -107.449,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.55 107.45,240 240,240 z" /><path + id="path8775" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 240.398,472.399 c -127.746,0 -232,-104.254 -232,-232 0,-127.747 104.254,-232 232,-232 127.747,0 232,104.253 232,232 0,127.746 -104.253,232 -232,232 z m 0,-64.321 c 92.989,0 167.68,-74.691 167.68,-167.679 0,-92.989 -74.691,-167.68 -167.68,-167.68 -92.988,0 -167.679,74.691 -167.679,167.68 0,92.988 74.691,167.679 167.679,167.679 z" /><path + id="path8777" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.832,456.512 0,-0.024 -0.023,0 0.023,0.024 z" /><path + id="path8779" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.023,0 0,-0.023 -0.023,0 0,0.023 z" /><path + id="path8781" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.488 0,0.024 0.023,-0.024 -0.023,0 z m 0.023,0 -0.023,0.024 0,-0.024 0.023,0 z" /><path + id="path8783" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.488 -0.05,0 0.023,0 0,0.024 0.027,-0.024 z" /><path + id="path8785" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.488 0,0.024 0,-0.024 0.023,0.024 -0.023,-0.024 z" /><path + id="path8787" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.023,0 0,-0.023 -0.023,0 0,0.023 z" /><path + id="path8789" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.512 0,-0.047 -0.05,0 0.05,0.047 z" /><path + id="path8791" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path + id="path8793" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.465 0,0.047 0.05,-0.047 -0.05,0 z m 0.05,0 -0.05,0.047 0,-0.047 0.05,0 z" /><path + id="path8795" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.465 -0.05,0 0.023,0 0,0.047 0.027,-0.047 z" /><path + id="path8797" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.465 0,0.047 0,-0.047 0.05,0.047 -0.05,-0.047 z" /><path + id="path8799" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path + id="path8801" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.512 0,-0.047 -0.05,0 0.05,0.047 z" /><path + id="path8803" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path + id="path8805" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.465 0,0.047 0.05,-0.047 -0.05,0 z m 0.05,0 -0.05,0.047 0,-0.047 0.05,0 z" /><path + id="path8807" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.465 -0.05,0 0.023,0 0,0.047 0.027,-0.047 z" /><path + id="path8809" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.465 0,0.047 0,-0.047 0.05,0.047 -0.05,-0.047 z" /><path + id="path8811" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path + id="path8813" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.512 0,-0.047 -0.05,0 0.05,0.047 z" /><path + id="path8815" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path + id="path8817" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.465 0,0.047 0.05,-0.047 -0.05,0 z m 0.05,0 -0.05,0.047 0,-0.047 0.05,0 z" /><path + id="path8819" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.859,456.465 -0.05,0 0.023,0 0,0.047 0.027,-0.047 z" /><path + id="path8821" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.465 0,0.047 0,-0.047 0.05,0.047 -0.05,-0.047 z" /><path + id="path8823" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 23.809,456.512 0.051,0 0,-0.047 -0.051,0 0,0.047 z" /><path + id="path8825" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 112.586,203.277 0,104.895 c 0,6.238 5.066,11.305 11.305,11.305 l 93.589,0 c 6.243,0 11.305,-5.067 11.305,-11.305 l 0,-104.895 -116.199,0 z M 215.871,161.32 c -1.781,0 -3.223,1.442 -3.223,3.223 l 0,32.289 c 0,1.77 1.442,3.223 3.223,3.223 l 9.691,0 c 1.782,0 3.223,-1.453 3.223,-3.223 l 0,-32.289 c 0,-1.781 -1.441,-3.223 -3.223,-3.223 l -9.691,0 z m -80.687,0 c -1.782,0 -3.223,1.442 -3.223,3.223 l 0,32.289 c 0,1.77 1.441,3.223 3.223,3.223 l 9.679,0 c 1.782,0 3.235,-1.453 3.235,-3.223 l 0,-8.883 c 0,-1.777 1.441,-3.222 3.222,-3.222 l 6.129,0 c 1.66,0 3.262,0.633 4.461,1.781 l 2.094,2 c 1.805,1.723 4.191,2.68 6.676,2.68 2.496,0 4.882,-0.957 6.687,-2.68 l 2.098,-2 c 1.199,-1.148 2.797,-1.781 4.457,-1.781 l 6.129,0 c 1.781,0 3.238,1.445 3.238,3.222 l 0,8.883 c 0,1.77 1.441,3.223 3.223,3.223 l 9.679,0 c 1.782,0 3.223,-1.453 3.223,-3.223 l 0,-32.289 c 0,-1.781 -1.441,-3.223 -3.223,-3.223 l -9.679,0 c -1.782,0 -3.223,1.442 -3.223,3.223 l 0,8.883 c 0,1.781 -1.457,3.234 -3.238,3.234 l -6.129,0 c -1.66,0 -3.258,-0.656 -4.457,-1.793 l -2.098,-2 c -1.805,-1.707 -4.191,-2.664 -6.687,-2.664 -2.485,0 -4.871,0.957 -6.676,2.664 l -2.094,2 c -1.199,1.137 -2.801,1.793 -4.461,1.793 l -6.129,0 c -1.781,0 -3.222,-1.453 -3.222,-3.234 l 0,-8.883 c 0,-1.781 -1.453,-3.223 -3.235,-3.223 l -9.679,0 z m -19.364,0 c -1.777,0 -3.234,1.442 -3.234,3.223 l 0,32.289 c 0,1.77 1.457,3.223 3.234,3.223 l 9.684,0 c 1.777,0 3.223,-1.453 3.223,-3.223 l 0,-32.289 c 0,-1.781 -1.446,-3.223 -3.223,-3.223" /><path + id="path8827" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 248.812,213.211 c 0,1.988 0.641,3.914 1.84,5.5 l 1.832,2.449 c 1.27,1.707 2.348,3.563 3.211,5.524 l 12.078,27.73 c 1.211,2.789 3.961,4.594 6.989,4.594 l 76.316,0 c 3.039,0 5.789,-1.805 7,-4.594 l 12.07,-27.73 c 0.86,-1.961 1.938,-3.817 3.223,-5.524 l 1.828,-2.449 c 1.188,-1.586 1.828,-3.512 1.828,-5.5 l 0,-19.844 c 0,-4.203 -3.414,-7.621 -7.632,-7.621 l -112.95,0 c -4.203,0 -7.633,3.418 -7.633,7.621" /><path + id="path8829" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 263.312,225.438 10.493,24.097 c 0.496,1.114 1.59,1.84 2.812,1.84 l 72.617,0 c 1.227,0 2.317,-0.726 2.801,-1.84 l 10.492,-24.097" /><path + id="path8831" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 351.078,182.692 18.317,0 0,-16.79 c 0,-2.535 -2.047,-4.582 -4.579,-4.582 l -9.16,0 c -2.519,0 -4.578,2.047 -4.578,4.582 l 0,16.79 z m -94.633,0 18.317,0 0,-16.79 c 0,-2.535 -2.047,-4.582 -4.567,-4.582 l -9.16,0 c -2.543,0 -4.59,2.047 -4.59,4.582" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/OvertakingBanTrucksEnd_281.svg b/content/html/_images/OvertakingBanTrucksEnd_281.svg index 6b4e7070c5c74c132f3591749374edb906cfb6f2..00584ad2d05a79b236442944a4e64c5b042cb5a3 100644 --- a/content/html/_images/OvertakingBanTrucksEnd_281.svg +++ b/content/html/_images/OvertakingBanTrucksEnd_281.svg @@ -1,35 +1,35 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 601.00201 601.00195" - height="601.00195" - width="601.00201" - xml:space="preserve" - version="1.1" - id="svg7791"><metadata - id="metadata7797"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs7795" /><g - transform="matrix(1.25,0,0,-1.25,0,601.00197)" - id="g7799"><g - id="g7801"><path - id="path7803" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 480.402,240.403 c 0,-132.551 -107.453,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.547 107.45,240 240,240 132.547,0 240,-107.453 240,-240 z" /><path - id="path7805" - style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 89.227,194.684 0,125.641 c 0,7.477 6.05,13.527 13.523,13.527 l 112.117,0 c 7.465,0 13.528,-6.05 13.528,-13.527 l 0,-125.641 -139.168,0 z M 212.93,144.423 c -2.133,0 -3.868,1.738 -3.868,3.867 l 0,38.66 c 0,2.133 1.735,3.867 3.868,3.867 l 11.597,0 c 2.141,0 3.868,-1.734 3.868,-3.867 l 0,-38.66 c 0,-2.129 -1.727,-3.867 -3.868,-3.867 l -11.597,0 z m -96.641,0 c -2.144,0 -3.867,1.738 -3.867,3.867 l 0,38.66 c 0,2.133 1.723,3.867 3.867,3.867 l 11.598,0 c 2.129,0 3.855,-1.734 3.855,-3.867 l 0,-10.633 c 0,-2.133 1.735,-3.867 3.875,-3.867 l 7.348,0 c 1.98,0 3.887,0.762 5.32,2.133 l 2.527,2.398 c 4.477,4.274 11.516,4.274 15.993,0 l 2.527,-2.398 c 1.434,-1.371 3.34,-2.133 5.32,-2.133 l 7.348,0 c 2.141,0 3.867,1.734 3.867,3.867 l 0,10.633 c 0,2.133 1.735,3.867 3.863,3.867 l 11.602,0 c 2.141,0 3.863,-1.734 3.863,-3.867 l 0,-38.66 c 0,-2.129 -1.722,-3.867 -3.863,-3.867 l -11.602,0 c -2.128,0 -3.863,1.738 -3.863,3.867 l 0,10.637 c 0,2.128 -1.726,3.863 -3.867,3.863 l -7.348,0 c -1.98,0 -3.886,-0.758 -5.32,-2.129 l -2.527,-2.41 c -4.477,-4.262 -11.516,-4.262 -15.993,0 l -2.527,2.41 c -1.433,1.371 -3.34,2.129 -5.32,2.129 l -7.348,0 c -2.14,0 -3.875,-1.735 -3.875,-3.863 l 0,-10.637 c 0,-2.129 -1.726,-3.867 -3.855,-3.867 l -11.598,0 z m -23.199,0 c -2.141,0 -3.863,1.738 -3.863,3.867 l 0,38.66 c 0,2.133 1.722,3.867 3.863,3.867 l 11.598,0 c 2.132,0 3.867,-1.734 3.867,-3.867 l 0,-38.66 c 0,-2.129 -1.735,-3.867 -3.867,-3.867" /><path - id="path7807" - style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 283.477,261.423 c -0.2,0 -0.395,-0.008 -0.594,-0.02 -0.059,-0.004 -0.117,-0.012 -0.18,-0.015 -0.148,-0.012 -0.297,-0.028 -0.445,-0.051 -0.051,-0.004 -0.106,-0.012 -0.156,-0.02 -0.028,-0.004 -0.055,-0.008 -0.086,-0.015 -0.137,-0.02 -0.274,-0.047 -0.411,-0.075 -0.117,-0.027 -0.234,-0.054 -0.351,-0.082 -0.043,-0.011 -0.082,-0.023 -0.121,-0.031 -2.66,-0.707 -4.91,-2.582 -6.039,-5.184 l -14.453,-33.234 c -1.024,-2.336 -2.313,-4.558 -3.856,-6.609 l -2.187,-2.926 c -1.43,-1.898 -2.203,-4.203 -2.203,-6.586 l 0,-23.758 c 0,-5.054 4.101,-9.144 9.144,-9.144 l 135.016,0 c 0.711,-0.02 1.41,0.047 2.082,0.183 0.019,0.004 0.039,0.008 0.058,0.012 0.121,0.023 0.239,0.051 0.356,0.082 0.047,0.012 0.094,0.023 0.14,0.035 0.082,0.024 0.164,0.047 0.247,0.07 0.085,0.028 0.167,0.055 0.253,0.083 0.047,0.015 0.094,0.031 0.145,0.046 0.102,0.036 0.203,0.075 0.305,0.114 0.027,0.011 0.058,0.023 0.086,0.035 0.121,0.051 0.242,0.101 0.363,0.156 0,0 0.004,0 0.008,0.004 0.004,0 0.004,0 0.004,0.004 3.007,1.367 5.136,4.312 5.339,7.781 0.008,0.18 0.016,0.36 0.016,0.539 l 0,23.758 c 0,2.383 -0.762,4.688 -2.199,6.586 l -2.258,3.008 c -0.723,0.972 -1.391,1.98 -2,3.027 -0.113,0.192 -0.223,0.383 -0.328,0.578 -0.043,0.074 -0.086,0.149 -0.125,0.223 -0.121,0.219 -0.238,0.437 -0.352,0.66 -0.043,0.086 -0.09,0.168 -0.133,0.254 -0.058,0.117 -0.113,0.23 -0.171,0.348 -0.231,0.472 -0.457,0.953 -0.668,1.437 l -1.528,3.508 -0.234,0.547 0,-0.004 -12.703,29.183 c -1.36,3.133 -4.344,5.223 -7.703,5.469 -0.223,0.016 -0.442,0.024 -0.668,0.024 l -91.41,0 z m 2.211,-9.141 86.976,0 c 1.344,0 2.578,-0.742 3.211,-1.914 0.016,-0.027 0.027,-0.051 0.043,-0.078 0.035,-0.07 0.07,-0.137 0.098,-0.211 l 8.546,-19.645 0.012,0.012 4.02,-9.234 -118.821,0 2.293,5.25 -0.031,-0.028 10.301,23.649 c 0.578,1.332 1.891,2.199 3.352,2.199 z m -24.149,-82.258 0,-20.105 c 0,-0.379 0.039,-0.75 0.113,-1.106 0.512,-2.5 2.719,-4.39 5.368,-4.39 l 10.976,0 c 3.027,0 5.481,2.465 5.481,5.496 l 0,20.105 -21.938,0 z m 113.34,0 0,-2.062 0.012,0.011 0,-15.074 -0.012,-0.011 0,-2.969 c 0,-2.192 1.301,-4.172 3.305,-5.047 l 0.004,0.008 c 0.664,-0.293 1.398,-0.453 2.171,-0.453 l 10.973,0 c 0.621,0 1.219,0.105 1.773,0.296 0.196,0.067 0.387,0.145 0.571,0.235 0.008,0.004 0.019,0.008 0.031,0.015 0.176,0.086 0.348,0.18 0.516,0.286 0.007,0.004 0.015,0.007 0.019,0.011 0.524,0.328 0.988,0.743 1.375,1.227 0.121,0.156 0.235,0.316 0.344,0.484 0.012,0.02 0.023,0.039 0.035,0.059 0.094,0.148 0.176,0.308 0.258,0.469 0.012,0.027 0.023,0.054 0.039,0.082 0.074,0.156 0.137,0.316 0.195,0.48 0.008,0.02 0.02,0.039 0.028,0.063 l -0.004,-0.008 c 0.191,0.562 0.304,1.164 0.304,1.793 l 0,20.105 -21.941,0 0.004,0 z" /><path - id="path7809" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 240.398,480.802 C 107.633,480.802 0,373.169 0,240.403 0,107.638 107.633,0.001 240.398,0.001 c 132.766,0 240.403,107.637 240.403,240.402 0,132.766 -107.637,240.399 -240.403,240.399 z m 0,-0.399 c 132.551,0 240,-107.453 240,-240 0,-132.551 -107.449,-240 -240,-240 -132.546,0 -240,107.449 -240,240 0,132.547 107.454,240 240,240 z" /><path - id="path7811" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 601.00201 601.00195" + height="601.00195" + width="601.00201" + xml:space="preserve" + version="1.1" + id="svg7791"><metadata + id="metadata7797"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs7795" /><g + transform="matrix(1.25,0,0,-1.25,0,601.00197)" + id="g7799"><g + id="g7801"><path + id="path7803" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 480.402,240.403 c 0,-132.551 -107.453,-240 -240,-240 -132.55,0 -240,107.449 -240,240 0,132.547 107.45,240 240,240 132.547,0 240,-107.453 240,-240 z" /><path + id="path7805" + style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 89.227,194.684 0,125.641 c 0,7.477 6.05,13.527 13.523,13.527 l 112.117,0 c 7.465,0 13.528,-6.05 13.528,-13.527 l 0,-125.641 -139.168,0 z M 212.93,144.423 c -2.133,0 -3.868,1.738 -3.868,3.867 l 0,38.66 c 0,2.133 1.735,3.867 3.868,3.867 l 11.597,0 c 2.141,0 3.868,-1.734 3.868,-3.867 l 0,-38.66 c 0,-2.129 -1.727,-3.867 -3.868,-3.867 l -11.597,0 z m -96.641,0 c -2.144,0 -3.867,1.738 -3.867,3.867 l 0,38.66 c 0,2.133 1.723,3.867 3.867,3.867 l 11.598,0 c 2.129,0 3.855,-1.734 3.855,-3.867 l 0,-10.633 c 0,-2.133 1.735,-3.867 3.875,-3.867 l 7.348,0 c 1.98,0 3.887,0.762 5.32,2.133 l 2.527,2.398 c 4.477,4.274 11.516,4.274 15.993,0 l 2.527,-2.398 c 1.434,-1.371 3.34,-2.133 5.32,-2.133 l 7.348,0 c 2.141,0 3.867,1.734 3.867,3.867 l 0,10.633 c 0,2.133 1.735,3.867 3.863,3.867 l 11.602,0 c 2.141,0 3.863,-1.734 3.863,-3.867 l 0,-38.66 c 0,-2.129 -1.722,-3.867 -3.863,-3.867 l -11.602,0 c -2.128,0 -3.863,1.738 -3.863,3.867 l 0,10.637 c 0,2.128 -1.726,3.863 -3.867,3.863 l -7.348,0 c -1.98,0 -3.886,-0.758 -5.32,-2.129 l -2.527,-2.41 c -4.477,-4.262 -11.516,-4.262 -15.993,0 l -2.527,2.41 c -1.433,1.371 -3.34,2.129 -5.32,2.129 l -7.348,0 c -2.14,0 -3.875,-1.735 -3.875,-3.863 l 0,-10.637 c 0,-2.129 -1.726,-3.867 -3.855,-3.867 l -11.598,0 z m -23.199,0 c -2.141,0 -3.863,1.738 -3.863,3.867 l 0,38.66 c 0,2.133 1.722,3.867 3.863,3.867 l 11.598,0 c 2.132,0 3.867,-1.734 3.867,-3.867 l 0,-38.66 c 0,-2.129 -1.735,-3.867 -3.867,-3.867" /><path + id="path7807" + style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 283.477,261.423 c -0.2,0 -0.395,-0.008 -0.594,-0.02 -0.059,-0.004 -0.117,-0.012 -0.18,-0.015 -0.148,-0.012 -0.297,-0.028 -0.445,-0.051 -0.051,-0.004 -0.106,-0.012 -0.156,-0.02 -0.028,-0.004 -0.055,-0.008 -0.086,-0.015 -0.137,-0.02 -0.274,-0.047 -0.411,-0.075 -0.117,-0.027 -0.234,-0.054 -0.351,-0.082 -0.043,-0.011 -0.082,-0.023 -0.121,-0.031 -2.66,-0.707 -4.91,-2.582 -6.039,-5.184 l -14.453,-33.234 c -1.024,-2.336 -2.313,-4.558 -3.856,-6.609 l -2.187,-2.926 c -1.43,-1.898 -2.203,-4.203 -2.203,-6.586 l 0,-23.758 c 0,-5.054 4.101,-9.144 9.144,-9.144 l 135.016,0 c 0.711,-0.02 1.41,0.047 2.082,0.183 0.019,0.004 0.039,0.008 0.058,0.012 0.121,0.023 0.239,0.051 0.356,0.082 0.047,0.012 0.094,0.023 0.14,0.035 0.082,0.024 0.164,0.047 0.247,0.07 0.085,0.028 0.167,0.055 0.253,0.083 0.047,0.015 0.094,0.031 0.145,0.046 0.102,0.036 0.203,0.075 0.305,0.114 0.027,0.011 0.058,0.023 0.086,0.035 0.121,0.051 0.242,0.101 0.363,0.156 0,0 0.004,0 0.008,0.004 0.004,0 0.004,0 0.004,0.004 3.007,1.367 5.136,4.312 5.339,7.781 0.008,0.18 0.016,0.36 0.016,0.539 l 0,23.758 c 0,2.383 -0.762,4.688 -2.199,6.586 l -2.258,3.008 c -0.723,0.972 -1.391,1.98 -2,3.027 -0.113,0.192 -0.223,0.383 -0.328,0.578 -0.043,0.074 -0.086,0.149 -0.125,0.223 -0.121,0.219 -0.238,0.437 -0.352,0.66 -0.043,0.086 -0.09,0.168 -0.133,0.254 -0.058,0.117 -0.113,0.23 -0.171,0.348 -0.231,0.472 -0.457,0.953 -0.668,1.437 l -1.528,3.508 -0.234,0.547 0,-0.004 -12.703,29.183 c -1.36,3.133 -4.344,5.223 -7.703,5.469 -0.223,0.016 -0.442,0.024 -0.668,0.024 l -91.41,0 z m 2.211,-9.141 86.976,0 c 1.344,0 2.578,-0.742 3.211,-1.914 0.016,-0.027 0.027,-0.051 0.043,-0.078 0.035,-0.07 0.07,-0.137 0.098,-0.211 l 8.546,-19.645 0.012,0.012 4.02,-9.234 -118.821,0 2.293,5.25 -0.031,-0.028 10.301,23.649 c 0.578,1.332 1.891,2.199 3.352,2.199 z m -24.149,-82.258 0,-20.105 c 0,-0.379 0.039,-0.75 0.113,-1.106 0.512,-2.5 2.719,-4.39 5.368,-4.39 l 10.976,0 c 3.027,0 5.481,2.465 5.481,5.496 l 0,20.105 -21.938,0 z m 113.34,0 0,-2.062 0.012,0.011 0,-15.074 -0.012,-0.011 0,-2.969 c 0,-2.192 1.301,-4.172 3.305,-5.047 l 0.004,0.008 c 0.664,-0.293 1.398,-0.453 2.171,-0.453 l 10.973,0 c 0.621,0 1.219,0.105 1.773,0.296 0.196,0.067 0.387,0.145 0.571,0.235 0.008,0.004 0.019,0.008 0.031,0.015 0.176,0.086 0.348,0.18 0.516,0.286 0.007,0.004 0.015,0.007 0.019,0.011 0.524,0.328 0.988,0.743 1.375,1.227 0.121,0.156 0.235,0.316 0.344,0.484 0.012,0.02 0.023,0.039 0.035,0.059 0.094,0.148 0.176,0.308 0.258,0.469 0.012,0.027 0.023,0.054 0.039,0.082 0.074,0.156 0.137,0.316 0.195,0.48 0.008,0.02 0.02,0.039 0.028,0.063 l -0.004,-0.008 c 0.191,0.562 0.304,1.164 0.304,1.793 l 0,20.105 -21.941,0 0.004,0 z" /><path + id="path7809" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 240.398,480.802 C 107.633,480.802 0,373.169 0,240.403 0,107.638 107.633,0.001 240.398,0.001 c 132.766,0 240.403,107.637 240.403,240.402 0,132.766 -107.637,240.399 -240.403,240.399 z m 0,-0.399 c 132.551,0 240,-107.453 240,-240 0,-132.551 -107.449,-240 -240,-240 -132.546,0 -240,107.449 -240,240 0,132.547 107.454,240 240,240 z" /><path + id="path7811" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 240.398,472.348 C 112.375,472.348 8.457,368.427 8.457,240.403 8.457,112.376 112.375,8.458 240.398,8.458 c 128.028,0 231.946,103.918 231.946,231.945 0,128.024 -103.918,231.945 -231.946,231.945 z m 0,-12 c 46.309,0 89.25,-14.296 124.676,-38.703 L 59.156,115.727 c -24.406,35.426 -38.703,78.368 -38.703,124.676 0,121.539 98.406,219.945 219.945,219.945 z M 372.32,416.446 c 2.418,-1.816 4.793,-3.683 7.133,-5.594 L 69.949,101.348 c -1.91,2.34 -3.777,4.715 -5.594,7.133 L 372.32,416.446 Z m 13.856,-11.316 c 2.25,-1.992 4.461,-4.024 6.629,-6.102 L 81.773,88.001 c -2.078,2.164 -4.109,4.375 -6.101,6.625 L 386.176,405.13 Z m 12.847,-12.328 c 2.082,-2.164 4.114,-4.375 6.106,-6.625 L 94.625,75.673 c -2.25,1.992 -4.461,4.023 -6.625,6.105 l 311.023,311.024 z m 11.829,-13.344 c 1.91,-2.34 3.777,-4.715 5.593,-7.133 L 108.48,64.356 c -2.418,1.817 -4.796,3.684 -7.136,5.594 l 309.508,309.508 z m 10.793,-14.383 c 24.406,-35.426 38.703,-78.367 38.703,-124.672 0,-121.543 -98.407,-219.945 -219.95,-219.945 -46.304,0 -89.246,14.297 -124.671,38.703 l 305.918,305.914 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/PedestrianCrossing_293.svg b/content/html/_images/PedestrianCrossing_293.svg index e2933a7cbbc17a99f191791c936caa8f006876fc..f1e096ebfa349065012e6c82769c1aa456f29ca0 100644 --- a/content/html/_images/PedestrianCrossing_293.svg +++ b/content/html/_images/PedestrianCrossing_293.svg @@ -1,67 +1,67 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - version="1.0" - width="2580" - height="520" - id="svg2"> - <defs - id="defs4" /> - <g - id="layer1"> - <path - d="M 282.59707,513.23121 L 2299.6972,513.23121 L 1599.1272,27.570367 L 981.47487,27.570367 L 282.59707,513.23121 z " - style="fill:#999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path6421" /> - <path - d="M 898.44151,342.09175 L 807.36141,342.09175 L 944.37761,193.19554 L 1004.5698,193.19554 L 898.44151,342.09175 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path9991" /> - <path - d="M 924.90196,6.7989029 L 10.65625,447.1875 L 284.16579,447.77219 L 284.125,447.1875 L 284.1114,512.32156 L 980.20515,28.963979 L 980.39273,7.3039781 L 924.90196,6.7989029 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path6404" /> - <path - d="M 281.75098,449.77378 L 979.78267,8.1100888 L 979.78267,8.1100888" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path6409" /> - <path - d="M 1656.31,6.0361685 L 2570.5557,446.42477 L 2297.0462,447.00946 L 2297.087,446.42477 L 2297.1006,511.55883 L 1601.0068,28.201245 L 1600.8193,6.5412437 L 1656.31,6.0361685 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path6417" /> - <path - d="M 2299.461,449.01105 L 1601.4293,7.3473544 L 1601.4293,7.3473544" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path6419" /> - <path - d="M 1328.1859,341.79975 L 1420.058,341.79975 L 1379.666,192.11154 L 1320.2659,192.11154 L 1328.1859,341.79975 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path9967" /> - <path - d="M 1502.4261,341.79975 L 1593.5063,341.79975 L 1506.3861,192.90354 L 1444.61,192.90354 L 1502.4261,341.79975 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path9971" /> - <path - d="M 1675.0824,341.79975 L 1766.1625,341.79975 L 1629.1463,192.90354 L 1568.9542,192.90354 L 1675.0824,341.79975 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path9973" /> - <path - d="M 1849.1722,341.50775 L 1940.2523,341.50775 L 1756.5081,193.40354 L 1695.524,193.40354 L 1849.1722,341.50775 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path9975" /> - <path - d="M 1246.2919,342.09175 L 1154.4198,342.09175 L 1194.8118,192.40354 L 1254.2119,192.40354 L 1246.2919,342.09175 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path9987" /> - <path - d="M 1072.0517,342.09175 L 980.97141,342.09175 L 1068.0917,193.19554 L 1129.8678,193.19554 L 1072.0517,342.09175 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path9989" /> - <path - d="M 724.35173,342.09175 L 633.27163,342.09175 L 817.01585,193.98754 L 877.99995,193.98754 L 724.35173,342.09175 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path9993" /> - </g> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="2580" + height="520" + id="svg2"> + <defs + id="defs4" /> + <g + id="layer1"> + <path + d="M 282.59707,513.23121 L 2299.6972,513.23121 L 1599.1272,27.570367 L 981.47487,27.570367 L 282.59707,513.23121 z " + style="fill:#999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path6421" /> + <path + d="M 898.44151,342.09175 L 807.36141,342.09175 L 944.37761,193.19554 L 1004.5698,193.19554 L 898.44151,342.09175 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path9991" /> + <path + d="M 924.90196,6.7989029 L 10.65625,447.1875 L 284.16579,447.77219 L 284.125,447.1875 L 284.1114,512.32156 L 980.20515,28.963979 L 980.39273,7.3039781 L 924.90196,6.7989029 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path6404" /> + <path + d="M 281.75098,449.77378 L 979.78267,8.1100888 L 979.78267,8.1100888" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path6409" /> + <path + d="M 1656.31,6.0361685 L 2570.5557,446.42477 L 2297.0462,447.00946 L 2297.087,446.42477 L 2297.1006,511.55883 L 1601.0068,28.201245 L 1600.8193,6.5412437 L 1656.31,6.0361685 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path6417" /> + <path + d="M 2299.461,449.01105 L 1601.4293,7.3473544 L 1601.4293,7.3473544" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path6419" /> + <path + d="M 1328.1859,341.79975 L 1420.058,341.79975 L 1379.666,192.11154 L 1320.2659,192.11154 L 1328.1859,341.79975 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path9967" /> + <path + d="M 1502.4261,341.79975 L 1593.5063,341.79975 L 1506.3861,192.90354 L 1444.61,192.90354 L 1502.4261,341.79975 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path9971" /> + <path + d="M 1675.0824,341.79975 L 1766.1625,341.79975 L 1629.1463,192.90354 L 1568.9542,192.90354 L 1675.0824,341.79975 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path9973" /> + <path + d="M 1849.1722,341.50775 L 1940.2523,341.50775 L 1756.5081,193.40354 L 1695.524,193.40354 L 1849.1722,341.50775 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path9975" /> + <path + d="M 1246.2919,342.09175 L 1154.4198,342.09175 L 1194.8118,192.40354 L 1254.2119,192.40354 L 1246.2919,342.09175 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path9987" /> + <path + d="M 1072.0517,342.09175 L 980.97141,342.09175 L 1068.0917,193.19554 L 1129.8678,193.19554 L 1072.0517,342.09175 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path9989" /> + <path + d="M 724.35173,342.09175 L 633.27163,342.09175 L 817.01585,193.98754 L 877.99995,193.98754 L 724.35173,342.09175 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path9993" /> + </g> +</svg> diff --git a/content/html/_images/PowertrainModel.svg b/content/html/_images/PowertrainModel.svg index 445a50ff9050855457a5947f0ef7d3226515f59c..1f52b84abf65e81f22817092460026c497c84f2f 100644 --- a/content/html/_images/PowertrainModel.svg +++ b/content/html/_images/PowertrainModel.svg @@ -1,1136 +1,1136 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="140mm" - height="100mm" - viewBox="1 1 138.66667 99.047625" - version="1.1" - id="svg12177" - sodipodi:docname="PowertrainModel.svg" - inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" - inkscape:export-filename="PowerTrain.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title97">Powertrain</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="2.0000001" - inkscape:cx="276.49999" - inkscape:cy="121.24999" - inkscape:window-width="1920" - inkscape:window-height="1009" - inkscape:window-x="1912" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="layer8" - showguides="true" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <inkscape:path-effect - effect="offset" - id="path-effect4649" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="0" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="offset" - id="path-effect14996" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="3.1" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="offset" - id="path-effect14846" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="-2.3" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="offset" - id="path-effect14834" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="0" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="offset" - id="path-effect38844" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="tiling" - id="path-effect38774" - is_visible="true" - lpeversion="1" - unit="px" - seed="1;1" - lpesatellites="" - num_rows="3" - num_cols="3" - gapx="0" - gapy="0" - offset="0" - offset_type="false" - scale="0" - rotate="0" - mirrorrowsx="false" - mirrorrowsy="false" - mirrorcolsx="false" - mirrorcolsy="false" - mirrortrans="false" - shrink_interp="false" - split_items="false" - link_styles="false" - interpolate_scalex="false" - interpolate_scaley="true" - interpolate_rotatex="false" - interpolate_rotatey="true" - random_scale="false" - random_rotate="false" - random_gap_y="false" - random_gap_x="false" - transformorigin="" /> - <inkscape:path-effect - effect="offset" - id="path-effect38772" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="0" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38550" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38546" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38542" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38538" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32727" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32707" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32687" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32667" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <linearGradient - inkscape:collect="always" - id="linearGradient27324"> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="0" - id="stop27314" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.1" - id="stop27316" /> - <stop - style="stop-color:#808080;stop-opacity:1;" - offset="0.5" - id="stop27318" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.89999998" - id="stop27320" /> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="1" - id="stop27322" /> - </linearGradient> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019336482" - y="-0.039848052" - width="1.0439826" - height="1.0707963"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019336481" - y="-0.039848063" - width="1.0439826" - height="1.0707963"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient21572" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160" - x="-0.0089463828" - y="-0.039204291" - width="1.0178928" - height="1.0784086"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-2" - x="-0.0094838801" - y="-0.04155969" - width="1.0189678" - height="1.0831194"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-8" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30536" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30628" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-2-0" - x="-0.0094838801" - y="-0.04155969" - width="1.0189678" - height="1.0831194"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-8-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-7" - x="-0.0089463828" - y="-0.039204291" - width="1.0178928" - height="1.0784086"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-5" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30782" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30784" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30786" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <inkscape:path-effect - effect="offset" - id="path-effect38844-6" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38546-1" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38550-8" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,32.004935,-261.25666)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> - <rect - style="mix-blend-mode:normal;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.372059;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.863692, 0.431851;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="182.4476" - height="109.87457" - x="-40.794052" - y="290.92407" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline" - transform="translate(23.074149,-268.1912)"> - <rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1.76002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - id="rect2" - width="138.66667" - height="79.238098" - x="-22.074146" - y="279.09598" /> - <path - id="rect1" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.76002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M -22.074149,279.97598 H 116.59253 m 0,77.47808 H -22.074149" - sodipodi:nodetypes="cccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - transform="translate(23.074149,-268.1912)"> - <g - id="g39799" - inkscape:transform-center-x="30.918036" - inkscape:transform-center-y="1.2062399" - transform="matrix(-3.5264577,0.05008913,0.04952443,3.5666677,40.004899,213.36182)" - style="display:inline;opacity:0.726;stroke-width:0.496216" - inkscape:label="Car"> - <g - id="g10990" - inkscape:label="Green Car" - style="display:inline;opacity:0.5;stroke-width:0.496216"> - <g - id="g3439" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - style="stroke-width:0.496216"> - <path - id="rect5329-3" - style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.327515;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:1.62227;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:1.31496;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.429227;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.429227;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:1.62227;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.13129px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.429227;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.429227;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.13129px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - <g - id="g30620" - style="display:inline;opacity:0.25;stroke-width:0.496216" - transform="translate(18.488077)" - inkscape:label="Front Axle"> - <g - id="g32809" - inkscape:label="Axle" - style="stroke-width:0.496216"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30536);fill-opacity:1;stroke:#000000;stroke-width:0.0554963;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" - id="rect21541-05" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30628);fill-opacity:1;stroke:#000000;stroke-width:0.0473677;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" - id="rect21541" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.63517057,0,0,1,-4.6126916,3.1992331e-7)" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - inkscape:path-effect="#path-effect32687" - sodipodi:type="rect" - inkscape:label="rect21541" - inkscape:transform-center-y="-1.2120435" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient21572);fill-opacity:1;stroke:#000000;stroke-width:0.0473677;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" - id="rect21541-0" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.63517057,0,0,1,-4.6126918,0.53164674)" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - inkscape:path-effect="#path-effect32707" - sodipodi:type="rect" - inkscape:transform-center-x="0.027137585" - inkscape:transform-center-y="1.2484937" /> - </g> - </g> - </g> - </g> - <g - id="g30620-9" - style="display:inline;opacity:0.8;stroke-width:0.496216" - transform="matrix(-3.5264578,0.05008913,0.04952443,3.5666678,63.649877,-54.837489)" - inkscape:label="Rear Axle"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30782);fill-opacity:1;stroke:#000000;stroke-width:0.0554963;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" - id="rect21541-05-0" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30784);fill-opacity:1;stroke:#000000;stroke-width:0.0473677;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" - id="rect21541-06" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" - inkscape:path-effect="#path-effect32667" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient30786);fill-opacity:1;stroke:#000000;stroke-width:0.0473677;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" - id="rect21541-0-1" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" - inkscape:path-effect="#path-effect32727" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - </g> - <g - inkscape:groupmode="layer" - id="layer1" - inkscape:label="Powertrain" - transform="matrix(-1,0,0,1,140.66668,0)"> - <g - id="g7" - inkscape:label="Engineblock" - transform="translate(0,11.923889)"> - <rect - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.99047;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - id="rect3" - width="19.446827" - height="5.0961008" - x="98.771843" - y="47.975769" /> - <circle - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - id="path3" - cx="100.8427" - cy="50.676971" - r="1.158168" /> - <circle - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - id="circle3" - cx="103.90101" - cy="50.676971" - r="1.158168" /> - <circle - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - id="circle4" - cx="106.95932" - cy="50.676971" - r="1.158168" /> - <circle - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - id="circle5" - cx="110.01764" - cy="50.676971" - r="1.158168" /> - <circle - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - id="circle6" - cx="113.07595" - cy="50.676971" - r="1.158168" /> - <circle - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - id="circle7" - cx="116.13426" - cy="50.676971" - r="1.158168" /> - </g> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 36.706149,56.878859 -3.406826,3.406825" - id="path8" /> - <g - id="g9" - transform="translate(0,11.852191)"> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 45.943888,52.757541 -3.406826,3.406825" - id="path9" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 42.537062,45.026668 3.406826,3.406825" - id="path7" /> - </g> - <rect - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - id="rect7" - width="3.7344048" - height="3.7344048" - x="37.557858" - y="60.580505" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 35.002737,58.582272 h 9.237738" - id="path10" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 44.240475,58.582272 v 7.73087" - id="path11" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990473;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="M 44.240472,62.447704 H 82.004367" - id="path12" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990478;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 92.462438,62.447705 h 5.81417" - id="path13" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 92.373606,58.582272 v 7.73087" - id="path14" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 90.391697,58.567877 3.963818,0.02879" - id="path15" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 90.391697,66.298747 3.963818,0.02879" - id="path16" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="M 82.004371,56.957427 V 67.852089" - id="path17" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 80.022462,56.945459 3.963818,0.02394" - id="path18" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 80.022462,67.837694 3.963818,0.02879" - id="path19" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 82.004371,67.937987 v 7.73087" - id="path20" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="M 92.373606,66.313142 V 77.207804" - id="path21" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 90.391697,77.193409 3.963818,0.02879" - id="path22" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 80.022462,75.656887 3.963818,0.02394" - id="path23" /> - <path - style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990481;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="M 82.004367,71.803422 H 92.373601" - id="path24" /> - </g> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="Annotations" - transform="matrix(-1,0,0,1,117.59253,-268.19121)"> - <g - id="g53" - transform="translate(-0.40065258)"> - <text - xml:space="preserve" - style="font-size:2.79534px;line-height:1.25;font-family:sans-serif;text-align:start;text-anchor:start;stroke-width:1.77134" - x="-113.79403" - y="286.70459" - id="text1" - inkscape:label="M" - transform="scale(-1,1)"><tspan - sodipodi:role="line" - id="tspan1" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.79534px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start;stroke-width:1.77134" - x="-113.79403" - y="286.70459">Engine</tspan><tspan - sodipodi:role="line" - style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" - x="-113.79403" - y="290.19876" - id="tspan24"> Torque M<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan10">eng</tspan></tspan><tspan - sodipodi:role="line" - style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" - x="-113.79403" - y="293.69293" - id="tspan25"> Speed n<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan11">eng</tspan></tspan></text> - <text - xml:space="preserve" - style="font-size:2.79534px;line-height:1.25;font-family:sans-serif;text-align:start;text-anchor:start;stroke-width:1.77134" - x="-9.8749866" - y="286.70459" - id="text32" - inkscape:label="M" - transform="scale(-1,1)"><tspan - sodipodi:role="line" - id="tspan28" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.79534px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start;stroke-width:1.77134" - x="-9.8749866" - y="286.70459">Wheels</tspan><tspan - sodipodi:role="line" - style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" - x="-9.8749866" - y="290.19876" - id="tspan30"> Wheel Radius r<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan12">stat</tspan></tspan><tspan - sodipodi:role="line" - style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" - x="-9.8749866" - y="293.69293" - id="tspan32"> Torque M<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan13">wheel</tspan></tspan><tspan - sodipodi:role="line" - style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" - x="-9.8749866" - y="297.1871" - id="tspan33"> Speed n<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan14">wheel</tspan></tspan></text> - <text - xml:space="preserve" - style="font-size:2.79534px;line-height:1.25;font-family:sans-serif;text-align:start;text-anchor:start;stroke-width:1.77134" - x="-50.67791" - y="286.77032" - id="text43" - inkscape:label="M" - transform="scale(-1,1)"><tspan - sodipodi:role="line" - id="tspan37" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.79534px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start;stroke-width:1.77134" - x="-50.67791" - y="286.77032">Full Vehicle</tspan><tspan - sodipodi:role="line" - style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" - x="-50.67791" - y="290.2645" - id="tspan39"> Required Acceleration a<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan8">set</tspan></tspan><tspan - sodipodi:role="line" - style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" - x="-50.67791" - y="293.75867" - id="tspan41"> Current Velocity v<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan2">act</tspan></tspan><tspan - sodipodi:role="line" - style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" - x="-50.67791" - y="297.25284" - id="tspan43"> Overall Mass m</tspan></text> - <text - xml:space="preserve" - style="font-size:2.79534px;line-height:1.25;font-family:sans-serif;text-align:start;text-anchor:start;stroke-width:1.77134" - x="-89.251495" - y="286.70459" - id="text47" - inkscape:label="M" - transform="scale(-1,1)"><tspan - sodipodi:role="line" - id="tspan44" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.79534px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start;stroke-width:1.77134" - x="-89.251495" - y="286.70459">Gear Box</tspan><tspan - sodipodi:role="line" - style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" - x="-89.251495" - y="290.19876" - id="tspan47"> Current Ratio i<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan9">g</tspan>(gear)</tspan></text> - </g> - <path - style="opacity:0.5;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.990478;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 112.86926,288.81596 0.0489,12.99349 -25.007478,24.65548" - id="path66" - sodipodi:nodetypes="ccc" /> - <path - style="opacity:0.5;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.990478;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 88.040859,288.81596 0.141587,12.99349 -22.59376,21.0616" - id="path67" - sodipodi:nodetypes="ccc" /> - <path - style="opacity:0.5;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.990478;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 49.447649,288.81596 -0.04372,12.99349 -9.355656,26.54678" - id="path68" - sodipodi:nodetypes="ccc" /> - <path - style="opacity:0.5;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.990476;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m 8.621433,288.81596 0.048933,12.99349 5.9368929,6.51619" - id="path69" - sodipodi:nodetypes="ccc" /> - <text - xml:space="preserve" - style="font-size:2.79534px;line-height:1.25;font-family:sans-serif;text-align:start;text-anchor:start;stroke-width:1.77134" - x="6.3691368" - y="308.97125" - id="text81" - inkscape:label="M" - transform="scale(-1,1)"><tspan - sodipodi:role="line" - id="tspan77" - style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.79534px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start;stroke-width:1.77134" - x="6.3691368" - y="308.97125">Axle</tspan><tspan - sodipodi:role="line" - style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" - x="6.3691368" - y="312.46542" - id="tspan79"> Ratio i<tspan - style="font-size:65%;baseline-shift:sub" - id="tspan15">a</tspan></tspan><tspan - sodipodi:role="line" - style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" - x="6.3691368" - y="315.95959" - id="tspan81" /></text> - <path - style="opacity:0.5;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.990476;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" - d="m -7.3149583,310.73917 -0.027824,7.33056 16.8484813,7.62611" - id="path97" - sodipodi:nodetypes="ccc" /> - </g> - <metadata - id="metadata3370"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2024 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>Powertrain</dc:title> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="140mm" + height="100mm" + viewBox="1 1 138.66667 99.047625" + version="1.1" + id="svg12177" + sodipodi:docname="PowertrainModel.svg" + inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)" + inkscape:export-filename="PowerTrain.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title97">Powertrain</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="2.0000001" + inkscape:cx="276.49999" + inkscape:cy="121.24999" + inkscape:window-width="1920" + inkscape:window-height="1009" + inkscape:window-x="1912" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer8" + showguides="true" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <inkscape:path-effect + effect="offset" + id="path-effect4649" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="0" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="offset" + id="path-effect14996" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="3.1" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="offset" + id="path-effect14846" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="-2.3" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="offset" + id="path-effect14834" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="0" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="offset" + id="path-effect38844" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="tiling" + id="path-effect38774" + is_visible="true" + lpeversion="1" + unit="px" + seed="1;1" + lpesatellites="" + num_rows="3" + num_cols="3" + gapx="0" + gapy="0" + offset="0" + offset_type="false" + scale="0" + rotate="0" + mirrorrowsx="false" + mirrorrowsy="false" + mirrorcolsx="false" + mirrorcolsy="false" + mirrortrans="false" + shrink_interp="false" + split_items="false" + link_styles="false" + interpolate_scalex="false" + interpolate_scaley="true" + interpolate_rotatex="false" + interpolate_rotatey="true" + random_scale="false" + random_rotate="false" + random_gap_y="false" + random_gap_x="false" + transformorigin="" /> + <inkscape:path-effect + effect="offset" + id="path-effect38772" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="0" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38550" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38546" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38542" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38538" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32727" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32707" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32687" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32667" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <linearGradient + inkscape:collect="always" + id="linearGradient27324"> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="0" + id="stop27314" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.1" + id="stop27316" /> + <stop + style="stop-color:#808080;stop-opacity:1;" + offset="0.5" + id="stop27318" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.89999998" + id="stop27320" /> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="1" + id="stop27322" /> + </linearGradient> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019336482" + y="-0.039848052" + width="1.0439826" + height="1.0707963"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019336481" + y="-0.039848063" + width="1.0439826" + height="1.0707963"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient21572" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160" + x="-0.0089463828" + y="-0.039204291" + width="1.0178928" + height="1.0784086"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-2" + x="-0.0094838801" + y="-0.04155969" + width="1.0189678" + height="1.0831194"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-8" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30536" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30628" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-2-0" + x="-0.0094838801" + y="-0.04155969" + width="1.0189678" + height="1.0831194"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-8-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-7" + x="-0.0089463828" + y="-0.039204291" + width="1.0178928" + height="1.0784086"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-5" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30782" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30784" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30786" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <inkscape:path-effect + effect="offset" + id="path-effect38844-6" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38546-1" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38550-8" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,32.004935,-261.25666)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> + <rect + style="mix-blend-mode:normal;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.372059;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.863692, 0.431851;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="182.4476" + height="109.87457" + x="-40.794052" + y="290.92407" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline" + transform="translate(23.074149,-268.1912)"> + <rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1.76002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + id="rect2" + width="138.66667" + height="79.238098" + x="-22.074146" + y="279.09598" /> + <path + id="rect1" + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.76002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M -22.074149,279.97598 H 116.59253 m 0,77.47808 H -22.074149" + sodipodi:nodetypes="cccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + transform="translate(23.074149,-268.1912)"> + <g + id="g39799" + inkscape:transform-center-x="30.918036" + inkscape:transform-center-y="1.2062399" + transform="matrix(-3.5264577,0.05008913,0.04952443,3.5666677,40.004899,213.36182)" + style="display:inline;opacity:0.726;stroke-width:0.496216" + inkscape:label="Car"> + <g + id="g10990" + inkscape:label="Green Car" + style="display:inline;opacity:0.5;stroke-width:0.496216"> + <g + id="g3439" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + style="stroke-width:0.496216"> + <path + id="rect5329-3" + style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.327515;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:1.62227;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:1.31496;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.429227;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.429227;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:1.62227;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.13129px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.429227;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.429227;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.13129px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + <g + id="g30620" + style="display:inline;opacity:0.25;stroke-width:0.496216" + transform="translate(18.488077)" + inkscape:label="Front Axle"> + <g + id="g32809" + inkscape:label="Axle" + style="stroke-width:0.496216"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30536);fill-opacity:1;stroke:#000000;stroke-width:0.0554963;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" + id="rect21541-05" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30628);fill-opacity:1;stroke:#000000;stroke-width:0.0473677;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" + id="rect21541" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.63517057,0,0,1,-4.6126916,3.1992331e-7)" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + inkscape:path-effect="#path-effect32687" + sodipodi:type="rect" + inkscape:label="rect21541" + inkscape:transform-center-y="-1.2120435" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient21572);fill-opacity:1;stroke:#000000;stroke-width:0.0473677;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" + id="rect21541-0" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.63517057,0,0,1,-4.6126918,0.53164674)" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + inkscape:path-effect="#path-effect32707" + sodipodi:type="rect" + inkscape:transform-center-x="0.027137585" + inkscape:transform-center-y="1.2484937" /> + </g> + </g> + </g> + </g> + <g + id="g30620-9" + style="display:inline;opacity:0.8;stroke-width:0.496216" + transform="matrix(-3.5264578,0.05008913,0.04952443,3.5666678,63.649877,-54.837489)" + inkscape:label="Rear Axle"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30782);fill-opacity:1;stroke:#000000;stroke-width:0.0554963;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" + id="rect21541-05-0" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30784);fill-opacity:1;stroke:#000000;stroke-width:0.0473677;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" + id="rect21541-06" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" + inkscape:path-effect="#path-effect32667" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient30786);fill-opacity:1;stroke:#000000;stroke-width:0.0473677;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" + id="rect21541-0-1" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" + inkscape:path-effect="#path-effect32727" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + </g> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Powertrain" + transform="matrix(-1,0,0,1,140.66668,0)"> + <g + id="g7" + inkscape:label="Engineblock" + transform="translate(0,11.923889)"> + <rect + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.99047;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + id="rect3" + width="19.446827" + height="5.0961008" + x="98.771843" + y="47.975769" /> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + id="path3" + cx="100.8427" + cy="50.676971" + r="1.158168" /> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + id="circle3" + cx="103.90101" + cy="50.676971" + r="1.158168" /> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + id="circle4" + cx="106.95932" + cy="50.676971" + r="1.158168" /> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + id="circle5" + cx="110.01764" + cy="50.676971" + r="1.158168" /> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + id="circle6" + cx="113.07595" + cy="50.676971" + r="1.158168" /> + <circle + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + id="circle7" + cx="116.13426" + cy="50.676971" + r="1.158168" /> + </g> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 36.706149,56.878859 -3.406826,3.406825" + id="path8" /> + <g + id="g9" + transform="translate(0,11.852191)"> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 45.943888,52.757541 -3.406826,3.406825" + id="path9" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 42.537062,45.026668 3.406826,3.406825" + id="path7" /> + </g> + <rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + id="rect7" + width="3.7344048" + height="3.7344048" + x="37.557858" + y="60.580505" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 35.002737,58.582272 h 9.237738" + id="path10" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 44.240475,58.582272 v 7.73087" + id="path11" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990473;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="M 44.240472,62.447704 H 82.004367" + id="path12" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990478;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 92.462438,62.447705 h 5.81417" + id="path13" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 92.373606,58.582272 v 7.73087" + id="path14" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 90.391697,58.567877 3.963818,0.02879" + id="path15" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 90.391697,66.298747 3.963818,0.02879" + id="path16" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="M 82.004371,56.957427 V 67.852089" + id="path17" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 80.022462,56.945459 3.963818,0.02394" + id="path18" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 80.022462,67.837694 3.963818,0.02879" + id="path19" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 82.004371,67.937987 v 7.73087" + id="path20" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="M 92.373606,66.313142 V 77.207804" + id="path21" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 90.391697,77.193409 3.963818,0.02879" + id="path22" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990477;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 80.022462,75.656887 3.963818,0.02394" + id="path23" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.990481;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="M 82.004367,71.803422 H 92.373601" + id="path24" /> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="Annotations" + transform="matrix(-1,0,0,1,117.59253,-268.19121)"> + <g + id="g53" + transform="translate(-0.40065258)"> + <text + xml:space="preserve" + style="font-size:2.79534px;line-height:1.25;font-family:sans-serif;text-align:start;text-anchor:start;stroke-width:1.77134" + x="-113.79403" + y="286.70459" + id="text1" + inkscape:label="M" + transform="scale(-1,1)"><tspan + sodipodi:role="line" + id="tspan1" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.79534px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start;stroke-width:1.77134" + x="-113.79403" + y="286.70459">Engine</tspan><tspan + sodipodi:role="line" + style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" + x="-113.79403" + y="290.19876" + id="tspan24"> Torque M<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan10">eng</tspan></tspan><tspan + sodipodi:role="line" + style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" + x="-113.79403" + y="293.69293" + id="tspan25"> Speed n<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan11">eng</tspan></tspan></text> + <text + xml:space="preserve" + style="font-size:2.79534px;line-height:1.25;font-family:sans-serif;text-align:start;text-anchor:start;stroke-width:1.77134" + x="-9.8749866" + y="286.70459" + id="text32" + inkscape:label="M" + transform="scale(-1,1)"><tspan + sodipodi:role="line" + id="tspan28" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.79534px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start;stroke-width:1.77134" + x="-9.8749866" + y="286.70459">Wheels</tspan><tspan + sodipodi:role="line" + style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" + x="-9.8749866" + y="290.19876" + id="tspan30"> Wheel Radius r<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan12">stat</tspan></tspan><tspan + sodipodi:role="line" + style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" + x="-9.8749866" + y="293.69293" + id="tspan32"> Torque M<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan13">wheel</tspan></tspan><tspan + sodipodi:role="line" + style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" + x="-9.8749866" + y="297.1871" + id="tspan33"> Speed n<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan14">wheel</tspan></tspan></text> + <text + xml:space="preserve" + style="font-size:2.79534px;line-height:1.25;font-family:sans-serif;text-align:start;text-anchor:start;stroke-width:1.77134" + x="-50.67791" + y="286.77032" + id="text43" + inkscape:label="M" + transform="scale(-1,1)"><tspan + sodipodi:role="line" + id="tspan37" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.79534px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start;stroke-width:1.77134" + x="-50.67791" + y="286.77032">Full Vehicle</tspan><tspan + sodipodi:role="line" + style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" + x="-50.67791" + y="290.2645" + id="tspan39"> Required Acceleration a<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan8">set</tspan></tspan><tspan + sodipodi:role="line" + style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" + x="-50.67791" + y="293.75867" + id="tspan41"> Current Velocity v<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan2">act</tspan></tspan><tspan + sodipodi:role="line" + style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" + x="-50.67791" + y="297.25284" + id="tspan43"> Overall Mass m</tspan></text> + <text + xml:space="preserve" + style="font-size:2.79534px;line-height:1.25;font-family:sans-serif;text-align:start;text-anchor:start;stroke-width:1.77134" + x="-89.251495" + y="286.70459" + id="text47" + inkscape:label="M" + transform="scale(-1,1)"><tspan + sodipodi:role="line" + id="tspan44" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.79534px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start;stroke-width:1.77134" + x="-89.251495" + y="286.70459">Gear Box</tspan><tspan + sodipodi:role="line" + style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" + x="-89.251495" + y="290.19876" + id="tspan47"> Current Ratio i<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan9">g</tspan>(gear)</tspan></text> + </g> + <path + style="opacity:0.5;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.990478;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 112.86926,288.81596 0.0489,12.99349 -25.007478,24.65548" + id="path66" + sodipodi:nodetypes="ccc" /> + <path + style="opacity:0.5;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.990478;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 88.040859,288.81596 0.141587,12.99349 -22.59376,21.0616" + id="path67" + sodipodi:nodetypes="ccc" /> + <path + style="opacity:0.5;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.990478;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 49.447649,288.81596 -0.04372,12.99349 -9.355656,26.54678" + id="path68" + sodipodi:nodetypes="ccc" /> + <path + style="opacity:0.5;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.990476;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m 8.621433,288.81596 0.048933,12.99349 5.9368929,6.51619" + id="path69" + sodipodi:nodetypes="ccc" /> + <text + xml:space="preserve" + style="font-size:2.79534px;line-height:1.25;font-family:sans-serif;text-align:start;text-anchor:start;stroke-width:1.77134" + x="6.3691368" + y="308.97125" + id="text81" + inkscape:label="M" + transform="scale(-1,1)"><tspan + sodipodi:role="line" + id="tspan77" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.79534px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:start;text-anchor:start;stroke-width:1.77134" + x="6.3691368" + y="308.97125">Axle</tspan><tspan + sodipodi:role="line" + style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" + x="6.3691368" + y="312.46542" + id="tspan79"> Ratio i<tspan + style="font-size:65%;baseline-shift:sub" + id="tspan15">a</tspan></tspan><tspan + sodipodi:role="line" + style="font-size:2.79534px;text-align:start;text-anchor:start;stroke-width:1.77134" + x="6.3691368" + y="315.95959" + id="tspan81" /></text> + <path + style="opacity:0.5;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.990476;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" + d="m -7.3149583,310.73917 -0.027824,7.33056 16.8484813,7.62611" + id="path97" + sodipodi:nodetypes="ccc" /> + </g> + <metadata + id="metadata3370"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2024 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>Powertrain</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/RightLaneEnd_W4-2R.svg b/content/html/_images/RightLaneEnd_W4-2R.svg index 899e10c85d84ab9277a03441b9d13f535f51c42a..e0fffae074cb208f8421ae35c6169109a9974ff5 100644 --- a/content/html/_images/RightLaneEnd_W4-2R.svg +++ b/content/html/_images/RightLaneEnd_W4-2R.svg @@ -1,101 +1,101 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="90" - height="89.992096" - viewBox="0 0 254.00007 253.97768" - version="1.1" - id="svg2" - inkscape:version="0.48.2 r9819" - sodipodi:docname="MUTCD W4-1L.svg"> - <metadata - id="metadata62"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - <dc:title></dc:title> - </cc:Work> - </rdf:RDF> - </metadata> - <defs - id="defs60" /> - <sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="1280" - inkscape:window-height="1004" - id="namedview58" - showgrid="false" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" - inkscape:zoom="5.6568542" - inkscape:cx="59.114527" - inkscape:cy="42.06578" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="svg2" - showguides="true" - inkscape:guide-bbox="true" /> - <!-- draw the bicycle --> - <!-- RIGHT --> - <!-- LANE --> - <!-- ONLY --> - <path - inkscape:connector-curvature="0" - d="M 118.77326,250.564 3.43253,135.2268 C 1.26648,133.06075 0,130.06213 0,126.99297 c 0,-3.07623 1.26648,-6.06778 3.43253,-8.24442 L 118.77326,3.4113484 c 2.17311,-2.17664 5.15761,-3.41841004 8.24089,-3.411360043579 3.06917,0 6.07131,1.234720043579 8.23383,3.411360043579 L 250.59576,118.74855 c 2.159,2.16253 3.40431,5.18936 3.40431,8.24442 0,3.05152 -1.24531,6.07483 -3.40431,8.23383 L 135.24798,250.564 c -2.794,2.79753 -6.99911,3.99697 -10.85144,3.14325 -2.26837,-0.51858 -3.84528,-1.70392 -5.62328,-3.14325" - style="fill:#fecf33;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3438" /> - <path - inkscape:connector-curvature="0" - d="M 133.18073,248.51755 248.54262,133.15566 c 1.60514,-1.60514 2.53295,-3.88409 2.53295,-6.16303 0,-2.27189 -0.92781,-4.58259 -2.53295,-6.18773 L 133.18073,5.4571284 c -1.6263,-1.61925 -3.85939,-2.52942 -6.1595,-2.52942 -2.31069,0 -4.56847,0.91017 -6.19831,2.52942 L 5.48573,120.8049 c -1.61925,1.61925 -2.55411,3.89114 -2.55411,6.18773 0,2.29305 0.93486,4.54378 2.55411,6.16303 l 115.33719,115.36189 c 1.61573,1.60514 3.92289,2.52942 6.19831,2.52942 2.26836,0 4.54731,-0.92428 6.1595,-2.52942" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" - id="path3462" /> - <path - inkscape:connector-curvature="0" - d="m 129.75597,245.07302 c -0.70909,0.70203 -1.74273,1.12184 -2.74462,1.12889 -1.00541,0 -2.032,-0.4198 -2.73755,-1.12889 L 8.91543,129.7323 c -0.73025,-0.71967 -1.11477,-1.72508 -1.11477,-2.73756 0,-1.02658 0.38452,-2.02141 1.11477,-2.74461 L 124.2738,8.9129384 c 0.70555,-0.71261 1.73214,-1.143 2.73755,-1.13595 1.00189,0 2.03553,0.42334 2.74462,1.13595 L 245.08963,124.25013 c 0.7232,0.71614 1.13242,1.72861 1.13948,2.74461 0.007,1.03364 -0.40923,2.00378 -1.13948,2.73756 L 129.75597,245.07302 z" - style="fill:#fecf33;fill-opacity:1;fill-rule:evenodd;stroke:none" - id="path3466" /> - <path - d="m 79.721986,188.2887 19.402783,0 0,-121.380283 -19.402783,0 0,121.380283 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3594" - inkscape:connector-curvature="0" /> - <path - d="m 133.40137,66.907359 0,36.336121 c 0,0 16.77812,20.39409 20.28473,24.65917 l 0,60.38499 19.40278,0 0,-67.33824 c 0,0 -16.77458,-20.39409 -20.28472,-24.659172 l 0,-29.382869 -19.40279,0 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3598" - inkscape:connector-curvature="0" /> - <path - d="m 140.59028,188.2887 -7.18961,0 0,-12.68236 7.18961,0 0,12.68236 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3600" - inkscape:connector-curvature="0" /> - <path - d="m 140.59028,166.73044 -7.18961,0 0,-12.67883 7.18961,0 0,12.67883 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3602" - inkscape:connector-curvature="0" /> - <path - d="m 140.59028,145.17572 -7.18961,0 0,-12.67884 7.18961,0 0,12.67884 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path3604" - inkscape:connector-curvature="0" /> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="90" + height="89.992096" + viewBox="0 0 254.00007 253.97768" + version="1.1" + id="svg2" + inkscape:version="0.48.2 r9819" + sodipodi:docname="MUTCD W4-1L.svg"> + <metadata + id="metadata62"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs60" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="1004" + id="namedview58" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:zoom="5.6568542" + inkscape:cx="59.114527" + inkscape:cy="42.06578" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" + showguides="true" + inkscape:guide-bbox="true" /> + <!-- draw the bicycle --> + <!-- RIGHT --> + <!-- LANE --> + <!-- ONLY --> + <path + inkscape:connector-curvature="0" + d="M 118.77326,250.564 3.43253,135.2268 C 1.26648,133.06075 0,130.06213 0,126.99297 c 0,-3.07623 1.26648,-6.06778 3.43253,-8.24442 L 118.77326,3.4113484 c 2.17311,-2.17664 5.15761,-3.41841004 8.24089,-3.411360043579 3.06917,0 6.07131,1.234720043579 8.23383,3.411360043579 L 250.59576,118.74855 c 2.159,2.16253 3.40431,5.18936 3.40431,8.24442 0,3.05152 -1.24531,6.07483 -3.40431,8.23383 L 135.24798,250.564 c -2.794,2.79753 -6.99911,3.99697 -10.85144,3.14325 -2.26837,-0.51858 -3.84528,-1.70392 -5.62328,-3.14325" + style="fill:#fecf33;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3438" /> + <path + inkscape:connector-curvature="0" + d="M 133.18073,248.51755 248.54262,133.15566 c 1.60514,-1.60514 2.53295,-3.88409 2.53295,-6.16303 0,-2.27189 -0.92781,-4.58259 -2.53295,-6.18773 L 133.18073,5.4571284 c -1.6263,-1.61925 -3.85939,-2.52942 -6.1595,-2.52942 -2.31069,0 -4.56847,0.91017 -6.19831,2.52942 L 5.48573,120.8049 c -1.61925,1.61925 -2.55411,3.89114 -2.55411,6.18773 0,2.29305 0.93486,4.54378 2.55411,6.16303 l 115.33719,115.36189 c 1.61573,1.60514 3.92289,2.52942 6.19831,2.52942 2.26836,0 4.54731,-0.92428 6.1595,-2.52942" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path3462" /> + <path + inkscape:connector-curvature="0" + d="m 129.75597,245.07302 c -0.70909,0.70203 -1.74273,1.12184 -2.74462,1.12889 -1.00541,0 -2.032,-0.4198 -2.73755,-1.12889 L 8.91543,129.7323 c -0.73025,-0.71967 -1.11477,-1.72508 -1.11477,-2.73756 0,-1.02658 0.38452,-2.02141 1.11477,-2.74461 L 124.2738,8.9129384 c 0.70555,-0.71261 1.73214,-1.143 2.73755,-1.13595 1.00189,0 2.03553,0.42334 2.74462,1.13595 L 245.08963,124.25013 c 0.7232,0.71614 1.13242,1.72861 1.13948,2.74461 0.007,1.03364 -0.40923,2.00378 -1.13948,2.73756 L 129.75597,245.07302 z" + style="fill:#fecf33;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path3466" /> + <path + d="m 79.721986,188.2887 19.402783,0 0,-121.380283 -19.402783,0 0,121.380283 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3594" + inkscape:connector-curvature="0" /> + <path + d="m 133.40137,66.907359 0,36.336121 c 0,0 16.77812,20.39409 20.28473,24.65917 l 0,60.38499 19.40278,0 0,-67.33824 c 0,0 -16.77458,-20.39409 -20.28472,-24.659172 l 0,-29.382869 -19.40279,0 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3598" + inkscape:connector-curvature="0" /> + <path + d="m 140.59028,188.2887 -7.18961,0 0,-12.68236 7.18961,0 0,12.68236 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3600" + inkscape:connector-curvature="0" /> + <path + d="m 140.59028,166.73044 -7.18961,0 0,-12.67883 7.18961,0 0,12.67883 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3602" + inkscape:connector-curvature="0" /> + <path + d="m 140.59028,145.17572 -7.18961,0 0,-12.67884 7.18961,0 0,12.67884 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path3604" + inkscape:connector-curvature="0" /> +</svg> diff --git a/content/html/_images/RightOfWayBegin_306.svg b/content/html/_images/RightOfWayBegin_306.svg index 297b9a02ee23f5dff91122e2b249deea21f02b1d..6c2931762f73629fb4444b813d45431aec7d5d92 100644 --- a/content/html/_images/RightOfWayBegin_306.svg +++ b/content/html/_images/RightOfWayBegin_306.svg @@ -1,41 +1,41 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600 600" - height="600" - width="600" - xml:space="preserve" - version="1.1" - id="svg3484"><metadata - id="metadata3490"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs3488" /><g - transform="matrix(1.25,0,0,-1.25,0,600)" - id="g3492"><g - id="g3494"><path - id="path3496" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 223.758,7.562 6.582,224.734 c -9.98,9.977 -6.684,24.672 0.219,31.957 l 216.23,216.082 c 11.098,11.086 26.364,7.176 33.473,0.075 L 471.812,258.051 c 10.321,-10.313 10.547,-24.094 0.516,-34.121 L 256.16,7.508 C 239.863,-8.77 223.758,7.562 223.758,7.562 Z" /><path - id="path3498" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 471.812,258.051 c 10.321,-10.313 10.547,-24.094 0.516,-34.121 C 400.273,151.789 328.219,79.648 256.16,7.508 239.863,-8.77 223.758,7.562 223.758,7.562 L 6.582,224.734 c -9.98,9.977 -6.684,24.672 0.219,31.957 l 216.23,216.082 c 11.098,11.086 26.364,7.176 33.473,0.075 L 471.812,258.051 Z" /><path - id="path3500" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 471.812,258.051 c 10.321,-10.313 10.547,-24.094 0.516,-34.121 C 400.273,151.789 328.219,79.648 256.16,7.508 239.863,-8.77 223.758,7.562 223.758,7.562 L 6.582,224.734 c -9.98,9.977 -6.684,24.672 0.219,31.957 l 216.23,216.082 c 11.098,11.086 26.364,7.176 33.473,0.075 L 471.812,258.051 Z" /><path - id="path3502" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 250.379,467.738 216.902,-216.89 c 10.629,-10.582 0.203,-20.539 0.203,-20.539 L 250.215,13.191 c 0,0 -9.965,-10.421 -20.551,0.2 L 12.621,230.145 c -10.598,10.644 -0.004,20.691 -0.004,20.691 72.328,72.355 144.692,144.617 217.055,216.906 0,0 10.058,10.586 20.707,-0.004 z m -6.199,-6.195 c -4.172,4.199 -8.371,-0.094 -8.371,-0.094 C 163.488,389.227 91.199,316.965 18.914,244.703 c 0,0 -4.297,-4.195 -0.094,-8.363 L 235.836,19.613 c 4.492,-4.34 8.211,0.032 8.211,0.032 72.445,72.16 144.707,144.496 216.98,216.828 0,0 4.371,3.718 0.032,8.203 L 244.18,461.543 Z" /><path - id="path3504" - style="fill:#f7ba0b;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 240.004,107.648 372.996,240.547 240.004,373.449 107.012,240.547 240.004,107.648 Z" /><path - id="path3506" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 240.004,103.496 -2.078,2.078 L 102.855,240.547 240.004,377.602 377.152,240.547 240.004,103.496 Z m 0,8.305 L 368.84,240.547 240.004,369.293 111.168,240.547 240.004,111.801 Z" /><path - id="path3508" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600 600" + height="600" + width="600" + xml:space="preserve" + version="1.1" + id="svg3484"><metadata + id="metadata3490"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs3488" /><g + transform="matrix(1.25,0,0,-1.25,0,600)" + id="g3492"><g + id="g3494"><path + id="path3496" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 223.758,7.562 6.582,224.734 c -9.98,9.977 -6.684,24.672 0.219,31.957 l 216.23,216.082 c 11.098,11.086 26.364,7.176 33.473,0.075 L 471.812,258.051 c 10.321,-10.313 10.547,-24.094 0.516,-34.121 L 256.16,7.508 C 239.863,-8.77 223.758,7.562 223.758,7.562 Z" /><path + id="path3498" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 471.812,258.051 c 10.321,-10.313 10.547,-24.094 0.516,-34.121 C 400.273,151.789 328.219,79.648 256.16,7.508 239.863,-8.77 223.758,7.562 223.758,7.562 L 6.582,224.734 c -9.98,9.977 -6.684,24.672 0.219,31.957 l 216.23,216.082 c 11.098,11.086 26.364,7.176 33.473,0.075 L 471.812,258.051 Z" /><path + id="path3500" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 471.812,258.051 c 10.321,-10.313 10.547,-24.094 0.516,-34.121 C 400.273,151.789 328.219,79.648 256.16,7.508 239.863,-8.77 223.758,7.562 223.758,7.562 L 6.582,224.734 c -9.98,9.977 -6.684,24.672 0.219,31.957 l 216.23,216.082 c 11.098,11.086 26.364,7.176 33.473,0.075 L 471.812,258.051 Z" /><path + id="path3502" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 250.379,467.738 216.902,-216.89 c 10.629,-10.582 0.203,-20.539 0.203,-20.539 L 250.215,13.191 c 0,0 -9.965,-10.421 -20.551,0.2 L 12.621,230.145 c -10.598,10.644 -0.004,20.691 -0.004,20.691 72.328,72.355 144.692,144.617 217.055,216.906 0,0 10.058,10.586 20.707,-0.004 z m -6.199,-6.195 c -4.172,4.199 -8.371,-0.094 -8.371,-0.094 C 163.488,389.227 91.199,316.965 18.914,244.703 c 0,0 -4.297,-4.195 -0.094,-8.363 L 235.836,19.613 c 4.492,-4.34 8.211,0.032 8.211,0.032 72.445,72.16 144.707,144.496 216.98,216.828 0,0 4.371,3.718 0.032,8.203 L 244.18,461.543 Z" /><path + id="path3504" + style="fill:#f7ba0b;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 240.004,107.648 372.996,240.547 240.004,373.449 107.012,240.547 240.004,107.648 Z" /><path + id="path3506" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 240.004,103.496 -2.078,2.078 L 102.855,240.547 240.004,377.602 377.152,240.547 240.004,103.496 Z m 0,8.305 L 368.84,240.547 240.004,369.293 111.168,240.547 240.004,111.801 Z" /><path + id="path3508" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 472.02,258.262 c 5.207,-5.203 7.882,-11.305 7.976,-17.375 0.094,-6.071 -2.394,-12.102 -7.461,-17.164 C 400.48,151.582 328.426,79.441 256.371,7.301 248.152,-0.91 239.891,-0.922 233.754,1.152 227.613,3.227 223.547,7.355 223.547,7.355 L 6.375,224.527 c -5.051,5.051 -6.75,11.313 -6.309,17.215 0.446,5.903 3.02,11.453 6.524,15.153 l 0.004,0.007 216.23,216.078 c 5.61,5.606 12.297,7.43 18.461,6.946 6.168,-0.485 11.817,-3.262 15.426,-6.867 L 472.02,258.262 Z m -0.208,-0.211 -215.308,214.797 c -7.109,7.101 -22.375,11.011 -33.473,-0.075 L 6.801,256.691 C -0.102,249.406 -3.398,234.711 6.582,224.734 L 223.758,7.562 c 0,0 16.105,-16.332 32.402,-0.054 72.059,72.14 144.113,144.281 216.168,216.422 10.031,10.027 9.805,23.808 -0.516,34.121 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/RightOfWayEnd_307.svg b/content/html/_images/RightOfWayEnd_307.svg index eb538bebfc14c95b38c1518e5d1aa84711666b87..918b5d546724e4c0c35f66463058662860eae471 100644 --- a/content/html/_images/RightOfWayEnd_307.svg +++ b/content/html/_images/RightOfWayEnd_307.svg @@ -1,50 +1,50 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600 600" - height="600" - width="600" - xml:space="preserve" - version="1.1" - id="svg5811"><metadata - id="metadata5817"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs5815" /><g - transform="matrix(1.25,0,0,-1.25,0,600)" - id="g5819"><g - id="g5821"><path - id="path5823" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 223.758,7.562 6.582,224.734 c -9.98,9.977 -6.684,24.672 0.219,31.957 l 216.23,216.082 c 11.098,11.086 26.364,7.176 33.473,0.075 L 471.812,258.051 c 10.321,-10.313 10.547,-24.094 0.516,-34.121 L 256.16,7.508 C 239.863,-8.77 223.758,7.562 223.758,7.562 Z" /><path - id="path5825" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 471.812,258.051 c 10.321,-10.313 10.547,-24.094 0.516,-34.121 C 400.273,151.789 328.219,79.648 256.16,7.508 239.863,-8.77 223.758,7.562 223.758,7.562 L 6.582,224.734 c -9.98,9.977 -6.684,24.672 0.219,31.957 l 216.23,216.082 c 11.098,11.086 26.364,7.176 33.473,0.075 L 471.812,258.051 Z" /><path - id="path5827" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 471.812,258.051 c 10.321,-10.313 10.547,-24.094 0.516,-34.121 C 400.273,151.789 328.219,79.648 256.16,7.508 239.863,-8.77 223.758,7.562 223.758,7.562 L 6.582,224.734 c -9.98,9.977 -6.684,24.672 0.219,31.957 l 216.23,216.082 c 11.098,11.086 26.364,7.176 33.473,0.075 L 471.812,258.051 Z" /><path - id="path5829" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 250.379,467.738 216.902,-216.89 c 10.629,-10.582 0.203,-20.539 0.203,-20.539 L 250.215,13.191 c 0,0 -9.965,-10.421 -20.551,0.2 L 12.621,230.145 c -10.598,10.644 -0.004,20.691 -0.004,20.691 72.328,72.355 144.692,144.617 217.055,216.906 0,0 10.058,10.586 20.707,-0.004 z m -6.199,-6.195 c -4.172,4.199 -8.371,-0.094 -8.371,-0.094 C 163.488,389.227 91.199,316.965 18.914,244.703 c 0,0 -4.297,-4.195 -0.094,-8.363 L 235.836,19.613 c 4.492,-4.34 8.211,0.032 8.211,0.032 72.445,72.16 144.707,144.496 216.98,216.828 0,0 4.371,3.718 0.032,8.203 L 244.18,461.543 Z" /><path - id="path5831" - style="fill:#f7ba0b;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 240.004,107.648 372.996,240.547 240.004,373.449 107.012,240.547 240.004,107.648 Z" /><path - id="path5833" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 240.004,103.496 -2.078,2.078 L 102.855,240.547 240.004,377.602 377.152,240.547 240.004,103.496 Z m 0,8.305 L 368.84,240.547 240.004,369.293 111.168,240.547 240.004,111.801 Z" /><path - id="path5835" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 472.02,258.262 c 5.207,-5.203 7.882,-11.305 7.976,-17.375 0.094,-6.071 -2.394,-12.102 -7.461,-17.164 C 400.48,151.582 328.426,79.441 256.371,7.301 248.152,-0.91 239.891,-0.922 233.754,1.152 227.613,3.227 223.547,7.355 223.547,7.355 L 6.375,224.527 c -5.051,5.051 -6.75,11.313 -6.309,17.215 0.446,5.903 3.02,11.453 6.524,15.153 l 0.004,0.007 216.23,216.078 c 5.61,5.606 12.297,7.43 18.461,6.946 6.168,-0.485 11.817,-3.262 15.426,-6.867 L 472.02,258.262 Z m -0.208,-0.211 -215.308,214.797 c -7.109,7.101 -22.375,11.011 -33.473,-0.075 L 6.801,256.691 C -0.102,249.406 -3.398,234.711 6.582,224.734 L 223.758,7.562 c 0,0 16.105,-16.332 32.402,-0.054 72.059,72.14 144.113,144.281 216.168,216.422 10.031,10.027 9.805,23.808 -0.516,34.121 z" /><path - id="path5837" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 382.645,327.023 -14.547,14.536 -229.59,-229.43 14.547,-14.535 229.59,229.429 z" /><path - id="path5839" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 361.863,347.789 -14.547,14.535 -229.589,-229.429 14.546,-14.536 229.59,229.43 z" /><path - id="path5841" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600 600" + height="600" + width="600" + xml:space="preserve" + version="1.1" + id="svg5811"><metadata + id="metadata5817"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs5815" /><g + transform="matrix(1.25,0,0,-1.25,0,600)" + id="g5819"><g + id="g5821"><path + id="path5823" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 223.758,7.562 6.582,224.734 c -9.98,9.977 -6.684,24.672 0.219,31.957 l 216.23,216.082 c 11.098,11.086 26.364,7.176 33.473,0.075 L 471.812,258.051 c 10.321,-10.313 10.547,-24.094 0.516,-34.121 L 256.16,7.508 C 239.863,-8.77 223.758,7.562 223.758,7.562 Z" /><path + id="path5825" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 471.812,258.051 c 10.321,-10.313 10.547,-24.094 0.516,-34.121 C 400.273,151.789 328.219,79.648 256.16,7.508 239.863,-8.77 223.758,7.562 223.758,7.562 L 6.582,224.734 c -9.98,9.977 -6.684,24.672 0.219,31.957 l 216.23,216.082 c 11.098,11.086 26.364,7.176 33.473,0.075 L 471.812,258.051 Z" /><path + id="path5827" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 471.812,258.051 c 10.321,-10.313 10.547,-24.094 0.516,-34.121 C 400.273,151.789 328.219,79.648 256.16,7.508 239.863,-8.77 223.758,7.562 223.758,7.562 L 6.582,224.734 c -9.98,9.977 -6.684,24.672 0.219,31.957 l 216.23,216.082 c 11.098,11.086 26.364,7.176 33.473,0.075 L 471.812,258.051 Z" /><path + id="path5829" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 250.379,467.738 216.902,-216.89 c 10.629,-10.582 0.203,-20.539 0.203,-20.539 L 250.215,13.191 c 0,0 -9.965,-10.421 -20.551,0.2 L 12.621,230.145 c -10.598,10.644 -0.004,20.691 -0.004,20.691 72.328,72.355 144.692,144.617 217.055,216.906 0,0 10.058,10.586 20.707,-0.004 z m -6.199,-6.195 c -4.172,4.199 -8.371,-0.094 -8.371,-0.094 C 163.488,389.227 91.199,316.965 18.914,244.703 c 0,0 -4.297,-4.195 -0.094,-8.363 L 235.836,19.613 c 4.492,-4.34 8.211,0.032 8.211,0.032 72.445,72.16 144.707,144.496 216.98,216.828 0,0 4.371,3.718 0.032,8.203 L 244.18,461.543 Z" /><path + id="path5831" + style="fill:#f7ba0b;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 240.004,107.648 372.996,240.547 240.004,373.449 107.012,240.547 240.004,107.648 Z" /><path + id="path5833" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 240.004,103.496 -2.078,2.078 L 102.855,240.547 240.004,377.602 377.152,240.547 240.004,103.496 Z m 0,8.305 L 368.84,240.547 240.004,369.293 111.168,240.547 240.004,111.801 Z" /><path + id="path5835" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 472.02,258.262 c 5.207,-5.203 7.882,-11.305 7.976,-17.375 0.094,-6.071 -2.394,-12.102 -7.461,-17.164 C 400.48,151.582 328.426,79.441 256.371,7.301 248.152,-0.91 239.891,-0.922 233.754,1.152 227.613,3.227 223.547,7.355 223.547,7.355 L 6.375,224.527 c -5.051,5.051 -6.75,11.313 -6.309,17.215 0.446,5.903 3.02,11.453 6.524,15.153 l 0.004,0.007 216.23,216.078 c 5.61,5.606 12.297,7.43 18.461,6.946 6.168,-0.485 11.817,-3.262 15.426,-6.867 L 472.02,258.262 Z m -0.208,-0.211 -215.308,214.797 c -7.109,7.101 -22.375,11.011 -33.473,-0.075 L 6.801,256.691 C -0.102,249.406 -3.398,234.711 6.582,224.734 L 223.758,7.562 c 0,0 16.105,-16.332 32.402,-0.054 72.059,72.14 144.113,144.281 216.168,216.422 10.031,10.027 9.805,23.808 -0.516,34.121 z" /><path + id="path5837" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 382.645,327.023 -14.547,14.536 -229.59,-229.43 14.547,-14.535 229.59,229.429 z" /><path + id="path5839" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 361.863,347.789 -14.547,14.535 -229.589,-229.429 14.546,-14.536 229.59,229.43 z" /><path + id="path5841" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 341.082,368.555 326.535,383.09 96.949,153.66 l 14.547,-14.535 229.586,229.43 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/RightOfWayNextIntersection_301.svg b/content/html/_images/RightOfWayNextIntersection_301.svg index 4188488d29fc282c1d6383e3191bf3a347e114e7..bfcec879dffd3546beb637f08c3382921d661187 100644 --- a/content/html/_images/RightOfWayNextIntersection_301.svg +++ b/content/html/_images/RightOfWayNextIntersection_301.svg @@ -1,32 +1,32 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 847.15857 743.62268" - height="743.62268" - width="847.15857" - xml:space="preserve" - version="1.1" - id="svg8198"><metadata - id="metadata8204"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs8202" /><g - transform="matrix(1.25,0,0,-1.25,0,743.62267)" - id="g8206"><g - id="g8208"><path - id="path8210" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 338.867,594.5 c -7.512,0 -15.027,-2.867 -20.758,-8.598 -1.879,-1.879 -3.445,-3.953 -4.707,-6.152 l -15.246,-26.157 -0.07,0 L 4.984,45.554 C 4.93,45.457 4.887,45.359 4.832,45.261 3.344,42.867 2.176,40.218 1.406,37.351 -2.789,21.695 6.504,5.597 22.164,1.402 c 2.586,-0.695 5.184,-1.012 7.738,-1 l 618.067,0 c 16.215,0 29.355,13.141 29.355,29.356 0,5.304 -1.414,10.281 -3.879,14.578 -0.019,0.031 -0.035,0.062 -0.05,0.097 l -304.368,528.41 c -3.863,6.665 -5.652,9.305 -9.406,13.059 -5.73,5.731 -13.242,8.598 -20.754,8.598 z" /><path - id="path8212" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 338.867,587.144 c -7.125,0.051 -14.949,-3.59 -18.781,-10.406 L 10.793,40.847 C 9.008,37.199 8.258,34.027 8.234,30.398 c 0,-6.496 2.875,-12.66 7.848,-16.84 4.383,-3.394 8.535,-5.16 14.121,-5.16 l 617.906,0 c 3.77,-0.035 7.547,0.871 10.977,3.133 6.453,3.898 10.402,10.883 10.41,18.426 -0.184,3.894 -1.144,8 -2.879,10.89 L 357.504,576.828 c -0.027,0.047 -0.059,0.094 -0.09,0.14 -0.031,0.047 -0.062,0.094 -0.094,0.145 -1.097,1.754 -2.472,3.305 -4.039,4.633 -3.59,3.109 -8.086,4.976 -12.824,5.316 -0.531,0.047 -1.062,0.078 -1.59,0.082 z M 30.203,8.398 l -1.523,0 1.554,0 -0.031,0 z M 338.547,480.933 574.25,72.398 l -471.738,0 236.035,408.535 z" /><path - id="path8214" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 338.867,594.898 c -7.617,0 -15.23,-2.906 -21.039,-8.715 -1.906,-1.902 -3.492,-4.008 -4.773,-6.234 l -15.129,-25.957 -0.071,0 L 4.641,45.754 C 4.574,45.636 4.527,45.535 4.48,45.453 2.977,43.031 1.797,40.351 1.02,37.457 -3.23,21.586 6.191,5.269 22.059,1.015 24.68,0.312 27.316,-0.008 29.902,0 l 618.067,0 c 16.429,0 29.758,13.328 29.758,29.758 0,5.375 -1.438,10.417 -3.934,14.773 -0.012,0.019 -0.027,0.051 -0.051,0.098 L 369.379,573.043 c -3.871,6.668 -5.695,9.363 -9.469,13.14 -5.808,5.809 -13.426,8.715 -21.039,8.715 l -0.004,0 z m 0,-0.398 c 7.512,0 15.024,-2.867 20.754,-8.598 3.754,-3.754 5.543,-6.394 9.406,-13.059 L 673.391,44.433 c 0.019,-0.035 0.035,-0.066 0.054,-0.097 2.465,-4.297 3.879,-9.274 3.879,-14.578 0,-16.215 -13.14,-29.356 -29.355,-29.356 l -618.067,0 C 27.348,0.39 24.75,0.707 22.164,1.402 6.504,5.597 -2.789,21.695 1.406,37.351 c 0.766,2.867 1.938,5.516 3.426,7.91 0.055,0.098 0.098,0.196 0.152,0.293 l 293.102,508.039 0.07,0 15.246,26.157 c 1.262,2.199 2.828,4.273 4.707,6.152 5.731,5.731 13.243,8.598 20.758,8.598 z" /><path - id="path8216" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 847.15857 743.62268" + height="743.62268" + width="847.15857" + xml:space="preserve" + version="1.1" + id="svg8198"><metadata + id="metadata8204"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs8202" /><g + transform="matrix(1.25,0,0,-1.25,0,743.62267)" + id="g8206"><g + id="g8208"><path + id="path8210" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 338.867,594.5 c -7.512,0 -15.027,-2.867 -20.758,-8.598 -1.879,-1.879 -3.445,-3.953 -4.707,-6.152 l -15.246,-26.157 -0.07,0 L 4.984,45.554 C 4.93,45.457 4.887,45.359 4.832,45.261 3.344,42.867 2.176,40.218 1.406,37.351 -2.789,21.695 6.504,5.597 22.164,1.402 c 2.586,-0.695 5.184,-1.012 7.738,-1 l 618.067,0 c 16.215,0 29.355,13.141 29.355,29.356 0,5.304 -1.414,10.281 -3.879,14.578 -0.019,0.031 -0.035,0.062 -0.05,0.097 l -304.368,528.41 c -3.863,6.665 -5.652,9.305 -9.406,13.059 -5.73,5.731 -13.242,8.598 -20.754,8.598 z" /><path + id="path8212" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 338.867,587.144 c -7.125,0.051 -14.949,-3.59 -18.781,-10.406 L 10.793,40.847 C 9.008,37.199 8.258,34.027 8.234,30.398 c 0,-6.496 2.875,-12.66 7.848,-16.84 4.383,-3.394 8.535,-5.16 14.121,-5.16 l 617.906,0 c 3.77,-0.035 7.547,0.871 10.977,3.133 6.453,3.898 10.402,10.883 10.41,18.426 -0.184,3.894 -1.144,8 -2.879,10.89 L 357.504,576.828 c -0.027,0.047 -0.059,0.094 -0.09,0.14 -0.031,0.047 -0.062,0.094 -0.094,0.145 -1.097,1.754 -2.472,3.305 -4.039,4.633 -3.59,3.109 -8.086,4.976 -12.824,5.316 -0.531,0.047 -1.062,0.078 -1.59,0.082 z M 30.203,8.398 l -1.523,0 1.554,0 -0.031,0 z M 338.547,480.933 574.25,72.398 l -471.738,0 236.035,408.535 z" /><path + id="path8214" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 338.867,594.898 c -7.617,0 -15.23,-2.906 -21.039,-8.715 -1.906,-1.902 -3.492,-4.008 -4.773,-6.234 l -15.129,-25.957 -0.071,0 L 4.641,45.754 C 4.574,45.636 4.527,45.535 4.48,45.453 2.977,43.031 1.797,40.351 1.02,37.457 -3.23,21.586 6.191,5.269 22.059,1.015 24.68,0.312 27.316,-0.008 29.902,0 l 618.067,0 c 16.429,0 29.758,13.328 29.758,29.758 0,5.375 -1.438,10.417 -3.934,14.773 -0.012,0.019 -0.027,0.051 -0.051,0.098 L 369.379,573.043 c -3.871,6.668 -5.695,9.363 -9.469,13.14 -5.808,5.809 -13.426,8.715 -21.039,8.715 l -0.004,0 z m 0,-0.398 c 7.512,0 15.024,-2.867 20.754,-8.598 3.754,-3.754 5.543,-6.394 9.406,-13.059 L 673.391,44.433 c 0.019,-0.035 0.035,-0.066 0.054,-0.097 2.465,-4.297 3.879,-9.274 3.879,-14.578 0,-16.215 -13.14,-29.356 -29.355,-29.356 l -618.067,0 C 27.348,0.39 24.75,0.707 22.164,1.402 6.504,5.597 -2.789,21.695 1.406,37.351 c 0.766,2.867 1.938,5.516 3.426,7.91 0.055,0.098 0.098,0.196 0.152,0.293 l 293.102,508.039 0.07,0 15.246,26.157 c 1.262,2.199 2.828,4.273 4.707,6.152 5.731,5.731 13.243,8.598 20.758,8.598 z" /><path + id="path8216" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 338.863,155.062 -54.359,-54.359 0,108.734 -56.383,0 0,32.211 56.383,0 0,62.43 54.359,54.359 54.379,-54.359 0,-62.43 56.379,0 0,-32.211 -56.379,0 0,-108.734" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/RoadCoordinateSystem.svg b/content/html/_images/RoadCoordinateSystem.svg index ee5404458d05802a5d24f65465b25d2ee6d40b9d..0648e520d75d8b27a4ff90d67634950c7765314f 100644 --- a/content/html/_images/RoadCoordinateSystem.svg +++ b/content/html/_images/RoadCoordinateSystem.svg @@ -1,1283 +1,1283 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="128.87199mm" - viewBox="1 1 208 127.64465" - version="1.1" - id="svg12177" - sodipodi:docname="distance_along_s.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - inkscape:export-filename="distance_along_s.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title3699">RoadCoordianteSystem</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1" - inkscape:cx="305.5" - inkscape:cy="319" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="1912" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="layer5" - showguides="false" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <inkscape:path-effect - effect="offset" - id="path-effect4649" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="0" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="offset" - id="path-effect14996" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="3.1" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="offset" - id="path-effect14846" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="-2.3" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="offset" - id="path-effect14834" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="0" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="offset" - id="path-effect38844" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="tiling" - id="path-effect38774" - is_visible="true" - lpeversion="1" - unit="px" - seed="1;1" - lpesatellites="" - num_rows="3" - num_cols="3" - gapx="0" - gapy="0" - offset="0" - offset_type="false" - scale="0" - rotate="0" - mirrorrowsx="false" - mirrorrowsy="false" - mirrorcolsx="false" - mirrorcolsy="false" - mirrortrans="false" - shrink_interp="false" - split_items="false" - link_styles="false" - interpolate_scalex="false" - interpolate_scaley="true" - interpolate_rotatex="false" - interpolate_rotatey="true" - random_scale="false" - random_rotate="false" - random_gap_y="false" - random_gap_x="false" - transformorigin="" /> - <inkscape:path-effect - effect="offset" - id="path-effect38772" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="0" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38550" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38546" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38542" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38538" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32727" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32707" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32687" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32667" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <linearGradient - inkscape:collect="always" - id="linearGradient30868"> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="0" - id="stop30858" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.1" - id="stop30860" /> - <stop - style="stop-color:#20ff00;stop-opacity:1;" - offset="0.5" - id="stop30862" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.89999998" - id="stop30864" /> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="1" - id="stop30866" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient27324"> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="0" - id="stop27314" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.1" - id="stop27316" /> - <stop - style="stop-color:#808080;stop-opacity:1;" - offset="0.5" - id="stop27318" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.89999998" - id="stop27320" /> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="1" - id="stop27322" /> - </linearGradient> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient21572" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160" - x="-0.0121263" - y="-0.053139146" - width="1.0242526" - height="1.1062783"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-2" - x="-0.013209493" - y="-0.057885848" - width="1.026419" - height="1.1157717"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-8" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30536" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30628" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-2-0" - x="-0.013209493" - y="-0.057885848" - width="1.026419" - height="1.1157717"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-8-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-7" - x="-0.0121263" - y="-0.053139146" - width="1.0242526" - height="1.1062783"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-5" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30782" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30784" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30786" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient30868" - id="radialGradient30820" - cx="-9.1586399" - cy="32.64447" - fx="-9.1586399" - fy="32.64447" - r="0.83166844" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.760006,0,0,1.760006,58.978781,309.86525)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient30868" - id="radialGradient38552" - gradientUnits="userSpaceOnUse" - cx="-9.1586399" - cy="32.64447" - fx="-9.1586399" - fy="32.64447" - r="0.83166844" - gradientTransform="matrix(1.760006,-1.7521317e-8,1.7521317e-8,1.760006,-11.358418,290.36653)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient38554" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient38556" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient38558" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient38560" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient38562" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient38564" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <inkscape:path-effect - effect="offset" - id="path-effect38844-6" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <marker - style="overflow:visible" - id="Arrow3" - refX="0" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="Arrow3" - markerWidth="4.2071066" - markerHeight="6.9999995" - viewBox="0 0 4.2071068 7" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" - d="M 3,-3 0,0 3,3" - id="arrow3" - transform="rotate(180,0.125,0)" - sodipodi:nodetypes="ccc" /> - </marker> - <marker - style="overflow:visible" - id="Arrow3-3" - refX="0" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="Arrow3" - markerWidth="4.2071066" - markerHeight="6.9999995" - viewBox="0 0 4.2071068 7" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" - d="M 3,-3 0,0 3,3" - id="arrow3-6" - transform="rotate(180,0.125,0)" - sodipodi:nodetypes="ccc" /> - </marker> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,32.004935,-261.25667)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> - <rect - style="mix-blend-mode:normal;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.372058;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.863695, 0.431851;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="275.20782" - height="141.93102" - x="-41.689716" - y="290.84229" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline" - transform="translate(23.074149,-268.19121)"> - <g - id="g42304" - transform="matrix(1.828408,0,0,1.760006,16.5405,313.1412)" - style="stroke-width:0.981117"> - <path - id="path39516" - style="color:#000000;opacity:1;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.981117;stroke-opacity:1;-inkscape-stroke:none" - d="M 92.907256,-25.137274 C 63.764604,-4.8227696 24.24101,-3.3459035 -21.493059,-5.2482334 V 45.003144 C 16.014542,46.664281 56.00228,46.813766 92.907256,31.616668 v -56.753942" - sodipodi:nodetypes="ccccc" /> - <path - id="path38770" - style="color:#000000;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.981117;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none" - d="m -21.469878,45.003144 c 37.5,1.661137 77.479636,1.810622 114.377134,-13.386476 m 0,-56.753942 C 63.770509,-4.8227696 24.254924,-3.3459035 -21.469878,-5.2482334" - sodipodi:nodetypes="cccc" /> - </g> - <path - style="color:#000000;font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.535587;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-start:url(#Arrow3);stop-color:#000000;stop-opacity:1" - d="M 178.24948,324.40142 C 113.41223,348.77983 44.598602,350.50404 -13.624638,348.41241" - id="path4645" - sodipodi:nodetypes="cc" - inkscape:path-effect="#path-effect4649" - inkscape:original-d="M 178.24948,324.40142 C 113.41223,348.77983 44.598602,350.50404 -13.624638,348.41241" - transform="translate(5.6118481e-8,-1.2250459e-5)" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - transform="translate(23.074149,-268.19121)"> - <g - id="g38512" - inkscape:label="Red Car" - style="display:inline;opacity:0.5" - transform="matrix(1.5627205,-0.80964548,0.80964548,1.5627205,124.94384,261.95442)" - inkscape:transform-center-x="-13.281334" - inkscape:transform-center-y="-7.1571686"> - <g - id="g38510" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="path38490" - style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="path38492" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="path38494" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="path38496" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38498" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38500" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path38502" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38504" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="path38506" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path38508" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="Axles" - transform="translate(23.074149,-268.19121)"> - <g - id="g38522" - transform="matrix(1.5627205,-0.80964548,0.80964548,1.5627205,123.25559,262.80859)" - style="display:inline;opacity:0.75" - inkscape:label="Rear"> - <g - id="g38520" - style="display:inline;opacity:0.8" - transform="translate(1.0557002)" - inkscape:label="Axle"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient38560);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" - id="rect38514" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient38562);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" - id="rect38516" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" - inkscape:path-effect="#path-effect38538" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient38564);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" - id="rect38518" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" - inkscape:path-effect="#path-effect38542" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - </g> - </g> - <g - id="g38532" - style="display:inline;opacity:0.25" - transform="matrix(1.5627205,-0.80964548,0.80964548,1.5627205,154.05,246.85401)" - inkscape:label="Front"> - <g - id="g38530" - inkscape:label="Axle"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient38554);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" - id="rect38524" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient38556);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" - id="rect38526" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - inkscape:path-effect="#path-effect38546" - sodipodi:type="rect" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient38558);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" - id="rect38528" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - inkscape:path-effect="#path-effect38550" - sodipodi:type="rect" /> - </g> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="CoorindateSystem" - transform="translate(23.074149,-268.19121)"> - <path - id="rect17879" - style="vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.334743;stroke-dasharray:1.33897, 0.334743;marker-start:url(#Arrow3-3);paint-order:stroke fill markers;stop-color:#000000" - d="m -22.75489,303.90439 12.8736119,1.08219 -2.9747609,87.38237 -9.898851,-0.0218 z" - sodipodi:nodetypes="ccccc" /> - <g - id="g39799" - inkscape:transform-center-x="-15.321424" - inkscape:transform-center-y="1.7195111" - transform="matrix(1.755154,0.13059724,-0.13059724,1.755154,38.015724,313.18659)"> - <g - id="g10990" - inkscape:label="Green Car" - style="display:inline;opacity:0.5"> - <g - id="g3439" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect5329-3" - style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - <g - id="g32615" - transform="translate(-1.2175706)" - style="display:inline;opacity:0.75" - inkscape:label="Rear"> - <g - id="g30620-9" - style="display:inline;opacity:0.8" - transform="translate(1.0557002)" - inkscape:label="Axle"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30782);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" - id="rect21541-05-0" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30784);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" - id="rect21541-06" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" - inkscape:path-effect="#path-effect32667" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient30786);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" - id="rect21541-0-1" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" - inkscape:path-effect="#path-effect32727" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - </g> - </g> - <g - id="g30620" - style="display:inline;opacity:0.25" - transform="translate(18.488077)" - inkscape:label="Front"> - <g - id="g32809" - inkscape:label="Axle"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30536);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" - id="rect21541-05" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30628);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" - id="rect21541" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - inkscape:path-effect="#path-effect32687" - sodipodi:type="rect" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient21572);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" - id="rect21541-0" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - inkscape:path-effect="#path-effect32707" - sodipodi:type="rect" /> - </g> - </g> - </g> - <path - style="color:#000000;font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.535587;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-start:url(#Arrow3);stop-color:#000000;stop-opacity:1" - d="M 178.24948,324.40142 C 113.41223,348.77983 44.598602,350.50404 -13.624638,348.41241" - id="path54407" - sodipodi:nodetypes="cc" - inkscape:path-effect="#path-effect14834" - inkscape:original-d="M 178.24948,324.40142 C 113.41223,348.77983 44.598602,350.50404 -13.624638,348.41241" /> - <text - xml:space="preserve" - style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.77134" - x="25.600857" - y="374.44073" - id="text34235-7" - transform="rotate(-23.185944)"><tspan - sodipodi:role="line" - style="font-size:3.5427px;stroke-width:1.77134" - x="25.600857" - y="374.44073" - id="tspan34237-0">s (m)</tspan></text> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.67794, 0.669487, 0.334743, 0.669487;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 69.266788,373.76341 -53.842809,-4.30004 54.013811,0.21679" - id="path27075" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-end:url(#Arrow3);paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 68.487079,370.48577 c -0.0032,0.88944 -0.03634,1.77843 -0.0994,2.66506" - id="path26984" /> - <text - xml:space="preserve" - style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;display:inline;fill:#000000;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - x="-319.26474" - y="-2.8220594" - id="text34235" - transform="rotate(-88.266979)"><tspan - sodipodi:role="line" - style="font-size:3.5427px;fill:#000000;stroke-width:0;stroke-dasharray:none" - x="-319.26474" - y="-2.8220594" - id="tspan34237">t (m)</tspan></text> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33897, 0.334743;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 139.11033,336.43043 -3.62251,-14.82047 c -47.549529,11.7143 -97.250139,13.34747 -146.29475,11.63782" - id="path54270" - sodipodi:nodetypes="ccc" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.535587;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-start:url(#Arrow3);stop-color:#000000;stop-opacity:1" - d="m -9.8812781,304.98658 -2.9747609,87.38237" - id="path14689" - sodipodi:nodetypes="cc" /> - <path - id="path14703" - style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33897, 0.334743;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="m -11.585363,369.05496 c 8.7850186,0.28021 17.7895645,0.35876 27.009342,0.40841 l 0.188801,-20.41396" - sodipodi:nodetypes="ccc" /> - <text - xml:space="preserve" - style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" - x="-17.745304" - y="334.29028" - id="text16885"><tspan - sodipodi:role="line" - id="tspan16883" - style="font-size:3.5427px;stroke-width:1.77134" - x="-17.745304" - y="334.29028">1.3</tspan></text> - <text - xml:space="preserve" - style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" - x="-18.509495" - y="346.44919" - id="text16885-4"><tspan - sodipodi:role="line" - id="tspan16883-6" - style="font-size:3.5427px;stroke-width:1.77134" - x="-18.509495" - y="346.44919">0/0</tspan></text> - <text - xml:space="preserve" - style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" - x="-20.468918" - y="370.33276" - id="text16885-5"><tspan - sodipodi:role="line" - id="tspan16883-1" - style="font-size:3.5427px;stroke-width:1.77134" - x="-20.468918" - y="370.33276">-1.8</tspan></text> - <text - xml:space="preserve" - style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" - x="12.706842" - y="347.44189" - id="text19030"><tspan - sodipodi:role="line" - id="tspan19028" - style="font-size:3.5427px;stroke-width:1.77134" - x="12.706842" - y="347.44189">2.3</tspan></text> - <text - xml:space="preserve" - style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" - x="69.964035" - y="372.96805" - id="text19030-5"><tspan - sodipodi:role="line" - id="tspan19028-8" - style="font-size:3.5427px;stroke-width:1.77134" - x="69.964035" - y="372.96805">-4°</tspan></text> - <text - xml:space="preserve" - style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" - x="178.98154" - y="306.21796" - id="text19030-5-9"><tspan - sodipodi:role="line" - id="tspan19028-8-9" - style="font-size:3.5427px;stroke-width:1.77134" - x="178.98154" - y="306.21796">15°</tspan></text> - <text - xml:space="preserve" - style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" - x="52.531681" - y="364.62561" - id="text20750" - transform="rotate(-13.567094)"><tspan - sodipodi:role="line" - id="tspan20748" - style="font-size:3.5427px;stroke-width:1.77134" - x="52.531681" - y="364.62561">12.9</tspan></text> - <text - xml:space="preserve" - style="font-size:10.7354px;line-height:1.25;font-family:sans-serif;stroke-width:1.00644" - x="28.333069" - y="29.847149" - id="text24856"><tspan - sodipodi:role="line" - id="tspan24854" - style="stroke-width:1.00644" - x="28.333069" - y="29.847149" /></text> - <path - style="opacity:1;vector-effect:none;fill:none;stroke:#000000;stroke-width:0.334743;stroke-dasharray:2.67794, 0.669487, 0.334743, 0.669487;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 183.10228,309.97133 -47.61446,11.63863 43.51212,-22.56744" - id="path26796" /> - <path - style="opacity:1;vector-effect:none;fill:none;stroke:#000000;stroke-width:0.334743;stroke-dasharray:none;marker-start:url(#Arrow3);paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 176.25957,301.52537 c 1.41534,2.77372 2.49951,5.70941 3.22944,8.74463" - id="path26691" /> - <circle - style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820);fill-opacity:1;stroke:#000000;stroke-width:0.133897;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - id="path30810" - cx="42.85952" - cy="367.31973" - r="1.396793" - inkscape:label="Reference Point" - transform="rotate(4.2554137)" /> - <circle - style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient38552);fill-opacity:1;stroke:#000000;stroke-width:0.133897;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - id="circle38534" - cx="-27.47769" - cy="347.82101" - r="1.396793" - inkscape:label="Reference Point" - transform="rotate(-27.388673)" /> - </g> - <metadata - id="metadata3370"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>RoadCoordianteSystem</dc:title> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="128.87199mm" + viewBox="1 1 208 127.64465" + version="1.1" + id="svg12177" + sodipodi:docname="distance_along_s.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:export-filename="distance_along_s.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title3699">RoadCoordianteSystem</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1" + inkscape:cx="305.5" + inkscape:cy="319" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="1912" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer5" + showguides="false" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <inkscape:path-effect + effect="offset" + id="path-effect4649" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="0" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="offset" + id="path-effect14996" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="3.1" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="offset" + id="path-effect14846" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="-2.3" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="offset" + id="path-effect14834" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="0" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="offset" + id="path-effect38844" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="tiling" + id="path-effect38774" + is_visible="true" + lpeversion="1" + unit="px" + seed="1;1" + lpesatellites="" + num_rows="3" + num_cols="3" + gapx="0" + gapy="0" + offset="0" + offset_type="false" + scale="0" + rotate="0" + mirrorrowsx="false" + mirrorrowsy="false" + mirrorcolsx="false" + mirrorcolsy="false" + mirrortrans="false" + shrink_interp="false" + split_items="false" + link_styles="false" + interpolate_scalex="false" + interpolate_scaley="true" + interpolate_rotatex="false" + interpolate_rotatey="true" + random_scale="false" + random_rotate="false" + random_gap_y="false" + random_gap_x="false" + transformorigin="" /> + <inkscape:path-effect + effect="offset" + id="path-effect38772" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="0" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38550" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38546" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38542" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38538" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32727" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32707" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32687" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32667" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <linearGradient + inkscape:collect="always" + id="linearGradient30868"> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="0" + id="stop30858" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.1" + id="stop30860" /> + <stop + style="stop-color:#20ff00;stop-opacity:1;" + offset="0.5" + id="stop30862" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.89999998" + id="stop30864" /> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="1" + id="stop30866" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient27324"> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="0" + id="stop27314" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.1" + id="stop27316" /> + <stop + style="stop-color:#808080;stop-opacity:1;" + offset="0.5" + id="stop27318" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.89999998" + id="stop27320" /> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="1" + id="stop27322" /> + </linearGradient> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient21572" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160" + x="-0.0121263" + y="-0.053139146" + width="1.0242526" + height="1.1062783"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-2" + x="-0.013209493" + y="-0.057885848" + width="1.026419" + height="1.1157717"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-8" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30536" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30628" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-2-0" + x="-0.013209493" + y="-0.057885848" + width="1.026419" + height="1.1157717"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-8-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-7" + x="-0.0121263" + y="-0.053139146" + width="1.0242526" + height="1.1062783"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-5" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30782" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30784" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30786" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient30868" + id="radialGradient30820" + cx="-9.1586399" + cy="32.64447" + fx="-9.1586399" + fy="32.64447" + r="0.83166844" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.760006,0,0,1.760006,58.978781,309.86525)" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient30868" + id="radialGradient38552" + gradientUnits="userSpaceOnUse" + cx="-9.1586399" + cy="32.64447" + fx="-9.1586399" + fy="32.64447" + r="0.83166844" + gradientTransform="matrix(1.760006,-1.7521317e-8,1.7521317e-8,1.760006,-11.358418,290.36653)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient38554" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient38556" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient38558" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient38560" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient38562" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient38564" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <inkscape:path-effect + effect="offset" + id="path-effect38844-6" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <marker + style="overflow:visible" + id="Arrow3" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Arrow3" + markerWidth="4.2071066" + markerHeight="6.9999995" + viewBox="0 0 4.2071068 7" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" + d="M 3,-3 0,0 3,3" + id="arrow3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" /> + </marker> + <marker + style="overflow:visible" + id="Arrow3-3" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Arrow3" + markerWidth="4.2071066" + markerHeight="6.9999995" + viewBox="0 0 4.2071068 7" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" + d="M 3,-3 0,0 3,3" + id="arrow3-6" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" /> + </marker> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,32.004935,-261.25667)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> + <rect + style="mix-blend-mode:normal;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.372058;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.863695, 0.431851;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="275.20782" + height="141.93102" + x="-41.689716" + y="290.84229" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline" + transform="translate(23.074149,-268.19121)"> + <g + id="g42304" + transform="matrix(1.828408,0,0,1.760006,16.5405,313.1412)" + style="stroke-width:0.981117"> + <path + id="path39516" + style="color:#000000;opacity:1;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.981117;stroke-opacity:1;-inkscape-stroke:none" + d="M 92.907256,-25.137274 C 63.764604,-4.8227696 24.24101,-3.3459035 -21.493059,-5.2482334 V 45.003144 C 16.014542,46.664281 56.00228,46.813766 92.907256,31.616668 v -56.753942" + sodipodi:nodetypes="ccccc" /> + <path + id="path38770" + style="color:#000000;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.981117;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none" + d="m -21.469878,45.003144 c 37.5,1.661137 77.479636,1.810622 114.377134,-13.386476 m 0,-56.753942 C 63.770509,-4.8227696 24.254924,-3.3459035 -21.469878,-5.2482334" + sodipodi:nodetypes="cccc" /> + </g> + <path + style="color:#000000;font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.535587;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-start:url(#Arrow3);stop-color:#000000;stop-opacity:1" + d="M 178.24948,324.40142 C 113.41223,348.77983 44.598602,350.50404 -13.624638,348.41241" + id="path4645" + sodipodi:nodetypes="cc" + inkscape:path-effect="#path-effect4649" + inkscape:original-d="M 178.24948,324.40142 C 113.41223,348.77983 44.598602,350.50404 -13.624638,348.41241" + transform="translate(5.6118481e-8,-1.2250459e-5)" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + transform="translate(23.074149,-268.19121)"> + <g + id="g38512" + inkscape:label="Red Car" + style="display:inline;opacity:0.5" + transform="matrix(1.5627205,-0.80964548,0.80964548,1.5627205,124.94384,261.95442)" + inkscape:transform-center-x="-13.281334" + inkscape:transform-center-y="-7.1571686"> + <g + id="g38510" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="path38490" + style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="path38492" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="path38494" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="path38496" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38498" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38500" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path38502" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38504" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="path38506" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path38508" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="Axles" + transform="translate(23.074149,-268.19121)"> + <g + id="g38522" + transform="matrix(1.5627205,-0.80964548,0.80964548,1.5627205,123.25559,262.80859)" + style="display:inline;opacity:0.75" + inkscape:label="Rear"> + <g + id="g38520" + style="display:inline;opacity:0.8" + transform="translate(1.0557002)" + inkscape:label="Axle"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient38560);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" + id="rect38514" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient38562);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" + id="rect38516" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" + inkscape:path-effect="#path-effect38538" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient38564);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" + id="rect38518" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" + inkscape:path-effect="#path-effect38542" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + </g> + </g> + <g + id="g38532" + style="display:inline;opacity:0.25" + transform="matrix(1.5627205,-0.80964548,0.80964548,1.5627205,154.05,246.85401)" + inkscape:label="Front"> + <g + id="g38530" + inkscape:label="Axle"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient38554);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" + id="rect38524" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient38556);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" + id="rect38526" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + inkscape:path-effect="#path-effect38546" + sodipodi:type="rect" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient38558);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" + id="rect38528" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + inkscape:path-effect="#path-effect38550" + sodipodi:type="rect" /> + </g> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="CoorindateSystem" + transform="translate(23.074149,-268.19121)"> + <path + id="rect17879" + style="vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.334743;stroke-dasharray:1.33897, 0.334743;marker-start:url(#Arrow3-3);paint-order:stroke fill markers;stop-color:#000000" + d="m -22.75489,303.90439 12.8736119,1.08219 -2.9747609,87.38237 -9.898851,-0.0218 z" + sodipodi:nodetypes="ccccc" /> + <g + id="g39799" + inkscape:transform-center-x="-15.321424" + inkscape:transform-center-y="1.7195111" + transform="matrix(1.755154,0.13059724,-0.13059724,1.755154,38.015724,313.18659)"> + <g + id="g10990" + inkscape:label="Green Car" + style="display:inline;opacity:0.5"> + <g + id="g3439" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect5329-3" + style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + <g + id="g32615" + transform="translate(-1.2175706)" + style="display:inline;opacity:0.75" + inkscape:label="Rear"> + <g + id="g30620-9" + style="display:inline;opacity:0.8" + transform="translate(1.0557002)" + inkscape:label="Axle"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30782);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" + id="rect21541-05-0" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30784);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" + id="rect21541-06" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" + inkscape:path-effect="#path-effect32667" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient30786);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" + id="rect21541-0-1" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" + inkscape:path-effect="#path-effect32727" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + </g> + </g> + <g + id="g30620" + style="display:inline;opacity:0.25" + transform="translate(18.488077)" + inkscape:label="Front"> + <g + id="g32809" + inkscape:label="Axle"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30536);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" + id="rect21541-05" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30628);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" + id="rect21541" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + inkscape:path-effect="#path-effect32687" + sodipodi:type="rect" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient21572);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" + id="rect21541-0" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + inkscape:path-effect="#path-effect32707" + sodipodi:type="rect" /> + </g> + </g> + </g> + <path + style="color:#000000;font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.535587;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-start:url(#Arrow3);stop-color:#000000;stop-opacity:1" + d="M 178.24948,324.40142 C 113.41223,348.77983 44.598602,350.50404 -13.624638,348.41241" + id="path54407" + sodipodi:nodetypes="cc" + inkscape:path-effect="#path-effect14834" + inkscape:original-d="M 178.24948,324.40142 C 113.41223,348.77983 44.598602,350.50404 -13.624638,348.41241" /> + <text + xml:space="preserve" + style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.77134" + x="25.600857" + y="374.44073" + id="text34235-7" + transform="rotate(-23.185944)"><tspan + sodipodi:role="line" + style="font-size:3.5427px;stroke-width:1.77134" + x="25.600857" + y="374.44073" + id="tspan34237-0">s (m)</tspan></text> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.67794, 0.669487, 0.334743, 0.669487;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 69.266788,373.76341 -53.842809,-4.30004 54.013811,0.21679" + id="path27075" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-end:url(#Arrow3);paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 68.487079,370.48577 c -0.0032,0.88944 -0.03634,1.77843 -0.0994,2.66506" + id="path26984" /> + <text + xml:space="preserve" + style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;display:inline;fill:#000000;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + x="-319.26474" + y="-2.8220594" + id="text34235" + transform="rotate(-88.266979)"><tspan + sodipodi:role="line" + style="font-size:3.5427px;fill:#000000;stroke-width:0;stroke-dasharray:none" + x="-319.26474" + y="-2.8220594" + id="tspan34237">t (m)</tspan></text> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33897, 0.334743;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 139.11033,336.43043 -3.62251,-14.82047 c -47.549529,11.7143 -97.250139,13.34747 -146.29475,11.63782" + id="path54270" + sodipodi:nodetypes="ccc" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.535587;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;marker-start:url(#Arrow3);stop-color:#000000;stop-opacity:1" + d="m -9.8812781,304.98658 -2.9747609,87.38237" + id="path14689" + sodipodi:nodetypes="cc" /> + <path + id="path14703" + style="font-variation-settings:normal;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.334743;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.33897, 0.334743;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" + d="m -11.585363,369.05496 c 8.7850186,0.28021 17.7895645,0.35876 27.009342,0.40841 l 0.188801,-20.41396" + sodipodi:nodetypes="ccc" /> + <text + xml:space="preserve" + style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" + x="-17.745304" + y="334.29028" + id="text16885"><tspan + sodipodi:role="line" + id="tspan16883" + style="font-size:3.5427px;stroke-width:1.77134" + x="-17.745304" + y="334.29028">1.3</tspan></text> + <text + xml:space="preserve" + style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" + x="-18.509495" + y="346.44919" + id="text16885-4"><tspan + sodipodi:role="line" + id="tspan16883-6" + style="font-size:3.5427px;stroke-width:1.77134" + x="-18.509495" + y="346.44919">0/0</tspan></text> + <text + xml:space="preserve" + style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" + x="-20.468918" + y="370.33276" + id="text16885-5"><tspan + sodipodi:role="line" + id="tspan16883-1" + style="font-size:3.5427px;stroke-width:1.77134" + x="-20.468918" + y="370.33276">-1.8</tspan></text> + <text + xml:space="preserve" + style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" + x="12.706842" + y="347.44189" + id="text19030"><tspan + sodipodi:role="line" + id="tspan19028" + style="font-size:3.5427px;stroke-width:1.77134" + x="12.706842" + y="347.44189">2.3</tspan></text> + <text + xml:space="preserve" + style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" + x="69.964035" + y="372.96805" + id="text19030-5"><tspan + sodipodi:role="line" + id="tspan19028-8" + style="font-size:3.5427px;stroke-width:1.77134" + x="69.964035" + y="372.96805">-4°</tspan></text> + <text + xml:space="preserve" + style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" + x="178.98154" + y="306.21796" + id="text19030-5-9"><tspan + sodipodi:role="line" + id="tspan19028-8-9" + style="font-size:3.5427px;stroke-width:1.77134" + x="178.98154" + y="306.21796">15°</tspan></text> + <text + xml:space="preserve" + style="font-size:3.5427px;line-height:1.25;font-family:sans-serif;stroke-width:1.77134" + x="52.531681" + y="364.62561" + id="text20750" + transform="rotate(-13.567094)"><tspan + sodipodi:role="line" + id="tspan20748" + style="font-size:3.5427px;stroke-width:1.77134" + x="52.531681" + y="364.62561">12.9</tspan></text> + <text + xml:space="preserve" + style="font-size:10.7354px;line-height:1.25;font-family:sans-serif;stroke-width:1.00644" + x="28.333069" + y="29.847149" + id="text24856"><tspan + sodipodi:role="line" + id="tspan24854" + style="stroke-width:1.00644" + x="28.333069" + y="29.847149" /></text> + <path + style="opacity:1;vector-effect:none;fill:none;stroke:#000000;stroke-width:0.334743;stroke-dasharray:2.67794, 0.669487, 0.334743, 0.669487;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 183.10228,309.97133 -47.61446,11.63863 43.51212,-22.56744" + id="path26796" /> + <path + style="opacity:1;vector-effect:none;fill:none;stroke:#000000;stroke-width:0.334743;stroke-dasharray:none;marker-start:url(#Arrow3);paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 176.25957,301.52537 c 1.41534,2.77372 2.49951,5.70941 3.22944,8.74463" + id="path26691" /> + <circle + style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820);fill-opacity:1;stroke:#000000;stroke-width:0.133897;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + id="path30810" + cx="42.85952" + cy="367.31973" + r="1.396793" + inkscape:label="Reference Point" + transform="rotate(4.2554137)" /> + <circle + style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient38552);fill-opacity:1;stroke:#000000;stroke-width:0.133897;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + id="circle38534" + cx="-27.47769" + cy="347.82101" + r="1.396793" + inkscape:label="Reference Point" + transform="rotate(-27.388673)" /> + </g> + <metadata + id="metadata3370"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>RoadCoordianteSystem</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/SpeedLimitZoneBegin_274.1-20.svg b/content/html/_images/SpeedLimitZoneBegin_274.1-20.svg index b5b562fe845b4a3c77fc882086d463da66ab0fd2..a609ddebfecd2a2af1a0500a3d9780cc61c2f2fe 100644 --- a/content/html/_images/SpeedLimitZoneBegin_274.1-20.svg +++ b/content/html/_images/SpeedLimitZoneBegin_274.1-20.svg @@ -1,41 +1,41 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600 600" - height="600" - width="600" - xml:space="preserve" - version="1.1" - id="svg6495"><metadata - id="metadata6501"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs6499" /><g - transform="matrix(1.25,0,0,-1.25,0,600)" - id="g6503"><g - id="g6505"><path - id="path6507" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 32.414,0.473 c -17.633,0 -31.93,14.297 -31.93,31.941 l 0,415.172 c 0,17.633 14.297,31.93 31.93,31.93 l 415.172,0 c 17.644,0 31.941,-14.297 31.941,-31.93 l 0,-415.172 C 479.527,14.77 465.23,0.473 447.586,0.473" /><path - id="path6509" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 32.414,480 C 14.539,480 0,465.461 0,447.586 L 0,32.414 C 0,14.539 14.539,0 32.414,0 L 447.586,0 C 465.461,0 480,14.539 480,32.414 l 0,415.172 C 480,465.461 465.461,480 447.586,480 l -415.172,0 z m 0,-0.484 415.172,0 c 17.644,0 31.941,-14.297 31.941,-31.93 l 0,-415.172 C 479.527,14.77 465.23,0.473 447.586,0.473 l -415.172,0 c -17.633,0 -31.93,14.297 -31.93,31.941 l 0,415.172 c 0,17.633 14.297,31.93 31.93,31.93 z" /><path - id="path6511" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 32.414,471.535 c -13.219,0 -23.945,-10.73 -23.945,-23.949 l 0,-415.172 c 0,-13.23 10.726,-23.945 23.945,-23.945 l 415.172,0 c 13.23,0 23.945,10.715 23.945,23.945 l 0,415.172 c 0,13.219 -10.715,23.949 -23.945,23.949 l -415.172,0 z m 0,-11.976 415.172,0 c 6.613,0 11.973,-5.371 11.973,-11.973 l 0,-415.172 c 0,-6.613 -5.36,-11.984 -11.973,-11.984 l -415.172,0 c -6.613,0 -11.973,5.371 -11.973,11.984 l 0,415.172 c 0,6.602 5.36,11.973 11.973,11.973 z" /><path - id="path6513" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 240.008,437.461 c -83.953,0 -152.004,-68.047 -152.004,-152 0,-83.941 68.051,-152 152.004,-152 83.941,0 152,68.059 152,152 0,83.953 -68.059,152 -152,152 z m 0,-40 c 61.855,0 112,-50.145 112,-112 0,-61.856 -50.145,-112.004 -112,-112.004 -61.856,0 -112.004,50.148 -112.004,112.004 0,61.855 50.148,112 112.004,112 z" /><path - id="path6515" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 308.391,42.527 0,67.2 43.218,0 0,-9.59 -33.007,0 0,-19.207 28.207,0 0,-9 -28.207,0 0,-19.797 33.007,0 0,-9.606 -43.218,0 z m -65.989,0 0,67.2 9.602,0 30.601,-47.993 0,47.993 10.196,0 0,-67.2 -9.602,0 -30.59,48.008 0,-48.008 -10.207,0 z M 191.406,65.93 c 0,-7.618 6.168,-13.797 13.789,-13.797 7.633,0 13.801,6.179 13.801,13.797 l 0,20.406 c 0,7.609 -6.168,13.801 -13.801,13.801 -7.621,0 -13.789,-6.192 -13.789,-13.801 l 0,-20.406 z m -10.207,0 0,20.406 c 0,13.246 10.754,23.996 23.996,23.996 13.258,0 24.008,-10.75 24.008,-23.996 l 0,-20.406 c 0,-13.254 -10.75,-23.996 -24.008,-23.996 -13.242,0 -23.996,10.742 -23.996,23.996 z m -52.797,-23.403 0,8.407 30.602,49.796 -29.402,0 0,8.997 42.003,0 0,-7.789 -30.597,-49.805 30.597,0 0,-9.606" /><path - id="path6517" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 162.004,220.133 0,17.504 51.949,65.386 c 6.41,8.067 5.067,19.813 -3,26.223 -8.078,6.41 -19.824,5.066 -26.234,-3 -2.625,-3.301 -4.051,-7.402 -4.051,-11.613 l -18.664,0 c 0,20.613 16.715,37.328 37.324,37.328 20.625,0 37.34,-16.715 37.34,-37.328 0,-8.477 -2.879,-16.703 -8.176,-23.321 l -41.996,-52.515 50.172,0 0,-18.664" /><path - id="path6519" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600 600" + height="600" + width="600" + xml:space="preserve" + version="1.1" + id="svg6495"><metadata + id="metadata6501"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs6499" /><g + transform="matrix(1.25,0,0,-1.25,0,600)" + id="g6503"><g + id="g6505"><path + id="path6507" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 32.414,0.473 c -17.633,0 -31.93,14.297 -31.93,31.941 l 0,415.172 c 0,17.633 14.297,31.93 31.93,31.93 l 415.172,0 c 17.644,0 31.941,-14.297 31.941,-31.93 l 0,-415.172 C 479.527,14.77 465.23,0.473 447.586,0.473" /><path + id="path6509" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 32.414,480 C 14.539,480 0,465.461 0,447.586 L 0,32.414 C 0,14.539 14.539,0 32.414,0 L 447.586,0 C 465.461,0 480,14.539 480,32.414 l 0,415.172 C 480,465.461 465.461,480 447.586,480 l -415.172,0 z m 0,-0.484 415.172,0 c 17.644,0 31.941,-14.297 31.941,-31.93 l 0,-415.172 C 479.527,14.77 465.23,0.473 447.586,0.473 l -415.172,0 c -17.633,0 -31.93,14.297 -31.93,31.941 l 0,415.172 c 0,17.633 14.297,31.93 31.93,31.93 z" /><path + id="path6511" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 32.414,471.535 c -13.219,0 -23.945,-10.73 -23.945,-23.949 l 0,-415.172 c 0,-13.23 10.726,-23.945 23.945,-23.945 l 415.172,0 c 13.23,0 23.945,10.715 23.945,23.945 l 0,415.172 c 0,13.219 -10.715,23.949 -23.945,23.949 l -415.172,0 z m 0,-11.976 415.172,0 c 6.613,0 11.973,-5.371 11.973,-11.973 l 0,-415.172 c 0,-6.613 -5.36,-11.984 -11.973,-11.984 l -415.172,0 c -6.613,0 -11.973,5.371 -11.973,11.984 l 0,415.172 c 0,6.602 5.36,11.973 11.973,11.973 z" /><path + id="path6513" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 240.008,437.461 c -83.953,0 -152.004,-68.047 -152.004,-152 0,-83.941 68.051,-152 152.004,-152 83.941,0 152,68.059 152,152 0,83.953 -68.059,152 -152,152 z m 0,-40 c 61.855,0 112,-50.145 112,-112 0,-61.856 -50.145,-112.004 -112,-112.004 -61.856,0 -112.004,50.148 -112.004,112.004 0,61.855 50.148,112 112.004,112 z" /><path + id="path6515" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 308.391,42.527 0,67.2 43.218,0 0,-9.59 -33.007,0 0,-19.207 28.207,0 0,-9 -28.207,0 0,-19.797 33.007,0 0,-9.606 -43.218,0 z m -65.989,0 0,67.2 9.602,0 30.601,-47.993 0,47.993 10.196,0 0,-67.2 -9.602,0 -30.59,48.008 0,-48.008 -10.207,0 z M 191.406,65.93 c 0,-7.618 6.168,-13.797 13.789,-13.797 7.633,0 13.801,6.179 13.801,13.797 l 0,20.406 c 0,7.609 -6.168,13.801 -13.801,13.801 -7.621,0 -13.789,-6.192 -13.789,-13.801 l 0,-20.406 z m -10.207,0 0,20.406 c 0,13.246 10.754,23.996 23.996,23.996 13.258,0 24.008,-10.75 24.008,-23.996 l 0,-20.406 c 0,-13.254 -10.75,-23.996 -24.008,-23.996 -13.242,0 -23.996,10.742 -23.996,23.996 z m -52.797,-23.403 0,8.407 30.602,49.796 -29.402,0 0,8.997 42.003,0 0,-7.789 -30.597,-49.805 30.597,0 0,-9.606" /><path + id="path6517" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 162.004,220.133 0,17.504 51.949,65.386 c 6.41,8.067 5.067,19.813 -3,26.223 -8.078,6.41 -19.824,5.066 -26.234,-3 -2.625,-3.301 -4.051,-7.402 -4.051,-11.613 l -18.664,0 c 0,20.613 16.715,37.328 37.324,37.328 20.625,0 37.34,-16.715 37.34,-37.328 0,-8.477 -2.879,-16.703 -8.176,-23.321 l -41.996,-52.515 50.172,0 0,-18.664" /><path + id="path6519" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 269.336,256.297 c 0,-10.305 8.348,-18.66 18.676,-18.66 10.293,0 18.664,8.355 18.664,18.66 l 0,58.336 c 0,10.305 -8.371,18.664 -18.664,18.664 -10.328,0 -18.676,-8.359 -18.676,-18.664 l 0,-58.336 z m -18.66,0 0,58.336 c 0,20.613 16.715,37.328 37.336,37.328 20.609,0 37.312,-16.715 37.312,-37.328 l 0,-58.336 c 0,-20.621 -16.703,-37.336 -37.312,-37.336 -20.621,0 -37.336,16.715 -37.336,37.336" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/SpeedLimitZoneBegin_274.1.svg b/content/html/_images/SpeedLimitZoneBegin_274.1.svg index e8b96867a12bed6e3076cf5486957c301d03d1a9..a7e5620fe395615fd4fe80645be70d2d10d47aa6 100644 --- a/content/html/_images/SpeedLimitZoneBegin_274.1.svg +++ b/content/html/_images/SpeedLimitZoneBegin_274.1.svg @@ -1,50 +1,50 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600 600" - height="600" - width="600" - xml:space="preserve" - version="1.1" - id="svg6345"><metadata - id="metadata6351"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs6349"><clipPath - id="clipPath6363" - clipPathUnits="userSpaceOnUse"><path - id="path6365" - d="M 0,0 480,0 480,480 0,480 0,0 Z" /></clipPath></defs><g - transform="matrix(1.25,0,0,-1.25,0,600)" - id="g6353"><g - id="g6355"><g - id="g6357"><g - id="g6359"><g - clip-path="url(#clipPath6363)" - id="g6361"><g - id="g6367"><path - id="path6369" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 32.414,0.484 c -17.633,0 -31.93,14.297 -31.93,31.942 l 0,415.172 c 0,17.632 14.297,31.929 31.93,31.929 l 415.172,0 c 17.644,0 31.941,-14.297 31.941,-31.929 l 0,-415.172 c 0,-17.645 -14.297,-31.942 -31.941,-31.942" /><path - id="path6371" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 32.414,480.012 C 14.539,480.012 0,465.461 0,447.598 L 0,32.426 C 0,14.551 14.539,0 32.414,0 L 447.586,0 C 465.461,0 480,14.551 480,32.426 l 0,415.172 c 0,17.863 -14.539,32.414 -32.414,32.414 l -415.172,0 z m 0,-0.485 415.172,0 c 17.644,0 31.941,-14.297 31.941,-31.929 l 0,-415.172 c 0,-17.645 -14.297,-31.942 -31.941,-31.942 l -415.172,0 c -17.637,0 -31.93,14.297 -31.93,31.942 l 0,415.172 c 0,17.632 14.293,31.929 31.93,31.929 z" /></g></g></g></g><path - id="path6373" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 32.414,471.543 c -13.219,0 -23.949,-10.727 -23.949,-23.945 l 0,-415.172 c 0,-13.231 10.73,-23.961 23.949,-23.961 l 415.172,0 c 13.23,0 23.949,10.73 23.949,23.961 l 0,415.172 c 0,13.218 -10.719,23.945 -23.949,23.945 l -415.172,0 z m 0,-11.973 415.172,0 c 6.613,0 11.973,-5.371 11.973,-11.972 l 0,-415.172 c 0,-6.614 -5.36,-11.985 -11.973,-11.985 l -415.172,0 c -6.617,0 -11.973,5.371 -11.973,11.985 l 0,415.172 c 0,6.601 5.356,11.972 11.973,11.972 z" /><path - id="path6375" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 240.008,437.473 c -83.953,0 -152.004,-68.047 -152.004,-152 0,-83.942 68.051,-152 152.004,-152 83.937,0 152,68.058 152,152 0,83.953 -68.063,152 -152,152 z m 0,-40 c 61.851,0 112,-50.145 112,-112 0,-61.856 -50.149,-112.004 -112,-112.004 -61.856,0 -112.004,50.148 -112.004,112.004 0,61.855 50.148,112 112.004,112 z" /><path - id="path6377" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 153.949,252.801 18.942,0 c 2.574,-10.641 13.304,-17.184 23.945,-14.598 8.902,2.152 15.168,10.113 15.168,19.27 l 0,2.332 c 0,10.961 -8.875,19.836 -19.836,19.836 l -8.164,0 0,16.328 8.164,0 c 10.305,0 18.664,8.359 18.664,18.676 0,10.304 -8.359,18.664 -18.664,18.664 -8.961,0 -16.656,-6.375 -18.336,-15.168 l -18.832,0 c 1.934,20.527 20.137,35.597 40.664,33.671 19.184,-1.812 33.844,-17.91 33.844,-37.167 0,-10.629 -5.18,-20.598 -13.863,-26.719 9.386,-6.278 15.023,-16.824 15.023,-28.121 l 0,-2.332 c 0,-21.254 -17.234,-38.5 -38.5,-38.5 -19.461,0 -35.863,14.515 -38.219,33.828" /><path - id="path6379" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 267.992,256.309 c 0,-10.317 8.36,-18.661 18.676,-18.661 10.305,0 18.664,8.344 18.664,18.661 l 0,58.336 c 0,10.304 -8.359,18.664 -18.664,18.664 -10.316,0 -18.676,-8.36 -18.676,-18.664 l 0,-58.336 z m -18.66,0 0,58.336 c 0,20.613 16.715,37.328 37.336,37.328 20.625,0 37.34,-16.715 37.34,-37.328 l 0,-58.336 c 0,-20.621 -16.715,-37.336 -37.34,-37.336 -20.621,0 -37.336,16.715 -37.336,37.336" /><path - id="path6381" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600 600" + height="600" + width="600" + xml:space="preserve" + version="1.1" + id="svg6345"><metadata + id="metadata6351"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs6349"><clipPath + id="clipPath6363" + clipPathUnits="userSpaceOnUse"><path + id="path6365" + d="M 0,0 480,0 480,480 0,480 0,0 Z" /></clipPath></defs><g + transform="matrix(1.25,0,0,-1.25,0,600)" + id="g6353"><g + id="g6355"><g + id="g6357"><g + id="g6359"><g + clip-path="url(#clipPath6363)" + id="g6361"><g + id="g6367"><path + id="path6369" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 32.414,0.484 c -17.633,0 -31.93,14.297 -31.93,31.942 l 0,415.172 c 0,17.632 14.297,31.929 31.93,31.929 l 415.172,0 c 17.644,0 31.941,-14.297 31.941,-31.929 l 0,-415.172 c 0,-17.645 -14.297,-31.942 -31.941,-31.942" /><path + id="path6371" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 32.414,480.012 C 14.539,480.012 0,465.461 0,447.598 L 0,32.426 C 0,14.551 14.539,0 32.414,0 L 447.586,0 C 465.461,0 480,14.551 480,32.426 l 0,415.172 c 0,17.863 -14.539,32.414 -32.414,32.414 l -415.172,0 z m 0,-0.485 415.172,0 c 17.644,0 31.941,-14.297 31.941,-31.929 l 0,-415.172 c 0,-17.645 -14.297,-31.942 -31.941,-31.942 l -415.172,0 c -17.637,0 -31.93,14.297 -31.93,31.942 l 0,415.172 c 0,17.632 14.293,31.929 31.93,31.929 z" /></g></g></g></g><path + id="path6373" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 32.414,471.543 c -13.219,0 -23.949,-10.727 -23.949,-23.945 l 0,-415.172 c 0,-13.231 10.73,-23.961 23.949,-23.961 l 415.172,0 c 13.23,0 23.949,10.73 23.949,23.961 l 0,415.172 c 0,13.218 -10.719,23.945 -23.949,23.945 l -415.172,0 z m 0,-11.973 415.172,0 c 6.613,0 11.973,-5.371 11.973,-11.972 l 0,-415.172 c 0,-6.614 -5.36,-11.985 -11.973,-11.985 l -415.172,0 c -6.617,0 -11.973,5.371 -11.973,11.985 l 0,415.172 c 0,6.601 5.356,11.972 11.973,11.972 z" /><path + id="path6375" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 240.008,437.473 c -83.953,0 -152.004,-68.047 -152.004,-152 0,-83.942 68.051,-152 152.004,-152 83.937,0 152,68.058 152,152 0,83.953 -68.063,152 -152,152 z m 0,-40 c 61.851,0 112,-50.145 112,-112 0,-61.856 -50.149,-112.004 -112,-112.004 -61.856,0 -112.004,50.148 -112.004,112.004 0,61.855 50.148,112 112.004,112 z" /><path + id="path6377" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 153.949,252.801 18.942,0 c 2.574,-10.641 13.304,-17.184 23.945,-14.598 8.902,2.152 15.168,10.113 15.168,19.27 l 0,2.332 c 0,10.961 -8.875,19.836 -19.836,19.836 l -8.164,0 0,16.328 8.164,0 c 10.305,0 18.664,8.359 18.664,18.676 0,10.304 -8.359,18.664 -18.664,18.664 -8.961,0 -16.656,-6.375 -18.336,-15.168 l -18.832,0 c 1.934,20.527 20.137,35.597 40.664,33.671 19.184,-1.812 33.844,-17.91 33.844,-37.167 0,-10.629 -5.18,-20.598 -13.863,-26.719 9.386,-6.278 15.023,-16.824 15.023,-28.121 l 0,-2.332 c 0,-21.254 -17.234,-38.5 -38.5,-38.5 -19.461,0 -35.863,14.515 -38.219,33.828" /><path + id="path6379" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 267.992,256.309 c 0,-10.317 8.36,-18.661 18.676,-18.661 10.305,0 18.664,8.344 18.664,18.661 l 0,58.336 c 0,10.304 -8.359,18.664 -18.664,18.664 -10.316,0 -18.676,-8.36 -18.676,-18.664 l 0,-58.336 z m -18.66,0 0,58.336 c 0,20.613 16.715,37.328 37.336,37.328 20.625,0 37.34,-16.715 37.34,-37.328 l 0,-58.336 c 0,-20.621 -16.715,-37.336 -37.34,-37.336 -20.621,0 -37.336,16.715 -37.336,37.336" /><path + id="path6381" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 308.391,42.539 0,67.199 43.218,0 0,-9.59 -33.007,0 0,-19.207 28.203,0 0,-9 -28.203,0 0,-19.8 33.007,0 0,-9.602 -43.218,0 z m -65.993,0 0,67.199 9.606,0 30.601,-47.992 0,47.992 10.196,0 0,-67.199 -9.602,0 -30.59,48.004 0,-48.004 -10.211,0 z m -50.992,23.402 c 0,-7.617 6.168,-13.8 13.789,-13.8 7.633,0 13.801,6.183 13.801,13.8 l 0,20.407 c 0,7.609 -6.168,13.8 -13.801,13.8 -7.621,0 -13.789,-6.191 -13.789,-13.8 l 0,-20.407 z m -10.207,0 0,20.407 c 0,13.246 10.75,23.996 23.996,23.996 13.258,0 24.008,-10.75 24.008,-23.996 l 0,-20.407 c 0,-13.253 -10.75,-23.996 -24.008,-23.996 -13.246,0 -23.996,10.743 -23.996,23.996 z m -52.797,-23.402 0,8.395 30.602,49.808 -29.402,0 0,8.996 42.003,0 0,-7.789 -30.601,-49.808 30.601,0 0,-9.602" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/SpeedLimitZoneEnd_274.2-20.svg b/content/html/_images/SpeedLimitZoneEnd_274.2-20.svg index d84da95aa65940ea89bd8a585aae7e81e4f59551..f55239e571dd1e8ec4e81717b3bdd1f525e3417d 100644 --- a/content/html/_images/SpeedLimitZoneEnd_274.2-20.svg +++ b/content/html/_images/SpeedLimitZoneEnd_274.2-20.svg @@ -1,53 +1,53 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600 600" - height="600" - width="600" - xml:space="preserve" - version="1.1" - id="svg6679"><metadata - id="metadata6685"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs6683" /><g - transform="matrix(1.25,0,0,-1.25,0,600)" - id="g6687"><g - id="g6689"><path - id="path6691" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 32.414,0.473 c -17.633,0 -31.93,14.297 -31.93,31.941 l 0,415.172 c 0,17.633 14.297,31.93 31.93,31.93 l 415.172,0 c 17.644,0 31.941,-14.297 31.941,-31.93 l 0,-415.172 C 479.527,14.77 465.23,0.473 447.586,0.473" /><path - id="path6693" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 32.414,480 C 14.539,480 0,465.461 0,447.586 L 0,32.414 C 0,14.539 14.539,0 32.414,0 L 447.586,0 C 465.461,0 480,14.539 480,32.414 l 0,415.172 C 480,465.461 465.461,480 447.586,480 l -415.172,0 z m 0,-0.484 415.172,0 c 17.644,0 31.941,-14.293 31.941,-31.93 l 0,-415.172 c 0,-17.648 -14.297,-31.941 -31.941,-31.941 l -415.172,0 c -17.633,0 -31.93,14.293 -31.93,31.941 l 0,415.172 c 0,17.637 14.297,31.93 31.93,31.93 z" /><path - id="path6695" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 32.004,471.992 c -13.258,0 -23.996,-10.738 -23.996,-23.996 l 0,-415.992 c 0,-13.27 10.738,-24.012 23.996,-24.012 l 415.992,0 c 13.266,0 24.008,10.742 24.008,24.012 l 0,415.992 c 0,13.258 -10.742,23.996 -24.008,23.996 l -415.992,0 z m 0,-11.996 374.543,0 -386.543,-386.543 0,374.543 c 0,6.629 5.371,12 12,12 z" /><path - id="path6697" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 73.453,19.992 386.555,386.551 0,-374.539 c 0,-6.641 -5.383,-12.012 -12.012,-12.012" /><path - id="path6699" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 61.578,19.992 -11.879,0 410.309,410.309 0,-11.891" /><path - id="path6701" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 37.82,19.992 -5.816,0 c -1.719,0 -3.422,0.363 -4.984,1.09 l 431.898,431.895 c 0.715,-1.571 1.09,-3.266 1.09,-4.981 l 0,-5.82" /><path - id="path6703" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 20.004,37.809 422.187,422.183 5.805,0 c 1.719,0 3.422,-0.375 4.984,-1.074 L 21.082,27.008 c -0.715,1.574 -1.078,3.277 -1.078,4.996" /><path - id="path6705" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 20.004,49.699 0,11.863 398.418,398.43 11.879,0" /><path - id="path6707" - style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 308.395,42.527 0,67.2 43.214,0 0,-9.59 -33.007,0 0,-19.207 28.207,0 0,-9 -28.207,0 0,-19.801 33.007,0 0,-9.602 -43.214,0 z m -65.993,0 0,67.2 9.602,0 30.601,-47.993 0,47.993 10.196,0 0,-67.2 -9.602,0 -30.59,48.004 0,-48.004 -10.207,0 z M 191.406,65.93 c 0,-7.618 6.168,-13.801 13.789,-13.801 7.633,0 13.801,6.183 13.801,13.801 l 0,20.406 c 0,7.605 -6.168,13.801 -13.801,13.801 -7.621,0 -13.789,-6.196 -13.789,-13.801 l 0,-20.406 z m -10.207,0 0,20.406 c 0,13.242 10.754,23.996 23.996,23.996 13.258,0 24.008,-10.754 24.008,-23.996 l 0,-20.406 c 0,-13.254 -10.75,-23.996 -24.008,-23.996 -13.242,0 -23.996,10.742 -23.996,23.996 z m -38.887,34.8 9,8.997 -11.878,0 -9,-8.997 11.878,0 z m -13.91,-58.203 0,8.407 30.602,49.796 -4.813,0 8.997,8.997 8.417,0 0,-7.789 -30.597,-49.809 30.597,0 0,-9.602" /><path - id="path6709" - style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 140.691,170.387 c -2.117,1.836 -4.183,3.722 -6.203,5.66 l 28.289,28.301 c 2.032,-1.934 4.137,-3.786 6.313,-5.575 l -28.399,-28.386 z m 214.391,214.386 -28.391,-28.386 c -1.777,2.164 -3.64,4.269 -5.574,6.301 l 28.289,28.289 c 1.949,-2.008 3.836,-4.086 5.676,-6.204 z M 154.117,160.055 c -2.332,1.597 -4.633,3.265 -6.883,4.996 l 28.606,28.605 c 2.359,-1.644 4.765,-3.179 7.234,-4.644 L 154.117,160.055 Z M 365.41,371.348 336.465,342.391 c -1.461,2.468 -3.012,4.875 -4.656,7.222 l 28.605,28.617 c 1.731,-2.25 3.398,-4.546 4.996,-6.882 z M 168.934,151.105 c -2.575,1.356 -5.102,2.782 -7.594,4.293 l 29.461,29.454 c 2.699,-1.332 5.445,-2.54 8.238,-3.629 l -30.105,-30.118 z m 205.425,205.438 -30.117,-30.129 c -1.101,2.805 -2.308,5.551 -3.629,8.25 l 29.453,29.449 c 1.5,-2.476 2.938,-5.008 4.293,-7.57 z M 185.25,143.668 c -2.816,1.086 -5.613,2.262 -8.355,3.52 l 30.988,30.976 c 3.117,-0.934 6.273,-1.73 9.48,-2.383 L 185.25,143.668 Z m 196.547,196.547 -32.109,-32.113 c -0.649,3.191 -1.454,6.363 -2.399,9.484 l 30.988,30.984 c 1.258,-2.742 2.434,-5.539 3.52,-8.355 z m -38.391,56.64 c -61.515,57.125 -157.695,53.547 -214.808,-7.98 -54.125,-58.313 -54.125,-148.508 0,-206.816 l 28.312,28.3 c -41.472,45.891 -37.894,116.719 7.996,158.196 42.649,38.547 107.551,38.547 150.199,0 l 28.301,28.3 z m 41.477,-65.433 c 25.387,-80.012 -18.906,-165.465 -98.914,-190.84 -29.914,-9.496 -62.024,-9.496 -91.926,0 l 33.566,33.566 c 61.481,-6.847 116.864,37.446 123.696,98.926 0.929,8.235 0.929,16.547 0,24.77" /><path - id="path6711" - style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600 600" + height="600" + width="600" + xml:space="preserve" + version="1.1" + id="svg6679"><metadata + id="metadata6685"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs6683" /><g + transform="matrix(1.25,0,0,-1.25,0,600)" + id="g6687"><g + id="g6689"><path + id="path6691" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 32.414,0.473 c -17.633,0 -31.93,14.297 -31.93,31.941 l 0,415.172 c 0,17.633 14.297,31.93 31.93,31.93 l 415.172,0 c 17.644,0 31.941,-14.297 31.941,-31.93 l 0,-415.172 C 479.527,14.77 465.23,0.473 447.586,0.473" /><path + id="path6693" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 32.414,480 C 14.539,480 0,465.461 0,447.586 L 0,32.414 C 0,14.539 14.539,0 32.414,0 L 447.586,0 C 465.461,0 480,14.539 480,32.414 l 0,415.172 C 480,465.461 465.461,480 447.586,480 l -415.172,0 z m 0,-0.484 415.172,0 c 17.644,0 31.941,-14.293 31.941,-31.93 l 0,-415.172 c 0,-17.648 -14.297,-31.941 -31.941,-31.941 l -415.172,0 c -17.633,0 -31.93,14.293 -31.93,31.941 l 0,415.172 c 0,17.637 14.297,31.93 31.93,31.93 z" /><path + id="path6695" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 32.004,471.992 c -13.258,0 -23.996,-10.738 -23.996,-23.996 l 0,-415.992 c 0,-13.27 10.738,-24.012 23.996,-24.012 l 415.992,0 c 13.266,0 24.008,10.742 24.008,24.012 l 0,415.992 c 0,13.258 -10.742,23.996 -24.008,23.996 l -415.992,0 z m 0,-11.996 374.543,0 -386.543,-386.543 0,374.543 c 0,6.629 5.371,12 12,12 z" /><path + id="path6697" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 73.453,19.992 386.555,386.551 0,-374.539 c 0,-6.641 -5.383,-12.012 -12.012,-12.012" /><path + id="path6699" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 61.578,19.992 -11.879,0 410.309,410.309 0,-11.891" /><path + id="path6701" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 37.82,19.992 -5.816,0 c -1.719,0 -3.422,0.363 -4.984,1.09 l 431.898,431.895 c 0.715,-1.571 1.09,-3.266 1.09,-4.981 l 0,-5.82" /><path + id="path6703" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 20.004,37.809 422.187,422.183 5.805,0 c 1.719,0 3.422,-0.375 4.984,-1.074 L 21.082,27.008 c -0.715,1.574 -1.078,3.277 -1.078,4.996" /><path + id="path6705" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 20.004,49.699 0,11.863 398.418,398.43 11.879,0" /><path + id="path6707" + style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 308.395,42.527 0,67.2 43.214,0 0,-9.59 -33.007,0 0,-19.207 28.207,0 0,-9 -28.207,0 0,-19.801 33.007,0 0,-9.602 -43.214,0 z m -65.993,0 0,67.2 9.602,0 30.601,-47.993 0,47.993 10.196,0 0,-67.2 -9.602,0 -30.59,48.004 0,-48.004 -10.207,0 z M 191.406,65.93 c 0,-7.618 6.168,-13.801 13.789,-13.801 7.633,0 13.801,6.183 13.801,13.801 l 0,20.406 c 0,7.605 -6.168,13.801 -13.801,13.801 -7.621,0 -13.789,-6.196 -13.789,-13.801 l 0,-20.406 z m -10.207,0 0,20.406 c 0,13.242 10.754,23.996 23.996,23.996 13.258,0 24.008,-10.754 24.008,-23.996 l 0,-20.406 c 0,-13.254 -10.75,-23.996 -24.008,-23.996 -13.242,0 -23.996,10.742 -23.996,23.996 z m -38.887,34.8 9,8.997 -11.878,0 -9,-8.997 11.878,0 z m -13.91,-58.203 0,8.407 30.602,49.796 -4.813,0 8.997,8.997 8.417,0 0,-7.789 -30.597,-49.809 30.597,0 0,-9.602" /><path + id="path6709" + style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 140.691,170.387 c -2.117,1.836 -4.183,3.722 -6.203,5.66 l 28.289,28.301 c 2.032,-1.934 4.137,-3.786 6.313,-5.575 l -28.399,-28.386 z m 214.391,214.386 -28.391,-28.386 c -1.777,2.164 -3.64,4.269 -5.574,6.301 l 28.289,28.289 c 1.949,-2.008 3.836,-4.086 5.676,-6.204 z M 154.117,160.055 c -2.332,1.597 -4.633,3.265 -6.883,4.996 l 28.606,28.605 c 2.359,-1.644 4.765,-3.179 7.234,-4.644 L 154.117,160.055 Z M 365.41,371.348 336.465,342.391 c -1.461,2.468 -3.012,4.875 -4.656,7.222 l 28.605,28.617 c 1.731,-2.25 3.398,-4.546 4.996,-6.882 z M 168.934,151.105 c -2.575,1.356 -5.102,2.782 -7.594,4.293 l 29.461,29.454 c 2.699,-1.332 5.445,-2.54 8.238,-3.629 l -30.105,-30.118 z m 205.425,205.438 -30.117,-30.129 c -1.101,2.805 -2.308,5.551 -3.629,8.25 l 29.453,29.449 c 1.5,-2.476 2.938,-5.008 4.293,-7.57 z M 185.25,143.668 c -2.816,1.086 -5.613,2.262 -8.355,3.52 l 30.988,30.976 c 3.117,-0.934 6.273,-1.73 9.48,-2.383 L 185.25,143.668 Z m 196.547,196.547 -32.109,-32.113 c -0.649,3.191 -1.454,6.363 -2.399,9.484 l 30.988,30.984 c 1.258,-2.742 2.434,-5.539 3.52,-8.355 z m -38.391,56.64 c -61.515,57.125 -157.695,53.547 -214.808,-7.98 -54.125,-58.313 -54.125,-148.508 0,-206.816 l 28.312,28.3 c -41.472,45.891 -37.894,116.719 7.996,158.196 42.649,38.547 107.551,38.547 150.199,0 l 28.301,28.3 z m 41.477,-65.433 c 25.387,-80.012 -18.906,-165.465 -98.914,-190.84 -29.914,-9.496 -62.024,-9.496 -91.926,0 l 33.566,33.566 c 61.481,-6.847 116.864,37.446 123.696,98.926 0.929,8.235 0.929,16.547 0,24.77" /><path + id="path6711" + style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 269.336,310.906 0,-11.875 -18.66,-18.676 0,11.891 18.66,18.66 z m 0,-23.754 0,-11.89 -18.66,-18.66 0,11.875 18.66,18.675 z m 0,-23.765 0,-7.09 c 0,-1.438 0.164,-2.879 0.496,-4.281 L 255.594,237.77 c -1.512,2.636 -2.696,5.441 -3.52,8.355 l 17.262,17.262 z m 4.5,-19.258 c 1.875,-2.176 4.223,-3.883 6.859,-5.008 L 267.004,225.43 c -2.324,1.574 -4.465,3.422 -6.387,5.492 l 13.219,13.207 z m 51.488,27.746 0,-15.578 c 0,-20.621 -16.703,-37.336 -37.312,-37.336 -4.512,0 -8.977,0.809 -13.184,2.394 l 16.582,16.594 c 7.598,1.403 13.535,7.34 14.949,14.938 l 18.965,18.988 z m 0,23.758 0,-11.879 -18.648,-18.676 0,11.891 18.648,18.664 z m 0,11.875 -18.648,-18.66 0,11.875 18.394,18.398 c 0.184,-1.488 0.254,-2.988 0.254,-4.488 l 0,-7.125 z m -18.648,5.094 0,2.031 c 0,2.769 -0.629,5.527 -1.828,8.031 l 13.586,13.582 c 1.703,-2.383 3.105,-4.957 4.195,-7.68 l -15.953,-15.964 z m -0.824,34.82 c 2.503,-1.367 4.839,-3.012 6.98,-4.91 L 299.586,329.27 c -2.383,1.886 -5.199,3.156 -8.176,3.71 l 14.442,14.442 z m -55.176,-32.789 c 0,20.609 16.715,37.324 37.336,37.324 3.133,0 6.277,-0.398 9.312,-1.184 l -46.648,-46.652 0,10.512 z m -14.008,-83.918 -10.594,-10.582 10.594,0 0,10.582 z m -15.688,8.082 -18.664,-18.664 11.879,0 18.66,18.664 -11.875,0 z m -23.753,0 -18.665,-18.664 11.879,0 18.661,18.664 -11.875,0 z m -35.223,-18.664 0,17.5 51.949,65.387 c 6.41,8.07 5.067,19.812 -3,26.222 -8.078,6.414 -19.824,5.07 -26.234,-2.996 -2.625,-3.305 -4.051,-7.402 -4.051,-11.613 l -18.664,0 c 0,20.609 16.715,37.324 37.324,37.324 20.625,0 37.34,-16.715 37.34,-37.324 0,-8.481 -2.879,-16.703 -8.176,-23.321 l -37.375,-46.746 -24.433,-24.433" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/SpeedLimitZoneEnd_274.2.svg b/content/html/_images/SpeedLimitZoneEnd_274.2.svg index 3db89e576922e8b2b9544569ac1957e2d5188e68..e7c98def7eb26977a519eb6fe199fe483e702d27 100644 --- a/content/html/_images/SpeedLimitZoneEnd_274.2.svg +++ b/content/html/_images/SpeedLimitZoneEnd_274.2.svg @@ -1,41 +1,41 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 600 600" - height="600" - width="600" - xml:space="preserve" - version="1.1" - id="svg7047"><metadata - id="metadata7053"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs7051" /><g - transform="matrix(1.25,0,0,-1.25,0,600)" - id="g7055"><g - id="g7057"><path - id="path7059" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 32.414,0.473 c -17.633,0 -31.93,14.297 -31.93,31.941 l 0,415.172 c 0,17.633 14.297,31.93 31.93,31.93 l 415.172,0 c 17.644,0 31.941,-14.297 31.941,-31.93 l 0,-415.172 C 479.527,14.77 465.23,0.473 447.586,0.473" /><path - id="path7061" - style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 153.391,252.793 18.941,0 c 2.574,-10.641 13.305,-17.184 23.945,-14.598 8.903,2.153 15.168,10.114 15.168,19.27 l 0,2.332 c 0,10.961 -8.875,19.836 -19.836,19.836 l -8.164,0 0,16.328 8.164,0 c 10.305,0 18.664,8.359 18.664,18.676 0,10.304 -8.359,18.664 -18.664,18.664 -8.961,0 -16.656,-6.375 -18.336,-15.168 l -18.832,0 c 1.934,20.527 20.137,35.597 40.664,33.672 19.184,-1.813 33.844,-17.91 33.844,-37.168 0,-10.629 -5.179,-20.598 -13.863,-26.719 9.387,-6.277 15.023,-16.824 15.023,-28.121 l 0,-2.332 c 0,-21.254 -17.234,-38.5 -38.5,-38.5 -19.461,0 -35.863,14.515 -38.218,33.828" /><path - id="path7063" - style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 267.434,256.301 c 0,-10.317 8.359,-18.66 18.675,-18.66 10.305,0 18.664,8.343 18.664,18.66 l 0,58.336 c 0,10.304 -8.359,18.664 -18.664,18.664 -10.316,0 -18.675,-8.36 -18.675,-18.664 l 0,-58.336 z m -18.661,0 0,58.336 c 0,20.613 16.715,37.328 37.336,37.328 20.625,0 37.34,-16.715 37.34,-37.328 l 0,-58.336 c 0,-20.621 -16.715,-37.336 -37.34,-37.336 -20.621,0 -37.336,16.715 -37.336,37.336" /><path - id="path7065" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 32.414,480 C 14.539,480 0,465.461 0,447.586 L 0,32.414 C 0,14.539 14.539,0 32.414,0 L 447.586,0 C 465.461,0 480,14.539 480,32.414 l 0,415.172 C 480,465.461 465.461,480 447.586,480 l -415.172,0 z m 0,-0.484 415.172,0 c 17.644,0 31.941,-14.293 31.941,-31.93 l 0,-415.172 c 0,-17.648 -14.297,-31.941 -31.941,-31.941 l -415.172,0 c -17.633,0 -31.93,14.293 -31.93,31.941 l 0,415.172 c 0,17.637 14.297,31.93 31.93,31.93 z" /><path - id="path7067" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 32.004,471.992 c -13.258,0 -23.996,-10.738 -23.996,-23.996 l 0,-415.992 c 0,-13.27 10.738,-24.012 23.996,-24.012 l 415.992,0 c 13.266,0 24.008,10.742 24.008,24.012 l 0,415.992 c 0,13.258 -10.742,23.996 -24.008,23.996 l -415.992,0 z m 0,-11.996 374.543,0 -386.543,-386.543 0,374.543 c 0,6.629 5.371,12 12,12 z m 386.418,-0.004 11.879,0 -410.297,-410.293 0,11.863 398.418,398.43 z m 23.769,0 5.805,0 c 1.715,0 3.422,-0.371 4.984,-1.074 L 21.082,27.008 c -0.715,1.574 -1.078,3.277 -1.078,4.996 l 0,5.805 422.187,422.183 z m 16.727,-7.015 c 0.715,-1.571 1.09,-3.266 1.09,-4.981 l 0,-5.82 L 37.82,19.992 l -5.816,0 c -1.715,0 -3.422,0.363 -4.984,1.09 l 431.898,431.895 z m 1.09,-22.676 0,-11.891 -398.43,-398.418 -11.879,0 410.309,410.309 z m 0,-23.754 0,-374.543 c 0,-6.641 -5.383,-12.012 -12.012,-12.012 l -374.543,0 386.555,386.555 z" /><path - id="path7069" - style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 308.395,42.527 0,67.2 43.214,0 0,-9.59 -33.007,0 0,-19.207 28.207,0 0,-9 -28.207,0 0,-19.801 33.007,0 0,-9.602 -43.214,0 z m -65.993,0 0,67.2 9.602,0 30.601,-47.993 0,47.993 10.196,0 0,-67.2 -9.602,0 -30.59,48.004 0,-48.004 -10.207,0 z M 191.406,65.93 c 0,-7.618 6.168,-13.801 13.789,-13.801 7.633,0 13.801,6.183 13.801,13.801 l 0,20.406 c 0,7.605 -6.168,13.801 -13.801,13.801 -7.621,0 -13.789,-6.196 -13.789,-13.801 l 0,-20.406 z m -10.207,0 0,20.406 c 0,13.242 10.754,23.996 23.996,23.996 13.258,0 24.008,-10.754 24.008,-23.996 l 0,-20.406 c 0,-13.254 -10.75,-23.996 -24.008,-23.996 -13.242,0 -23.996,10.742 -23.996,23.996 z m -38.887,34.8 9,8.997 -11.878,0 -9,-8.997 11.878,0 z m -13.91,-58.203 0,8.407 30.602,49.796 -4.813,0 8.997,8.997 8.417,0 0,-7.789 -30.597,-49.809 30.597,0 0,-9.602" /><path - id="path7071" - style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 600 600" + height="600" + width="600" + xml:space="preserve" + version="1.1" + id="svg7047"><metadata + id="metadata7053"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs7051" /><g + transform="matrix(1.25,0,0,-1.25,0,600)" + id="g7055"><g + id="g7057"><path + id="path7059" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 32.414,0.473 c -17.633,0 -31.93,14.297 -31.93,31.941 l 0,415.172 c 0,17.633 14.297,31.93 31.93,31.93 l 415.172,0 c 17.644,0 31.941,-14.297 31.941,-31.93 l 0,-415.172 C 479.527,14.77 465.23,0.473 447.586,0.473" /><path + id="path7061" + style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 153.391,252.793 18.941,0 c 2.574,-10.641 13.305,-17.184 23.945,-14.598 8.903,2.153 15.168,10.114 15.168,19.27 l 0,2.332 c 0,10.961 -8.875,19.836 -19.836,19.836 l -8.164,0 0,16.328 8.164,0 c 10.305,0 18.664,8.359 18.664,18.676 0,10.304 -8.359,18.664 -18.664,18.664 -8.961,0 -16.656,-6.375 -18.336,-15.168 l -18.832,0 c 1.934,20.527 20.137,35.597 40.664,33.672 19.184,-1.813 33.844,-17.91 33.844,-37.168 0,-10.629 -5.179,-20.598 -13.863,-26.719 9.387,-6.277 15.023,-16.824 15.023,-28.121 l 0,-2.332 c 0,-21.254 -17.234,-38.5 -38.5,-38.5 -19.461,0 -35.863,14.515 -38.218,33.828" /><path + id="path7063" + style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 267.434,256.301 c 0,-10.317 8.359,-18.66 18.675,-18.66 10.305,0 18.664,8.343 18.664,18.66 l 0,58.336 c 0,10.304 -8.359,18.664 -18.664,18.664 -10.316,0 -18.675,-8.36 -18.675,-18.664 l 0,-58.336 z m -18.661,0 0,58.336 c 0,20.613 16.715,37.328 37.336,37.328 20.625,0 37.34,-16.715 37.34,-37.328 l 0,-58.336 c 0,-20.621 -16.715,-37.336 -37.34,-37.336 -20.621,0 -37.336,16.715 -37.336,37.336" /><path + id="path7065" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 32.414,480 C 14.539,480 0,465.461 0,447.586 L 0,32.414 C 0,14.539 14.539,0 32.414,0 L 447.586,0 C 465.461,0 480,14.539 480,32.414 l 0,415.172 C 480,465.461 465.461,480 447.586,480 l -415.172,0 z m 0,-0.484 415.172,0 c 17.644,0 31.941,-14.293 31.941,-31.93 l 0,-415.172 c 0,-17.648 -14.297,-31.941 -31.941,-31.941 l -415.172,0 c -17.633,0 -31.93,14.293 -31.93,31.941 l 0,415.172 c 0,17.637 14.297,31.93 31.93,31.93 z" /><path + id="path7067" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 32.004,471.992 c -13.258,0 -23.996,-10.738 -23.996,-23.996 l 0,-415.992 c 0,-13.27 10.738,-24.012 23.996,-24.012 l 415.992,0 c 13.266,0 24.008,10.742 24.008,24.012 l 0,415.992 c 0,13.258 -10.742,23.996 -24.008,23.996 l -415.992,0 z m 0,-11.996 374.543,0 -386.543,-386.543 0,374.543 c 0,6.629 5.371,12 12,12 z m 386.418,-0.004 11.879,0 -410.297,-410.293 0,11.863 398.418,398.43 z m 23.769,0 5.805,0 c 1.715,0 3.422,-0.371 4.984,-1.074 L 21.082,27.008 c -0.715,1.574 -1.078,3.277 -1.078,4.996 l 0,5.805 422.187,422.183 z m 16.727,-7.015 c 0.715,-1.571 1.09,-3.266 1.09,-4.981 l 0,-5.82 L 37.82,19.992 l -5.816,0 c -1.715,0 -3.422,0.363 -4.984,1.09 l 431.898,431.895 z m 1.09,-22.676 0,-11.891 -398.43,-398.418 -11.879,0 410.309,410.309 z m 0,-23.754 0,-374.543 c 0,-6.641 -5.383,-12.012 -12.012,-12.012 l -374.543,0 386.555,386.555 z" /><path + id="path7069" + style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 308.395,42.527 0,67.2 43.214,0 0,-9.59 -33.007,0 0,-19.207 28.207,0 0,-9 -28.207,0 0,-19.801 33.007,0 0,-9.602 -43.214,0 z m -65.993,0 0,67.2 9.602,0 30.601,-47.993 0,47.993 10.196,0 0,-67.2 -9.602,0 -30.59,48.004 0,-48.004 -10.207,0 z M 191.406,65.93 c 0,-7.618 6.168,-13.801 13.789,-13.801 7.633,0 13.801,6.183 13.801,13.801 l 0,20.406 c 0,7.605 -6.168,13.801 -13.801,13.801 -7.621,0 -13.789,-6.196 -13.789,-13.801 l 0,-20.406 z m -10.207,0 0,20.406 c 0,13.242 10.754,23.996 23.996,23.996 13.258,0 24.008,-10.754 24.008,-23.996 l 0,-20.406 c 0,-13.254 -10.75,-23.996 -24.008,-23.996 -13.242,0 -23.996,10.742 -23.996,23.996 z m -38.887,34.8 9,8.997 -11.878,0 -9,-8.997 11.878,0 z m -13.91,-58.203 0,8.407 30.602,49.796 -4.813,0 8.997,8.997 8.417,0 0,-7.789 -30.597,-49.809 30.597,0 0,-9.602" /><path + id="path7071" + style="fill:#8a8a8a;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 140.691,170.387 c -2.117,1.836 -4.183,3.722 -6.203,5.66 l 28.289,28.301 c 2.032,-1.934 4.137,-3.786 6.313,-5.575 l -28.399,-28.386 z m 214.391,214.386 -28.391,-28.386 c -1.777,2.164 -3.64,4.269 -5.574,6.301 l 28.289,28.289 c 1.949,-2.008 3.836,-4.086 5.676,-6.204 z M 154.117,160.055 c -2.332,1.597 -4.633,3.265 -6.883,4.996 l 28.606,28.605 c 2.359,-1.644 4.765,-3.179 7.234,-4.644 L 154.117,160.055 Z M 365.41,371.348 336.465,342.391 c -1.461,2.468 -3.012,4.875 -4.656,7.222 l 28.605,28.617 c 1.731,-2.25 3.398,-4.546 4.996,-6.882 z M 168.934,151.105 c -2.575,1.356 -5.102,2.782 -7.594,4.293 l 29.461,29.454 c 2.699,-1.332 5.445,-2.54 8.238,-3.629 l -30.105,-30.118 z m 205.425,205.438 -30.117,-30.129 c -1.101,2.805 -2.308,5.551 -3.629,8.25 l 29.453,29.449 c 1.5,-2.476 2.938,-5.008 4.293,-7.57 z M 185.25,143.668 c -2.816,1.086 -5.613,2.262 -8.355,3.52 l 30.988,30.976 c 3.117,-0.934 6.273,-1.73 9.48,-2.383 L 185.25,143.668 Z m 196.547,196.547 -32.109,-32.113 c -0.649,3.191 -1.454,6.363 -2.399,9.484 l 30.988,30.984 c 1.258,-2.742 2.434,-5.539 3.52,-8.355 z m -38.391,56.64 c -61.515,57.125 -157.695,53.547 -214.808,-7.98 -54.125,-58.313 -54.125,-148.508 0,-206.816 l 28.312,28.3 c -41.472,45.891 -37.894,116.719 7.996,158.196 42.649,38.547 107.551,38.547 150.199,0 l 28.301,28.3 z m 41.477,-65.433 c 25.387,-80.012 -18.906,-165.465 -98.914,-190.84 -29.914,-9.496 -62.024,-9.496 -91.926,0 l 33.566,33.566 c 61.481,-6.847 116.864,37.446 123.696,98.926 0.929,8.235 0.929,16.547 0,24.77" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/Stop_206.svg b/content/html/_images/Stop_206.svg index 347de433b04af66e7dd5d3b7f3f8a060c90d2607..a293e2a2670b8720d5e624faf4a4ca2ebf65e098 100644 --- a/content/html/_images/Stop_206.svg +++ b/content/html/_images/Stop_206.svg @@ -1,32 +1,32 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - id="svg6600" - version="1.1" - xml:space="preserve" - width="901" - height="901" - viewBox="0 0 901 901"><metadata - id="metadata6606"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs6604" /><g - id="g6608" - transform="matrix(1.25,0,0,-1.25,0,900.99999)"><g - id="g6610"><path - d="m 226.184,0.402 c -9.543,0 -18.704,3.804 -25.465,10.554 L 10.926,200.999 C 4.18,207.753 0.398,216.913 0.398,226.484 l 0,268.75 c 0,9.554 3.782,18.726 10.528,25.484 l 189.793,190.043 c 6.761,6.75 15.922,9.641 25.465,9.641 l 268.433,0 c 9.547,0 18.707,-2.891 25.449,-9.641 L 709.875,520.718 c 6.742,-6.758 10.523,-15.93 10.523,-25.484 l 0,-268.75 c 0,-9.571 -3.781,-18.731 -10.523,-25.485 L 520.066,10.956 C 513.324,4.206 504.164,0.402 494.617,0.402 l -268.433,0 z" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path6612" /><path - d="m 689.793,496.566 -192.953,193.191 -272.879,0 -192.953,-193.191 0,-273.211 192.953,-193.192 272.879,0 192.953,193.192 0,273.211 z" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path6614" /><path - d="m 544.375,445.968 0,-76.664 21.258,0 c 0,0 21.465,0.004 21.465,21.34 l 0,34.086 c 0,0 -0.102,21.238 -21.465,21.238 l -21.258,0 z m -34.039,-204.375 0,238.496 55.297,0 c 55.586,0 55.293,-55.359 55.293,-55.359 l 0,-34.086 c 0,0 0.293,-55.36 -55.293,-55.36 l -21.258,0 0,-93.691 -34.039,0 z m -114.832,55.359 c 0,-12.937 10.484,-23.429 23.402,-23.429 12.922,0 23.387,10.492 23.387,23.429 l 0,127.778 c 0,12.933 -10.465,23.414 -23.387,23.414 -12.918,0 -23.402,-10.481 -23.402,-23.414 l 0,-127.778 z m -34.059,0 0,127.778 c 0,31.738 25.727,57.496 57.461,57.496 31.703,0 57.41,-25.758 57.41,-57.496 l 0,-127.778 c 0,-31.742 -25.707,-57.476 -57.41,-57.476 -31.734,0 -57.461,25.734 -57.461,57.476 z m -91.441,-55.359 0,204.375 -40.399,0 0,34.121 114.833,0 0,-34.121 -40.415,0 0,-204.375 -34.019,0 z m -170.129,68.125 34.023,0 0,-12.766 c 0,-12.937 10.485,-23.429 23.383,-23.429 l 2.133,0 c 12.922,0 23.387,10.492 23.387,23.429 l 0,25.551 c 0,9.547 -5.774,18.129 -14.606,21.711 l -30.328,12.301 c -21.683,8.808 -35.859,29.883 -35.859,53.297 l 0,14.918 c 0,31.738 25.707,57.496 57.406,57.496 31.723,0 57.426,-25.758 57.426,-57.496 l 0,-12.785 -34.039,0 0,12.785 c 0,12.933 -10.465,23.414 -23.387,23.414 -12.922,0 -23.383,-10.481 -23.383,-23.414 l 0,-14.918 c 0,-9.532 5.77,-18.114 14.602,-21.692 L 180.98,375.8 c 21.684,-8.793 35.86,-29.867 35.86,-53.297 l 0,-25.551 c 0,-31.742 -25.703,-57.476 -57.426,-57.476 l -2.133,0 c -31.699,0 -57.406,25.734 -57.406,57.476" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - id="path6616" /><path - d="m 226.184,720.8 c -9.622,0 -18.899,-2.918 -25.746,-9.758 L 10.641,520.999 C 3.824,514.167 0,504.894 0,495.234 l 0,-268.75 c 0,-9.676 3.824,-18.938 10.641,-25.766 L 200.438,10.675 c 6.835,-6.828 16.097,-10.676 25.746,-10.676 l 268.433,0 c 9.653,0 18.914,3.848 25.735,10.676 l 189.804,190.043 c 6.821,6.828 10.645,16.09 10.645,25.766 l 0,268.75 c 0,9.66 -3.824,18.933 -10.645,25.765 L 520.352,711.042 c -6.832,6.84 -16.11,9.758 -25.735,9.758 l -268.433,0 z m 0,-0.398 268.433,0 c 9.547,0 18.707,-2.887 25.453,-9.641 L 709.875,520.718 c 6.742,-6.758 10.523,-15.93 10.523,-25.484 l 0,-268.75 c 0,-9.571 -3.781,-18.731 -10.523,-25.485 L 520.07,10.956 C 513.324,4.206 504.164,0.402 494.617,0.402 l -268.433,0 c -9.543,0 -18.704,3.804 -25.465,10.554 L 10.926,200.999 C 4.18,207.753 0.398,216.913 0.398,226.484 l 0,268.75 c 0,9.554 3.782,18.726 10.528,25.484 l 189.793,190.043 c 6.761,6.754 15.922,9.641 25.465,9.641 z" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + id="svg6600" + version="1.1" + xml:space="preserve" + width="901" + height="901" + viewBox="0 0 901 901"><metadata + id="metadata6606"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs6604" /><g + id="g6608" + transform="matrix(1.25,0,0,-1.25,0,900.99999)"><g + id="g6610"><path + d="m 226.184,0.402 c -9.543,0 -18.704,3.804 -25.465,10.554 L 10.926,200.999 C 4.18,207.753 0.398,216.913 0.398,226.484 l 0,268.75 c 0,9.554 3.782,18.726 10.528,25.484 l 189.793,190.043 c 6.761,6.75 15.922,9.641 25.465,9.641 l 268.433,0 c 9.547,0 18.707,-2.891 25.449,-9.641 L 709.875,520.718 c 6.742,-6.758 10.523,-15.93 10.523,-25.484 l 0,-268.75 c 0,-9.571 -3.781,-18.731 -10.523,-25.485 L 520.066,10.956 C 513.324,4.206 504.164,0.402 494.617,0.402 l -268.433,0 z" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path6612" /><path + d="m 689.793,496.566 -192.953,193.191 -272.879,0 -192.953,-193.191 0,-273.211 192.953,-193.192 272.879,0 192.953,193.192 0,273.211 z" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path6614" /><path + d="m 544.375,445.968 0,-76.664 21.258,0 c 0,0 21.465,0.004 21.465,21.34 l 0,34.086 c 0,0 -0.102,21.238 -21.465,21.238 l -21.258,0 z m -34.039,-204.375 0,238.496 55.297,0 c 55.586,0 55.293,-55.359 55.293,-55.359 l 0,-34.086 c 0,0 0.293,-55.36 -55.293,-55.36 l -21.258,0 0,-93.691 -34.039,0 z m -114.832,55.359 c 0,-12.937 10.484,-23.429 23.402,-23.429 12.922,0 23.387,10.492 23.387,23.429 l 0,127.778 c 0,12.933 -10.465,23.414 -23.387,23.414 -12.918,0 -23.402,-10.481 -23.402,-23.414 l 0,-127.778 z m -34.059,0 0,127.778 c 0,31.738 25.727,57.496 57.461,57.496 31.703,0 57.41,-25.758 57.41,-57.496 l 0,-127.778 c 0,-31.742 -25.707,-57.476 -57.41,-57.476 -31.734,0 -57.461,25.734 -57.461,57.476 z m -91.441,-55.359 0,204.375 -40.399,0 0,34.121 114.833,0 0,-34.121 -40.415,0 0,-204.375 -34.019,0 z m -170.129,68.125 34.023,0 0,-12.766 c 0,-12.937 10.485,-23.429 23.383,-23.429 l 2.133,0 c 12.922,0 23.387,10.492 23.387,23.429 l 0,25.551 c 0,9.547 -5.774,18.129 -14.606,21.711 l -30.328,12.301 c -21.683,8.808 -35.859,29.883 -35.859,53.297 l 0,14.918 c 0,31.738 25.707,57.496 57.406,57.496 31.723,0 57.426,-25.758 57.426,-57.496 l 0,-12.785 -34.039,0 0,12.785 c 0,12.933 -10.465,23.414 -23.387,23.414 -12.922,0 -23.383,-10.481 -23.383,-23.414 l 0,-14.918 c 0,-9.532 5.77,-18.114 14.602,-21.692 L 180.98,375.8 c 21.684,-8.793 35.86,-29.867 35.86,-53.297 l 0,-25.551 c 0,-31.742 -25.703,-57.476 -57.426,-57.476 l -2.133,0 c -31.699,0 -57.406,25.734 -57.406,57.476" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + id="path6616" /><path + d="m 226.184,720.8 c -9.622,0 -18.899,-2.918 -25.746,-9.758 L 10.641,520.999 C 3.824,514.167 0,504.894 0,495.234 l 0,-268.75 c 0,-9.676 3.824,-18.938 10.641,-25.766 L 200.438,10.675 c 6.835,-6.828 16.097,-10.676 25.746,-10.676 l 268.433,0 c 9.653,0 18.914,3.848 25.735,10.676 l 189.804,190.043 c 6.821,6.828 10.645,16.09 10.645,25.766 l 0,268.75 c 0,9.66 -3.824,18.933 -10.645,25.765 L 520.352,711.042 c -6.832,6.84 -16.11,9.758 -25.735,9.758 l -268.433,0 z m 0,-0.398 268.433,0 c 9.547,0 18.707,-2.887 25.453,-9.641 L 709.875,520.718 c 6.742,-6.758 10.523,-15.93 10.523,-25.484 l 0,-268.75 c 0,-9.571 -3.781,-18.731 -10.523,-25.485 L 520.07,10.956 C 513.324,4.206 504.164,0.402 494.617,0.402 l -268.433,0 c -9.543,0 -18.704,3.804 -25.465,10.554 L 10.926,200.999 C 4.18,207.753 0.398,216.913 0.398,226.484 l 0,268.75 c 0,9.554 3.782,18.726 10.528,25.484 l 189.793,190.043 c 6.761,6.754 15.922,9.641 25.465,9.641 z" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path6618" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/Stop_R1-1.svg b/content/html/_images/Stop_R1-1.svg index 2b863c5d488be367f457b2444d80281e936d17a5..edefeb09f250b1e43acc8a2caa8aa6045f0f5697 100644 --- a/content/html/_images/Stop_R1-1.svg +++ b/content/html/_images/Stop_R1-1.svg @@ -1,8 +1,8 @@ -<svg version="1.1" viewBox="-15.05 -15.05 30.1 30.1" xmlns="http://www.w3.org/2000/svg"> - <path d="m-6.213203436-15-8.786796564 8.786796564v12.42640687l8.786796564 8.786796564h12.42640687l8.786796564-8.786796564v-12.42640687l-8.786796564-8.786796564z" fill="#fff" stroke="#000" stroke-width="0.05"/> - <path d="m-14.25-5.902543264 8.347456736-8.347456736h11.80508653l8.347456736 8.347456736v11.80508653l-8.347456736 8.347456736h-11.80508653l-8.347456736-8.347456736z" fill="#a6192e"/> - <g transform="matrix(.0390625 0 0 .0390625 -12.5 -5)"> - <path d="M159 0V34H205V256H241V34H287V0" fill="#fff"/> - <path d="M518 256V18H577.4948425A42 42 0 0 1 615.8917541 42.98009458 72 72 0 0 1 622 72 72 72 0 0 1 615.8917541 101.0220044 42 42 0 0 1 577.4948425 126H518M335.364971 49.75526231A47 47 0 0 1 426.635029 49.75526231 300.625 300.625 0 0 1 437 128 300.625 300.625 0 0 1 426.635029 206.2447377 47 47 0 0 1 335.364971 206.2447377 300.625 300.625 0 0 1 325 128 300.625 300.625 0 0 1 335.364971 49.75526231ZM122 60A46 46 0 0 0 30 60 46 46 0 0 0 52.18236717 99.35378463L81.16646139 116.8153652A86 86 0 0 1 122 190 52 52 0 0 1 18 190V180" fill="none" stroke="#fff" stroke-width="36"/> - </g> -</svg> +<svg version="1.1" viewBox="-15.05 -15.05 30.1 30.1" xmlns="http://www.w3.org/2000/svg"> + <path d="m-6.213203436-15-8.786796564 8.786796564v12.42640687l8.786796564 8.786796564h12.42640687l8.786796564-8.786796564v-12.42640687l-8.786796564-8.786796564z" fill="#fff" stroke="#000" stroke-width="0.05"/> + <path d="m-14.25-5.902543264 8.347456736-8.347456736h11.80508653l8.347456736 8.347456736v11.80508653l-8.347456736 8.347456736h-11.80508653l-8.347456736-8.347456736z" fill="#a6192e"/> + <g transform="matrix(.0390625 0 0 .0390625 -12.5 -5)"> + <path d="M159 0V34H205V256H241V34H287V0" fill="#fff"/> + <path d="M518 256V18H577.4948425A42 42 0 0 1 615.8917541 42.98009458 72 72 0 0 1 622 72 72 72 0 0 1 615.8917541 101.0220044 42 42 0 0 1 577.4948425 126H518M335.364971 49.75526231A47 47 0 0 1 426.635029 49.75526231 300.625 300.625 0 0 1 437 128 300.625 300.625 0 0 1 426.635029 206.2447377 47 47 0 0 1 335.364971 206.2447377 300.625 300.625 0 0 1 325 128 300.625 300.625 0 0 1 335.364971 49.75526231ZM122 60A46 46 0 0 0 30 60 46 46 0 0 0 52.18236717 99.35378463L81.16646139 116.8153652A86 86 0 0 1 122 190 52 52 0 0 1 18 190V180" fill="none" stroke="#fff" stroke-width="36"/> + </g> +</svg> diff --git a/content/html/_images/Stop_line_294.svg b/content/html/_images/Stop_line_294.svg index a6af8c12ad758e7c96dec277ed106592d04199df..3cd5f92bf63bb70fdfce0c096b776ea2e7b2845e 100644 --- a/content/html/_images/Stop_line_294.svg +++ b/content/html/_images/Stop_line_294.svg @@ -1,151 +1,151 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - version="1.0" - width="2120" - height="1480" - id="svg2"> - <defs - id="defs4" /> - <g - id="layer1"> - <path - d="M 5.8511569,1209.3298 L 752.90068,1044.6846 C 821.85575,1049.0563 890.78924,1043.7344 954.9844,1109.7472 L 1203.625,1428.1397 L 2112.1739,1428.1397 L 1625.9879,964.09236 C 1619.8778,945.46974 1578.9831,899.69882 1709.5018,834.72356 L 2111.6852,749.79728 L 2111.1299,326.18435 L 1270.6955,491.07993 C 1183.3415,507.37092 1120.1152,487.928 1063.2714,442.28559 L 665.89417,61.365324 L 153.37616,61.920642 L 519.18908,530.98694 C 535.60752,632.32446 482.35823,623.99379 455.32724,641.30455 L 6.7044507,726.58227 L 5.8511569,1209.3298 z " - style="fill:#999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path20653" /> - <path - d="M 669.73692,61.451255 L 1058.7669,440.28434 C 1130.9873,495.12921 1202.0039,505.16122 1280.6914,487.66721 L 2113.2762,329.27303 L 2111.9224,310.31988 L 2113.2762,237.21487 L 1254.9693,387.48628 C 1191.9072,399.32987 1171.252,371.82695 1143.958,349.57998 L 814.25389,61.112006 L 669.73692,61.451255 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path20673" /> - <path - d="M 4.2107051,726.28379 L 468.79183,636.45541 C 518.84974,615.19224 547.038,560.21338 505.28461,512.9414 L 153.5373,61.540732 L 39.848262,61.113122 L 352.96475,511.17561 C 368.09248,541.06354 348.63939,541.54489 336.30806,545.95795 L 5.7350105,602.89051 L 4.2107051,726.28379 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path20669" /> - <path - d="M 6.0358396,1210.6334 L 740.29999,1051.2124 C 835.52502,1036.7363 902.83498,1061.9289 952.86137,1111.6824 L 1203.8578,1428.2455 L 963.80995,1428.2455 L 828.25642,1227.1253 C 803.53034,1199.5785 784.0002,1202.5425 756.79182,1201.4713 L 5.543252,1368.6686 L 6.0358396,1210.6334 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path20665" /> - <path - d="M 2112.2223,1426.0445 L 1626.8435,966.67558 C 1619.6963,927.91927 1586.3666,888.95704 1701.0781,840.3188 L 2111.7377,750.2896 L 2112.7206,907.9826 L 1926.9409,949.30153 C 1898.2113,955.95188 1889.8154,969.61383 1911.1463,993.5264 L 2113.0736,1164.756 L 2112.2223,1426.0445 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path20661" /> - <path - d="M 1822.7127,825.10324 L 1822.7127,1093.061 C 1823.0374,1102.8449 1837.9749,1103.9617 1838.2102,1093.061 L 1838.2102,821.60378 L 1822.7127,825.10324 z " - style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path20693" /> - <path - d="M 963.05048,1426.9953 L 831.7204,1230.7382 C 812.17567,1205.8354 779.39276,1197.3513 742.69834,1205.3034 L 7.047661,1371.0766" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path10893" /> - <path - d="M 2112.8823,1164.6443 L 1907.6156,991.65041 C 1894.0156,979.51285 1894.3357,957.01084 1922.8765,948.72336 L 2112.927,907.25721" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path10895" /> - <path - d="M 2111.6051,237.35139 L 1246.7282,388.29689 C 1222.1329,395.47284 1186.1791,385.0278 1161.0828,364.622 L 810.21016,58.664559 L 812.5793,61.033703" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path12667" /> - <path - d="M 5.5374741,603.45926 L 337.2074,546.99544 C 353.44119,543.2149 363.22543,525.90431 353.30235,510.43034 L 40.646614,62.058494" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path13554" /> - <path - d="M 488.21128,488.91711 L 509.40796,514.85168 L 788.12333,474.22584 L 764.47867,447.3141 L 414.67393,61.750547 L 387.52911,61.789471 L 735.52187,451.65593 L 488.21128,488.91711 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path20657" /> - <path - d="M 6.6785944,711.21958 L 455.62855,624.39785 C 506.62586,610.86833 543.88201,563.58495 510.54144,518.28241 L 153.60767,62.653858" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path14441" /> - <path - d="M 6.3455378,726.69401 L 457.78523,640.576 C 481.35093,633.76289 541.02105,606.90565 519.42759,532.70186" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path15328" /> - <path - d="M 683.34238,61.523157 L 1090.2402,444.20542 C 1130.694,477.28862 1217.9086,489.88212 1265.8521,474.40197 L 2112.7554,312.73918" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path16215" /> - <path - d="M 668.46062,62.16535 L 1058.7327,439.26009 C 1134.7571,506.06853 1218.8083,499.58914 1298.3207,485.6625 L 2110.8365,329.40947" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path17102" /> - <path - d="M 2112.5094,1428.3059 L 1634.1733,974.01675 C 1620.3797,960.87572 1613.7724,940.96987 1617.7376,914.10614" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path17989" /> - <path - d="M 2111.9455,1412.7238 L 1621.8398,941.99936 C 1596.5523,894.63082 1659.4242,851.864 1708.7018,837.72203 L 2112.7337,749.55296" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path18877" /> - <path - d="M 1204.6629,1426.1197 L 954.46203,1108.9391 C 914.25756,1063.8921 826.63775,1036.6524 728.40523,1051.2225 L 4.8097191,1210.6557" - style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path19765" /> - <path - d="M 1355.0465,1090.3654 L 1389.9275,1127.2078 L 1705.4653,1057.9423 L 1669.5465,1022.8478 L 1355.0465,1090.3654 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path20655" /> - <path - d="M 1546.6886,670.05325 L 1524.164,645.65161 L 2111.6804,518.01226 L 2111.6804,546.168 L 1546.6886,670.05325 z " - style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path20659" /> - <g - transform="matrix(0.311242,-6.779685e-2,0,0.342283,1735.572,640.5841)" - style="opacity:1;fill-opacity:1" - id="g20686"> - <g - transform="matrix(1.024827,0,0,1.024827,2.800107,-162.1289)" - style="fill-opacity:1" - id="g3715"> - <path - d="M 181.10184,743.44678 L 179.34895,743.44678 L 176.2814,743.00855 L 172.77562,742.13211 L 169.70807,741.25567 L 166.64052,739.941 L 164.01118,738.18811 L 161.38185,735.997 L 4.9366117,579.55176 L 2.7455019,576.92243 L 0.99261404,574.2931 L -0.32205186,571.22554 L -2.0749397,565.09044 L -2.5131617,561.58466 L -2.5131617,340.28257 L -2.0749397,337.21501 L -1.1984958,333.70924 L -0.32205186,330.64168 L 0.99261404,328.01235 L 2.7455019,324.9448 L 4.9366117,322.31547 L 6.2512776,321.44633 L 160.50541,167.19219 L 161.38185,165.87753 L 166.64052,162.37175 L 169.70807,160.61886 L 172.77562,159.74242 L 176.2814,158.86598 L 179.34895,158.42775 L 400.65105,158.42775 L 403.7186,158.86598 L 407.22438,159.74242 L 410.29193,160.61886 L 412.92126,162.37175 L 415.98881,164.12464 L 418.61815,165.87753 L 419.49459,167.19219 L 573.74872,321.44633 L 575.06339,322.31547 L 577.2545,324.9448 L 579.00739,328.01235 L 580.32205,330.64168 L 581.1985,333.70924 L 582.06764,337.21501 L 582.50586,340.28257 L 582.50586,561.58466 L 582.06764,565.09044 L 580.32205,571.22554 L 579.00739,574.2931 L 577.2545,576.92243 L 575.06339,579.55176 L 418.61815,735.997 L 415.98881,738.18811 L 412.92126,739.941 L 410.29193,741.25567 L 407.22438,742.13211 L 403.7186,743.00855 L 400.65105,743.44678 L 181.10184,743.44678" - style="fill:#fffefe;fill-opacity:1;fill-rule:evenodd;stroke:none" - id="path32" /> - <path - d="M 181.10184,743.44678 L 179.34895,743.44678 M 179.34895,743.44678 L 176.2814,743.00855 M 176.2814,743.00855 L 172.77562,742.13211 M 172.77562,742.13211 L 169.70807,741.25567 M 169.70807,741.25567 L 166.64052,739.941 M 166.64052,739.941 L 164.01118,738.18811 M 164.01118,738.18811 L 161.38185,735.997 M 161.38185,735.997 L 160.50541,735.12056 L 6.2512776,580.86643 L 4.9366117,579.55176 M 4.9366117,579.55176 L 2.7455019,576.92243 M 2.7455019,576.92243 L 0.99261404,574.2931 M 0.99261404,574.2931 L -0.32205186,571.22554 M -0.32205186,571.22554 L -1.1984958,568.15799 L -2.0749397,565.09044 M -2.0749397,565.09044 L -2.5131617,561.58466 M -2.5131617,561.58466 L -2.5131617,559.83177 L -2.5131617,342.03545 L -2.5131617,340.28257 M -2.5131617,340.28257 L -2.0749397,337.21501 M -2.0749397,337.21501 L -1.1984958,333.70924 M -1.1984958,333.70924 L -0.32205186,330.64168 M -0.32205186,330.64168 L 0.99261404,328.01235 M 0.99261404,328.01235 L 2.7455019,324.9448 M 2.7455019,324.9448 L 4.9366117,322.31547 M 4.9366117,322.31547 L 6.2512776,321.43902 M 6.2512776,321.43902 L 160.50541,167.18489 M 160.50541,167.18489 L 161.38185,165.87022 M 161.38185,165.87022 L 164.01118,164.11734 L 166.64052,162.36445 M 166.64052,162.36445 L 169.70807,160.61156 M 169.70807,160.61156 L 172.77562,159.73512 M 172.77562,159.73512 L 176.2814,158.85867 M 176.2814,158.85867 L 179.34895,158.42045 M 179.34895,158.42045 L 181.10184,158.42045 L 398.89816,158.42045 L 400.65105,158.42045 M 400.65105,158.42045 L 403.7186,158.85867 M 403.7186,158.85867 L 407.22438,159.73512 M 407.22438,159.73512 L 410.29193,160.61156 M 410.29193,160.61156 L 412.92126,162.36445 M 412.92126,162.36445 L 415.98881,164.11734 M 415.98881,164.11734 L 418.61815,165.87022 M 418.61815,165.87022 L 419.49459,167.18489 M 419.49459,167.18489 L 573.74872,321.43902 M 573.74872,321.43902 L 575.06339,322.31547 M 575.06339,322.31547 L 577.2545,324.9448 M 577.2545,324.9448 L 579.00739,328.01235 M 579.00739,328.01235 L 580.32205,330.64168 M 580.32205,330.64168 L 581.1985,333.70924 M 581.1985,333.70924 L 582.07494,337.21501 M 582.07494,337.21501 L 582.51316,340.28257 M 582.51316,340.28257 L 582.51316,342.03545 L 582.51316,559.83177 L 582.51316,561.58466 M 582.51316,561.58466 L 582.07494,565.09044 M 582.07494,565.09044 L 581.1985,568.15799 L 580.32205,571.22554 M 580.32205,571.22554 L 579.00739,574.2931 M 579.00739,574.2931 L 577.2545,576.92243 M 577.2545,576.92243 L 575.06339,579.55176 M 575.06339,579.55176 L 573.74872,580.86643 L 419.49459,735.12056 L 418.61815,735.997 M 418.61815,735.997 L 415.98881,738.18811 M 415.98881,738.18811 L 412.92126,739.941 M 412.92126,739.941 L 410.29193,741.25567 M 410.29193,741.25567 L 407.22438,742.13211 M 407.22438,742.13211 L 403.7186,743.00855 M 403.7186,743.00855 L 400.65105,743.44678 M 400.65105,743.44678 L 398.89816,743.44678 M 398.89816,743.44678 L 181.10184,743.44678" - style="fill-opacity:1;stroke:black;stroke-width:0.43822196;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path34" /> - <path - d="M 181.10184,714.0859 L 26.84771,559.83177 L 26.84771,342.03545 L 181.10184,187.78132 L 398.89816,187.78132 L 553.15229,342.03545 L 553.15229,559.83177 L 398.89816,714.0859 L 181.10184,714.0859" - style="fill:#c00;fill-opacity:1;fill-rule:evenodd;stroke:none" - id="path36" /> - <path - d="M 66.287687,494.97492 L 95.210336,494.97492 C 91.711865,515.23538 104.70515,531.59567 125.44765,524.33579 C 132.74405,520.88845 137.84325,514.47418 138.09887,506.47663 C 137.63834,506.99726 142.74281,475.21111 125.88587,465.61405 C 101.82749,456.17037 78.492169,450.72911 70.231685,423.54474 C 65.520798,407.48391 66.309598,377.99887 78.996124,364.823 C 113.28699,326.3325 172.86327,353.31237 166.64052,407.33053 L 137.27964,407.33053 C 137.80551,395.84181 138.30216,384.49186 126.76232,378.40788 C 119.83111,374.63917 108.97051,375.47179 103.53655,381.47543 C 95.005832,389.48029 96.722202,402.21794 97.401446,412.58919 C 100.57855,431.22093 126.70389,431.27936 138.59431,439.32073 C 156.5395,448.71329 166.00509,463.83195 166.64052,484.01937 C 167.75798,511.78073 167.67034,531.12823 142.97653,547.99978 C 104.12085,568.80802 60.598105,541.45566 66.287687,494.97492 z M 212.2156,553.25844 L 212.2156,376.21677 L 177.59607,376.21677 L 177.59607,348.60878 L 276.19601,348.60878 L 276.19601,376.21677 L 241.57647,376.21677 L 241.57647,553.25844 L 212.2156,553.25844 z M 291.09555,505.93047 L 291.09555,392.8692 L 291.53378,386.7341 L 293.28666,381.03721 L 295.47777,375.34032 L 298.54533,369.64344 C 305.35968,357.87718 320.74857,348.36776 334.04131,347.29412 C 363.81849,343.54002 388.87748,366.10845 389.6955,395.93676 L 389.6955,505.93047 L 389.25727,508.99802 L 388.81905,515.13313 L 387.06616,521.26824 L 384.87506,526.96512 L 381.8075,532.22379 C 375.0954,543.78554 359.53122,553.7624 346.31152,554.57311 C 318.01699,558.84577 289.74437,534.87503 291.09555,505.93047 z M 320.0182,505.93047 L 320.0182,395.06031 L 320.45643,392.43098 L 320.89465,389.80165 L 322.20931,387.61054 L 323.08576,385.41943 C 327.85507,379.445 329.90741,377.77246 337.54708,376.21677 C 349.59819,374.79255 360.29811,383.66654 360.33463,395.93676 L 360.33463,507.24514 L 359.8964,509.43625 L 359.45818,512.06558 L 358.58174,514.25669 L 357.26707,516.4478 C 353.14778,522.40031 349.91225,524.16781 342.80575,525.65046 C 331.03949,527.49829 320.10585,517.68943 320.0182,505.93047 z M 418.61815,553.25844 L 418.61815,348.60878 C 459.17559,344.70131 510.79814,343.47428 513.71231,395.93676 C 519.51145,446.9604 502.65451,477.53369 447.97902,473.06382 L 447.97902,553.25844 L 418.61815,553.25844 z M 447.97902,376.21677 C 465.52981,374.66108 484.4683,374.27398 486.54255,395.93676 C 488.88704,433.11259 488.62411,449.56782 447.97902,445.45584 L 447.97902,376.21677" - style="fill:#fffefe;fill-opacity:1;fill-rule:evenodd;stroke:none" - id="path38" /> - </g> - </g> - <path - d="M 418.20647,259.95719 L 418.20647,454.18447 C 418.44183,461.27626 429.26917,462.08577 429.43973,454.18447 L 429.43973,257.42064 L 418.20647,259.95719 z " - style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path20695" /> - <g - transform="matrix(0.236284,-1.664085e-2,0,0.25985,352.9745,108.5806)" - style="opacity:1;fill:#666;fill-opacity:1" - id="g20697"> - <g - transform="matrix(1.024827,0,0,1.024827,2.800107,-162.1289)" - style="fill:#666;fill-opacity:1" - id="g20699"> - <path - d="M 181.10184,743.44678 L 179.34895,743.44678 L 176.2814,743.00855 L 172.77562,742.13211 L 169.70807,741.25567 L 166.64052,739.941 L 164.01118,738.18811 L 161.38185,735.997 L 4.9366117,579.55176 L 2.7455019,576.92243 L 0.99261404,574.2931 L -0.32205186,571.22554 L -2.0749397,565.09044 L -2.5131617,561.58466 L -2.5131617,340.28257 L -2.0749397,337.21501 L -1.1984958,333.70924 L -0.32205186,330.64168 L 0.99261404,328.01235 L 2.7455019,324.9448 L 4.9366117,322.31547 L 6.2512776,321.44633 L 160.50541,167.19219 L 161.38185,165.87753 L 166.64052,162.37175 L 169.70807,160.61886 L 172.77562,159.74242 L 176.2814,158.86598 L 179.34895,158.42775 L 400.65105,158.42775 L 403.7186,158.86598 L 407.22438,159.74242 L 410.29193,160.61886 L 412.92126,162.37175 L 415.98881,164.12464 L 418.61815,165.87753 L 419.49459,167.19219 L 573.74872,321.44633 L 575.06339,322.31547 L 577.2545,324.9448 L 579.00739,328.01235 L 580.32205,330.64168 L 581.1985,333.70924 L 582.06764,337.21501 L 582.50586,340.28257 L 582.50586,561.58466 L 582.06764,565.09044 L 580.32205,571.22554 L 579.00739,574.2931 L 577.2545,576.92243 L 575.06339,579.55176 L 418.61815,735.997 L 415.98881,738.18811 L 412.92126,739.941 L 410.29193,741.25567 L 407.22438,742.13211 L 403.7186,743.00855 L 400.65105,743.44678 L 181.10184,743.44678" - style="fill:#666;fill-opacity:1;fill-rule:evenodd;stroke:none" - id="path20701" /> - <path - d="M 181.10184,743.44678 L 179.34895,743.44678 M 179.34895,743.44678 L 176.2814,743.00855 M 176.2814,743.00855 L 172.77562,742.13211 M 172.77562,742.13211 L 169.70807,741.25567 M 169.70807,741.25567 L 166.64052,739.941 M 166.64052,739.941 L 164.01118,738.18811 M 164.01118,738.18811 L 161.38185,735.997 M 161.38185,735.997 L 160.50541,735.12056 L 6.2512776,580.86643 L 4.9366117,579.55176 M 4.9366117,579.55176 L 2.7455019,576.92243 M 2.7455019,576.92243 L 0.99261404,574.2931 M 0.99261404,574.2931 L -0.32205186,571.22554 M -0.32205186,571.22554 L -1.1984958,568.15799 L -2.0749397,565.09044 M -2.0749397,565.09044 L -2.5131617,561.58466 M -2.5131617,561.58466 L -2.5131617,559.83177 L -2.5131617,342.03545 L -2.5131617,340.28257 M -2.5131617,340.28257 L -2.0749397,337.21501 M -2.0749397,337.21501 L -1.1984958,333.70924 M -1.1984958,333.70924 L -0.32205186,330.64168 M -0.32205186,330.64168 L 0.99261404,328.01235 M 0.99261404,328.01235 L 2.7455019,324.9448 M 2.7455019,324.9448 L 4.9366117,322.31547 M 4.9366117,322.31547 L 6.2512776,321.43902 M 6.2512776,321.43902 L 160.50541,167.18489 M 160.50541,167.18489 L 161.38185,165.87022 M 161.38185,165.87022 L 164.01118,164.11734 L 166.64052,162.36445 M 166.64052,162.36445 L 169.70807,160.61156 M 169.70807,160.61156 L 172.77562,159.73512 M 172.77562,159.73512 L 176.2814,158.85867 M 176.2814,158.85867 L 179.34895,158.42045 M 179.34895,158.42045 L 181.10184,158.42045 L 398.89816,158.42045 L 400.65105,158.42045 M 400.65105,158.42045 L 403.7186,158.85867 M 403.7186,158.85867 L 407.22438,159.73512 M 407.22438,159.73512 L 410.29193,160.61156 M 410.29193,160.61156 L 412.92126,162.36445 M 412.92126,162.36445 L 415.98881,164.11734 M 415.98881,164.11734 L 418.61815,165.87022 M 418.61815,165.87022 L 419.49459,167.18489 M 419.49459,167.18489 L 573.74872,321.43902 M 573.74872,321.43902 L 575.06339,322.31547 M 575.06339,322.31547 L 577.2545,324.9448 M 577.2545,324.9448 L 579.00739,328.01235 M 579.00739,328.01235 L 580.32205,330.64168 M 580.32205,330.64168 L 581.1985,333.70924 M 581.1985,333.70924 L 582.07494,337.21501 M 582.07494,337.21501 L 582.51316,340.28257 M 582.51316,340.28257 L 582.51316,342.03545 L 582.51316,559.83177 L 582.51316,561.58466 M 582.51316,561.58466 L 582.07494,565.09044 M 582.07494,565.09044 L 581.1985,568.15799 L 580.32205,571.22554 M 580.32205,571.22554 L 579.00739,574.2931 M 579.00739,574.2931 L 577.2545,576.92243 M 577.2545,576.92243 L 575.06339,579.55176 M 575.06339,579.55176 L 573.74872,580.86643 L 419.49459,735.12056 L 418.61815,735.997 M 418.61815,735.997 L 415.98881,738.18811 M 415.98881,738.18811 L 412.92126,739.941 M 412.92126,739.941 L 410.29193,741.25567 M 410.29193,741.25567 L 407.22438,742.13211 M 407.22438,742.13211 L 403.7186,743.00855 M 403.7186,743.00855 L 400.65105,743.44678 M 400.65105,743.44678 L 398.89816,743.44678 M 398.89816,743.44678 L 181.10184,743.44678" - style="fill:#666;fill-opacity:1;stroke:black;stroke-width:0.43822196;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path20703" /> - <path - d="M 181.10184,714.0859 L 26.84771,559.83177 L 26.84771,342.03545 L 181.10184,187.78132 L 398.89816,187.78132 L 553.15229,342.03545 L 553.15229,559.83177 L 398.89816,714.0859 L 181.10184,714.0859" - style="fill:#666;fill-opacity:1;fill-rule:evenodd;stroke:none" - id="path20705" /> - <path - d="M 66.287687,494.97492 L 95.210336,494.97492 C 91.711865,515.23538 104.70515,531.59567 125.44765,524.33579 C 132.74405,520.88845 137.84325,514.47418 138.09887,506.47663 C 137.63834,506.99726 142.74281,475.21111 125.88587,465.61405 C 101.82749,456.17037 78.492169,450.72911 70.231685,423.54474 C 65.520798,407.48391 66.309598,377.99887 78.996124,364.823 C 113.28699,326.3325 172.86327,353.31237 166.64052,407.33053 L 137.27964,407.33053 C 137.80551,395.84181 138.30216,384.49186 126.76232,378.40788 C 119.83111,374.63917 108.97051,375.47179 103.53655,381.47543 C 95.005832,389.48029 96.722202,402.21794 97.401446,412.58919 C 100.57855,431.22093 126.70389,431.27936 138.59431,439.32073 C 156.5395,448.71329 166.00509,463.83195 166.64052,484.01937 C 167.75798,511.78073 167.67034,531.12823 142.97653,547.99978 C 104.12085,568.80802 60.598105,541.45566 66.287687,494.97492 z M 212.2156,553.25844 L 212.2156,376.21677 L 177.59607,376.21677 L 177.59607,348.60878 L 276.19601,348.60878 L 276.19601,376.21677 L 241.57647,376.21677 L 241.57647,553.25844 L 212.2156,553.25844 z M 291.09555,505.93047 L 291.09555,392.8692 L 291.53378,386.7341 L 293.28666,381.03721 L 295.47777,375.34032 L 298.54533,369.64344 C 305.35968,357.87718 320.74857,348.36776 334.04131,347.29412 C 363.81849,343.54002 388.87748,366.10845 389.6955,395.93676 L 389.6955,505.93047 L 389.25727,508.99802 L 388.81905,515.13313 L 387.06616,521.26824 L 384.87506,526.96512 L 381.8075,532.22379 C 375.0954,543.78554 359.53122,553.7624 346.31152,554.57311 C 318.01699,558.84577 289.74437,534.87503 291.09555,505.93047 z M 320.0182,505.93047 L 320.0182,395.06031 L 320.45643,392.43098 L 320.89465,389.80165 L 322.20931,387.61054 L 323.08576,385.41943 C 327.85507,379.445 329.90741,377.77246 337.54708,376.21677 C 349.59819,374.79255 360.29811,383.66654 360.33463,395.93676 L 360.33463,507.24514 L 359.8964,509.43625 L 359.45818,512.06558 L 358.58174,514.25669 L 357.26707,516.4478 C 353.14778,522.40031 349.91225,524.16781 342.80575,525.65046 C 331.03949,527.49829 320.10585,517.68943 320.0182,505.93047 z M 418.61815,553.25844 L 418.61815,348.60878 C 459.17559,344.70131 510.79814,343.47428 513.71231,395.93676 C 519.51145,446.9604 502.65451,477.53369 447.97902,473.06382 L 447.97902,553.25844 L 418.61815,553.25844 z M 447.97902,376.21677 C 465.52981,374.66108 484.4683,374.27398 486.54255,395.93676 C 488.88704,433.11259 488.62411,449.56782 447.97902,445.45584 L 447.97902,376.21677" - style="fill:#666;fill-opacity:1;fill-rule:evenodd;stroke:none" - id="path20707" /> - </g> - </g> - </g> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + version="1.0" + width="2120" + height="1480" + id="svg2"> + <defs + id="defs4" /> + <g + id="layer1"> + <path + d="M 5.8511569,1209.3298 L 752.90068,1044.6846 C 821.85575,1049.0563 890.78924,1043.7344 954.9844,1109.7472 L 1203.625,1428.1397 L 2112.1739,1428.1397 L 1625.9879,964.09236 C 1619.8778,945.46974 1578.9831,899.69882 1709.5018,834.72356 L 2111.6852,749.79728 L 2111.1299,326.18435 L 1270.6955,491.07993 C 1183.3415,507.37092 1120.1152,487.928 1063.2714,442.28559 L 665.89417,61.365324 L 153.37616,61.920642 L 519.18908,530.98694 C 535.60752,632.32446 482.35823,623.99379 455.32724,641.30455 L 6.7044507,726.58227 L 5.8511569,1209.3298 z " + style="fill:#999;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path20653" /> + <path + d="M 669.73692,61.451255 L 1058.7669,440.28434 C 1130.9873,495.12921 1202.0039,505.16122 1280.6914,487.66721 L 2113.2762,329.27303 L 2111.9224,310.31988 L 2113.2762,237.21487 L 1254.9693,387.48628 C 1191.9072,399.32987 1171.252,371.82695 1143.958,349.57998 L 814.25389,61.112006 L 669.73692,61.451255 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path20673" /> + <path + d="M 4.2107051,726.28379 L 468.79183,636.45541 C 518.84974,615.19224 547.038,560.21338 505.28461,512.9414 L 153.5373,61.540732 L 39.848262,61.113122 L 352.96475,511.17561 C 368.09248,541.06354 348.63939,541.54489 336.30806,545.95795 L 5.7350105,602.89051 L 4.2107051,726.28379 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path20669" /> + <path + d="M 6.0358396,1210.6334 L 740.29999,1051.2124 C 835.52502,1036.7363 902.83498,1061.9289 952.86137,1111.6824 L 1203.8578,1428.2455 L 963.80995,1428.2455 L 828.25642,1227.1253 C 803.53034,1199.5785 784.0002,1202.5425 756.79182,1201.4713 L 5.543252,1368.6686 L 6.0358396,1210.6334 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path20665" /> + <path + d="M 2112.2223,1426.0445 L 1626.8435,966.67558 C 1619.6963,927.91927 1586.3666,888.95704 1701.0781,840.3188 L 2111.7377,750.2896 L 2112.7206,907.9826 L 1926.9409,949.30153 C 1898.2113,955.95188 1889.8154,969.61383 1911.1463,993.5264 L 2113.0736,1164.756 L 2112.2223,1426.0445 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path20661" /> + <path + d="M 1822.7127,825.10324 L 1822.7127,1093.061 C 1823.0374,1102.8449 1837.9749,1103.9617 1838.2102,1093.061 L 1838.2102,821.60378 L 1822.7127,825.10324 z " + style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path20693" /> + <path + d="M 963.05048,1426.9953 L 831.7204,1230.7382 C 812.17567,1205.8354 779.39276,1197.3513 742.69834,1205.3034 L 7.047661,1371.0766" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path10893" /> + <path + d="M 2112.8823,1164.6443 L 1907.6156,991.65041 C 1894.0156,979.51285 1894.3357,957.01084 1922.8765,948.72336 L 2112.927,907.25721" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path10895" /> + <path + d="M 2111.6051,237.35139 L 1246.7282,388.29689 C 1222.1329,395.47284 1186.1791,385.0278 1161.0828,364.622 L 810.21016,58.664559 L 812.5793,61.033703" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path12667" /> + <path + d="M 5.5374741,603.45926 L 337.2074,546.99544 C 353.44119,543.2149 363.22543,525.90431 353.30235,510.43034 L 40.646614,62.058494" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path13554" /> + <path + d="M 488.21128,488.91711 L 509.40796,514.85168 L 788.12333,474.22584 L 764.47867,447.3141 L 414.67393,61.750547 L 387.52911,61.789471 L 735.52187,451.65593 L 488.21128,488.91711 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path20657" /> + <path + d="M 6.6785944,711.21958 L 455.62855,624.39785 C 506.62586,610.86833 543.88201,563.58495 510.54144,518.28241 L 153.60767,62.653858" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path14441" /> + <path + d="M 6.3455378,726.69401 L 457.78523,640.576 C 481.35093,633.76289 541.02105,606.90565 519.42759,532.70186" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path15328" /> + <path + d="M 683.34238,61.523157 L 1090.2402,444.20542 C 1130.694,477.28862 1217.9086,489.88212 1265.8521,474.40197 L 2112.7554,312.73918" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path16215" /> + <path + d="M 668.46062,62.16535 L 1058.7327,439.26009 C 1134.7571,506.06853 1218.8083,499.58914 1298.3207,485.6625 L 2110.8365,329.40947" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path17102" /> + <path + d="M 2112.5094,1428.3059 L 1634.1733,974.01675 C 1620.3797,960.87572 1613.7724,940.96987 1617.7376,914.10614" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path17989" /> + <path + d="M 2111.9455,1412.7238 L 1621.8398,941.99936 C 1596.5523,894.63082 1659.4242,851.864 1708.7018,837.72203 L 2112.7337,749.55296" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path18877" /> + <path + d="M 1204.6629,1426.1197 L 954.46203,1108.9391 C 914.25756,1063.8921 826.63775,1036.6524 728.40523,1051.2225 L 4.8097191,1210.6557" + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path19765" /> + <path + d="M 1355.0465,1090.3654 L 1389.9275,1127.2078 L 1705.4653,1057.9423 L 1669.5465,1022.8478 L 1355.0465,1090.3654 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path20655" /> + <path + d="M 1546.6886,670.05325 L 1524.164,645.65161 L 2111.6804,518.01226 L 2111.6804,546.168 L 1546.6886,670.05325 z " + style="fill:white;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path20659" /> + <g + transform="matrix(0.311242,-6.779685e-2,0,0.342283,1735.572,640.5841)" + style="opacity:1;fill-opacity:1" + id="g20686"> + <g + transform="matrix(1.024827,0,0,1.024827,2.800107,-162.1289)" + style="fill-opacity:1" + id="g3715"> + <path + d="M 181.10184,743.44678 L 179.34895,743.44678 L 176.2814,743.00855 L 172.77562,742.13211 L 169.70807,741.25567 L 166.64052,739.941 L 164.01118,738.18811 L 161.38185,735.997 L 4.9366117,579.55176 L 2.7455019,576.92243 L 0.99261404,574.2931 L -0.32205186,571.22554 L -2.0749397,565.09044 L -2.5131617,561.58466 L -2.5131617,340.28257 L -2.0749397,337.21501 L -1.1984958,333.70924 L -0.32205186,330.64168 L 0.99261404,328.01235 L 2.7455019,324.9448 L 4.9366117,322.31547 L 6.2512776,321.44633 L 160.50541,167.19219 L 161.38185,165.87753 L 166.64052,162.37175 L 169.70807,160.61886 L 172.77562,159.74242 L 176.2814,158.86598 L 179.34895,158.42775 L 400.65105,158.42775 L 403.7186,158.86598 L 407.22438,159.74242 L 410.29193,160.61886 L 412.92126,162.37175 L 415.98881,164.12464 L 418.61815,165.87753 L 419.49459,167.19219 L 573.74872,321.44633 L 575.06339,322.31547 L 577.2545,324.9448 L 579.00739,328.01235 L 580.32205,330.64168 L 581.1985,333.70924 L 582.06764,337.21501 L 582.50586,340.28257 L 582.50586,561.58466 L 582.06764,565.09044 L 580.32205,571.22554 L 579.00739,574.2931 L 577.2545,576.92243 L 575.06339,579.55176 L 418.61815,735.997 L 415.98881,738.18811 L 412.92126,739.941 L 410.29193,741.25567 L 407.22438,742.13211 L 403.7186,743.00855 L 400.65105,743.44678 L 181.10184,743.44678" + style="fill:#fffefe;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path32" /> + <path + d="M 181.10184,743.44678 L 179.34895,743.44678 M 179.34895,743.44678 L 176.2814,743.00855 M 176.2814,743.00855 L 172.77562,742.13211 M 172.77562,742.13211 L 169.70807,741.25567 M 169.70807,741.25567 L 166.64052,739.941 M 166.64052,739.941 L 164.01118,738.18811 M 164.01118,738.18811 L 161.38185,735.997 M 161.38185,735.997 L 160.50541,735.12056 L 6.2512776,580.86643 L 4.9366117,579.55176 M 4.9366117,579.55176 L 2.7455019,576.92243 M 2.7455019,576.92243 L 0.99261404,574.2931 M 0.99261404,574.2931 L -0.32205186,571.22554 M -0.32205186,571.22554 L -1.1984958,568.15799 L -2.0749397,565.09044 M -2.0749397,565.09044 L -2.5131617,561.58466 M -2.5131617,561.58466 L -2.5131617,559.83177 L -2.5131617,342.03545 L -2.5131617,340.28257 M -2.5131617,340.28257 L -2.0749397,337.21501 M -2.0749397,337.21501 L -1.1984958,333.70924 M -1.1984958,333.70924 L -0.32205186,330.64168 M -0.32205186,330.64168 L 0.99261404,328.01235 M 0.99261404,328.01235 L 2.7455019,324.9448 M 2.7455019,324.9448 L 4.9366117,322.31547 M 4.9366117,322.31547 L 6.2512776,321.43902 M 6.2512776,321.43902 L 160.50541,167.18489 M 160.50541,167.18489 L 161.38185,165.87022 M 161.38185,165.87022 L 164.01118,164.11734 L 166.64052,162.36445 M 166.64052,162.36445 L 169.70807,160.61156 M 169.70807,160.61156 L 172.77562,159.73512 M 172.77562,159.73512 L 176.2814,158.85867 M 176.2814,158.85867 L 179.34895,158.42045 M 179.34895,158.42045 L 181.10184,158.42045 L 398.89816,158.42045 L 400.65105,158.42045 M 400.65105,158.42045 L 403.7186,158.85867 M 403.7186,158.85867 L 407.22438,159.73512 M 407.22438,159.73512 L 410.29193,160.61156 M 410.29193,160.61156 L 412.92126,162.36445 M 412.92126,162.36445 L 415.98881,164.11734 M 415.98881,164.11734 L 418.61815,165.87022 M 418.61815,165.87022 L 419.49459,167.18489 M 419.49459,167.18489 L 573.74872,321.43902 M 573.74872,321.43902 L 575.06339,322.31547 M 575.06339,322.31547 L 577.2545,324.9448 M 577.2545,324.9448 L 579.00739,328.01235 M 579.00739,328.01235 L 580.32205,330.64168 M 580.32205,330.64168 L 581.1985,333.70924 M 581.1985,333.70924 L 582.07494,337.21501 M 582.07494,337.21501 L 582.51316,340.28257 M 582.51316,340.28257 L 582.51316,342.03545 L 582.51316,559.83177 L 582.51316,561.58466 M 582.51316,561.58466 L 582.07494,565.09044 M 582.07494,565.09044 L 581.1985,568.15799 L 580.32205,571.22554 M 580.32205,571.22554 L 579.00739,574.2931 M 579.00739,574.2931 L 577.2545,576.92243 M 577.2545,576.92243 L 575.06339,579.55176 M 575.06339,579.55176 L 573.74872,580.86643 L 419.49459,735.12056 L 418.61815,735.997 M 418.61815,735.997 L 415.98881,738.18811 M 415.98881,738.18811 L 412.92126,739.941 M 412.92126,739.941 L 410.29193,741.25567 M 410.29193,741.25567 L 407.22438,742.13211 M 407.22438,742.13211 L 403.7186,743.00855 M 403.7186,743.00855 L 400.65105,743.44678 M 400.65105,743.44678 L 398.89816,743.44678 M 398.89816,743.44678 L 181.10184,743.44678" + style="fill-opacity:1;stroke:black;stroke-width:0.43822196;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path34" /> + <path + d="M 181.10184,714.0859 L 26.84771,559.83177 L 26.84771,342.03545 L 181.10184,187.78132 L 398.89816,187.78132 L 553.15229,342.03545 L 553.15229,559.83177 L 398.89816,714.0859 L 181.10184,714.0859" + style="fill:#c00;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path36" /> + <path + d="M 66.287687,494.97492 L 95.210336,494.97492 C 91.711865,515.23538 104.70515,531.59567 125.44765,524.33579 C 132.74405,520.88845 137.84325,514.47418 138.09887,506.47663 C 137.63834,506.99726 142.74281,475.21111 125.88587,465.61405 C 101.82749,456.17037 78.492169,450.72911 70.231685,423.54474 C 65.520798,407.48391 66.309598,377.99887 78.996124,364.823 C 113.28699,326.3325 172.86327,353.31237 166.64052,407.33053 L 137.27964,407.33053 C 137.80551,395.84181 138.30216,384.49186 126.76232,378.40788 C 119.83111,374.63917 108.97051,375.47179 103.53655,381.47543 C 95.005832,389.48029 96.722202,402.21794 97.401446,412.58919 C 100.57855,431.22093 126.70389,431.27936 138.59431,439.32073 C 156.5395,448.71329 166.00509,463.83195 166.64052,484.01937 C 167.75798,511.78073 167.67034,531.12823 142.97653,547.99978 C 104.12085,568.80802 60.598105,541.45566 66.287687,494.97492 z M 212.2156,553.25844 L 212.2156,376.21677 L 177.59607,376.21677 L 177.59607,348.60878 L 276.19601,348.60878 L 276.19601,376.21677 L 241.57647,376.21677 L 241.57647,553.25844 L 212.2156,553.25844 z M 291.09555,505.93047 L 291.09555,392.8692 L 291.53378,386.7341 L 293.28666,381.03721 L 295.47777,375.34032 L 298.54533,369.64344 C 305.35968,357.87718 320.74857,348.36776 334.04131,347.29412 C 363.81849,343.54002 388.87748,366.10845 389.6955,395.93676 L 389.6955,505.93047 L 389.25727,508.99802 L 388.81905,515.13313 L 387.06616,521.26824 L 384.87506,526.96512 L 381.8075,532.22379 C 375.0954,543.78554 359.53122,553.7624 346.31152,554.57311 C 318.01699,558.84577 289.74437,534.87503 291.09555,505.93047 z M 320.0182,505.93047 L 320.0182,395.06031 L 320.45643,392.43098 L 320.89465,389.80165 L 322.20931,387.61054 L 323.08576,385.41943 C 327.85507,379.445 329.90741,377.77246 337.54708,376.21677 C 349.59819,374.79255 360.29811,383.66654 360.33463,395.93676 L 360.33463,507.24514 L 359.8964,509.43625 L 359.45818,512.06558 L 358.58174,514.25669 L 357.26707,516.4478 C 353.14778,522.40031 349.91225,524.16781 342.80575,525.65046 C 331.03949,527.49829 320.10585,517.68943 320.0182,505.93047 z M 418.61815,553.25844 L 418.61815,348.60878 C 459.17559,344.70131 510.79814,343.47428 513.71231,395.93676 C 519.51145,446.9604 502.65451,477.53369 447.97902,473.06382 L 447.97902,553.25844 L 418.61815,553.25844 z M 447.97902,376.21677 C 465.52981,374.66108 484.4683,374.27398 486.54255,395.93676 C 488.88704,433.11259 488.62411,449.56782 447.97902,445.45584 L 447.97902,376.21677" + style="fill:#fffefe;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path38" /> + </g> + </g> + <path + d="M 418.20647,259.95719 L 418.20647,454.18447 C 418.44183,461.27626 429.26917,462.08577 429.43973,454.18447 L 429.43973,257.42064 L 418.20647,259.95719 z " + style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="path20695" /> + <g + transform="matrix(0.236284,-1.664085e-2,0,0.25985,352.9745,108.5806)" + style="opacity:1;fill:#666;fill-opacity:1" + id="g20697"> + <g + transform="matrix(1.024827,0,0,1.024827,2.800107,-162.1289)" + style="fill:#666;fill-opacity:1" + id="g20699"> + <path + d="M 181.10184,743.44678 L 179.34895,743.44678 L 176.2814,743.00855 L 172.77562,742.13211 L 169.70807,741.25567 L 166.64052,739.941 L 164.01118,738.18811 L 161.38185,735.997 L 4.9366117,579.55176 L 2.7455019,576.92243 L 0.99261404,574.2931 L -0.32205186,571.22554 L -2.0749397,565.09044 L -2.5131617,561.58466 L -2.5131617,340.28257 L -2.0749397,337.21501 L -1.1984958,333.70924 L -0.32205186,330.64168 L 0.99261404,328.01235 L 2.7455019,324.9448 L 4.9366117,322.31547 L 6.2512776,321.44633 L 160.50541,167.19219 L 161.38185,165.87753 L 166.64052,162.37175 L 169.70807,160.61886 L 172.77562,159.74242 L 176.2814,158.86598 L 179.34895,158.42775 L 400.65105,158.42775 L 403.7186,158.86598 L 407.22438,159.74242 L 410.29193,160.61886 L 412.92126,162.37175 L 415.98881,164.12464 L 418.61815,165.87753 L 419.49459,167.19219 L 573.74872,321.44633 L 575.06339,322.31547 L 577.2545,324.9448 L 579.00739,328.01235 L 580.32205,330.64168 L 581.1985,333.70924 L 582.06764,337.21501 L 582.50586,340.28257 L 582.50586,561.58466 L 582.06764,565.09044 L 580.32205,571.22554 L 579.00739,574.2931 L 577.2545,576.92243 L 575.06339,579.55176 L 418.61815,735.997 L 415.98881,738.18811 L 412.92126,739.941 L 410.29193,741.25567 L 407.22438,742.13211 L 403.7186,743.00855 L 400.65105,743.44678 L 181.10184,743.44678" + style="fill:#666;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path20701" /> + <path + d="M 181.10184,743.44678 L 179.34895,743.44678 M 179.34895,743.44678 L 176.2814,743.00855 M 176.2814,743.00855 L 172.77562,742.13211 M 172.77562,742.13211 L 169.70807,741.25567 M 169.70807,741.25567 L 166.64052,739.941 M 166.64052,739.941 L 164.01118,738.18811 M 164.01118,738.18811 L 161.38185,735.997 M 161.38185,735.997 L 160.50541,735.12056 L 6.2512776,580.86643 L 4.9366117,579.55176 M 4.9366117,579.55176 L 2.7455019,576.92243 M 2.7455019,576.92243 L 0.99261404,574.2931 M 0.99261404,574.2931 L -0.32205186,571.22554 M -0.32205186,571.22554 L -1.1984958,568.15799 L -2.0749397,565.09044 M -2.0749397,565.09044 L -2.5131617,561.58466 M -2.5131617,561.58466 L -2.5131617,559.83177 L -2.5131617,342.03545 L -2.5131617,340.28257 M -2.5131617,340.28257 L -2.0749397,337.21501 M -2.0749397,337.21501 L -1.1984958,333.70924 M -1.1984958,333.70924 L -0.32205186,330.64168 M -0.32205186,330.64168 L 0.99261404,328.01235 M 0.99261404,328.01235 L 2.7455019,324.9448 M 2.7455019,324.9448 L 4.9366117,322.31547 M 4.9366117,322.31547 L 6.2512776,321.43902 M 6.2512776,321.43902 L 160.50541,167.18489 M 160.50541,167.18489 L 161.38185,165.87022 M 161.38185,165.87022 L 164.01118,164.11734 L 166.64052,162.36445 M 166.64052,162.36445 L 169.70807,160.61156 M 169.70807,160.61156 L 172.77562,159.73512 M 172.77562,159.73512 L 176.2814,158.85867 M 176.2814,158.85867 L 179.34895,158.42045 M 179.34895,158.42045 L 181.10184,158.42045 L 398.89816,158.42045 L 400.65105,158.42045 M 400.65105,158.42045 L 403.7186,158.85867 M 403.7186,158.85867 L 407.22438,159.73512 M 407.22438,159.73512 L 410.29193,160.61156 M 410.29193,160.61156 L 412.92126,162.36445 M 412.92126,162.36445 L 415.98881,164.11734 M 415.98881,164.11734 L 418.61815,165.87022 M 418.61815,165.87022 L 419.49459,167.18489 M 419.49459,167.18489 L 573.74872,321.43902 M 573.74872,321.43902 L 575.06339,322.31547 M 575.06339,322.31547 L 577.2545,324.9448 M 577.2545,324.9448 L 579.00739,328.01235 M 579.00739,328.01235 L 580.32205,330.64168 M 580.32205,330.64168 L 581.1985,333.70924 M 581.1985,333.70924 L 582.07494,337.21501 M 582.07494,337.21501 L 582.51316,340.28257 M 582.51316,340.28257 L 582.51316,342.03545 L 582.51316,559.83177 L 582.51316,561.58466 M 582.51316,561.58466 L 582.07494,565.09044 M 582.07494,565.09044 L 581.1985,568.15799 L 580.32205,571.22554 M 580.32205,571.22554 L 579.00739,574.2931 M 579.00739,574.2931 L 577.2545,576.92243 M 577.2545,576.92243 L 575.06339,579.55176 M 575.06339,579.55176 L 573.74872,580.86643 L 419.49459,735.12056 L 418.61815,735.997 M 418.61815,735.997 L 415.98881,738.18811 M 415.98881,738.18811 L 412.92126,739.941 M 412.92126,739.941 L 410.29193,741.25567 M 410.29193,741.25567 L 407.22438,742.13211 M 407.22438,742.13211 L 403.7186,743.00855 M 403.7186,743.00855 L 400.65105,743.44678 M 400.65105,743.44678 L 398.89816,743.44678 M 398.89816,743.44678 L 181.10184,743.44678" + style="fill:#666;fill-opacity:1;stroke:black;stroke-width:0.43822196;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path20703" /> + <path + d="M 181.10184,714.0859 L 26.84771,559.83177 L 26.84771,342.03545 L 181.10184,187.78132 L 398.89816,187.78132 L 553.15229,342.03545 L 553.15229,559.83177 L 398.89816,714.0859 L 181.10184,714.0859" + style="fill:#666;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path20705" /> + <path + d="M 66.287687,494.97492 L 95.210336,494.97492 C 91.711865,515.23538 104.70515,531.59567 125.44765,524.33579 C 132.74405,520.88845 137.84325,514.47418 138.09887,506.47663 C 137.63834,506.99726 142.74281,475.21111 125.88587,465.61405 C 101.82749,456.17037 78.492169,450.72911 70.231685,423.54474 C 65.520798,407.48391 66.309598,377.99887 78.996124,364.823 C 113.28699,326.3325 172.86327,353.31237 166.64052,407.33053 L 137.27964,407.33053 C 137.80551,395.84181 138.30216,384.49186 126.76232,378.40788 C 119.83111,374.63917 108.97051,375.47179 103.53655,381.47543 C 95.005832,389.48029 96.722202,402.21794 97.401446,412.58919 C 100.57855,431.22093 126.70389,431.27936 138.59431,439.32073 C 156.5395,448.71329 166.00509,463.83195 166.64052,484.01937 C 167.75798,511.78073 167.67034,531.12823 142.97653,547.99978 C 104.12085,568.80802 60.598105,541.45566 66.287687,494.97492 z M 212.2156,553.25844 L 212.2156,376.21677 L 177.59607,376.21677 L 177.59607,348.60878 L 276.19601,348.60878 L 276.19601,376.21677 L 241.57647,376.21677 L 241.57647,553.25844 L 212.2156,553.25844 z M 291.09555,505.93047 L 291.09555,392.8692 L 291.53378,386.7341 L 293.28666,381.03721 L 295.47777,375.34032 L 298.54533,369.64344 C 305.35968,357.87718 320.74857,348.36776 334.04131,347.29412 C 363.81849,343.54002 388.87748,366.10845 389.6955,395.93676 L 389.6955,505.93047 L 389.25727,508.99802 L 388.81905,515.13313 L 387.06616,521.26824 L 384.87506,526.96512 L 381.8075,532.22379 C 375.0954,543.78554 359.53122,553.7624 346.31152,554.57311 C 318.01699,558.84577 289.74437,534.87503 291.09555,505.93047 z M 320.0182,505.93047 L 320.0182,395.06031 L 320.45643,392.43098 L 320.89465,389.80165 L 322.20931,387.61054 L 323.08576,385.41943 C 327.85507,379.445 329.90741,377.77246 337.54708,376.21677 C 349.59819,374.79255 360.29811,383.66654 360.33463,395.93676 L 360.33463,507.24514 L 359.8964,509.43625 L 359.45818,512.06558 L 358.58174,514.25669 L 357.26707,516.4478 C 353.14778,522.40031 349.91225,524.16781 342.80575,525.65046 C 331.03949,527.49829 320.10585,517.68943 320.0182,505.93047 z M 418.61815,553.25844 L 418.61815,348.60878 C 459.17559,344.70131 510.79814,343.47428 513.71231,395.93676 C 519.51145,446.9604 502.65451,477.53369 447.97902,473.06382 L 447.97902,553.25844 L 418.61815,553.25844 z M 447.97902,376.21677 C 465.52981,374.66108 484.4683,374.27398 486.54255,395.93676 C 488.88704,433.11259 488.62411,449.56782 447.97902,445.45584 L 447.97902,376.21677" + style="fill:#666;fill-opacity:1;fill-rule:evenodd;stroke:none" + id="path20707" /> + </g> + </g> + </g> +</svg> diff --git a/content/html/_images/TownBegin_310.svg b/content/html/_images/TownBegin_310.svg index c4c74891630976caecae1c0a5087b4220aea363c..e2d2cdffa0c75354dd2295c7a78d187878c57203 100644 --- a/content/html/_images/TownBegin_310.svg +++ b/content/html/_images/TownBegin_310.svg @@ -1,53 +1,53 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 900 600" - height="600" - width="900" - xml:space="preserve" - version="1.1" - id="svg3650"><metadata - id="metadata3656"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs3654" /><g - transform="matrix(1.25,0,0,-1.25,0,600)" - id="g3658"><g - id="g3660"><path - id="path3662" - style="fill:#f0c900;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 30,480 c 0,0 -29.977,0.008 -30,-30 L 0,30 C 0,30 -0.082,0 30,0 l 660,0 c 30.082,0 30,30 30,30 l 0,420 c -0.023,30.008 -30,30 -30,30 l -660,0 z" /><path - id="path3664" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="M 30,472 C 30,472 8.012,471.961 8,450 L 8,30 C 8,30 7.992,7.98 30,8 l 660.074,0 c 22.008,-0.02 22,22 22,22 l 0,420 c -0.011,21.961 -22,22 -22,22 L 30,472 Z m 0,-12 660.074,0 c 0,0 9.942,-0.004 9.961,-10 0.891,-137.652 0.176,-420 0.176,-420 -0.035,-9.73 -10.137,-10 -10.137,-10 L 30,20 c 0,0 -10.102,0.27 -10.141,10 0,0 -0.711,282.348 0.18,420 0.016,9.996 9.961,10 9.961,10 z" /><path - id="path3666" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 82.246,122.133 0,56.601 8.586,0 0,-29.175 0.195,0 23.27,29.175 10.215,0 -18.141,-22.336 20.047,-34.265 -10.18,0 -15.461,27.66 -9.945,-10.41 0,-17.25 -8.586,0 z m 51.817,0 0,40.324 8.117,0 0,-4.312 0.156,0 c 2.512,3.187 6.008,4.781 10.488,4.781 2.953,0 5.762,-1.039 8.43,-3.11 l -5.867,-6.992 c -1.758,1.321 -3.547,1.981 -5.36,1.981 -1.996,0 -3.8,-0.668 -5.418,-2 -1.621,-1.336 -2.429,-3.477 -2.429,-6.43 l 0,-24.242 -8.117,0 z m 64.476,17.094 -25.094,0 c 0,-3.317 0.899,-5.801 2.7,-7.461 1.8,-1.657 4.097,-2.485 6.894,-2.485 3.34,0 6.293,1.293 8.859,3.883 l 5.864,-5.008 c -1.992,-2.332 -4.239,-3.996 -6.739,-4.992 -2.5,-1 -5.109,-1.496 -7.828,-1.496 -4.144,0 -8.16,1.34 -12.043,4.02 -3.886,2.679 -5.828,8.164 -5.828,16.453 0,7.847 1.793,13.273 5.379,16.277 3.59,3.004 7.336,4.508 11.25,4.508 4.426,0 8.297,-1.535 11.613,-4.606 3.317,-3.07 4.973,-7.207 4.973,-12.41 l 0,-6.683 z m -25.094,6.683 17.016,0 c -0.133,3.028 -0.984,5.348 -2.566,6.953 -1.579,1.606 -3.559,2.407 -5.942,2.407 -2.41,0 -4.41,-0.801 -6.004,-2.407 -1.594,-1.605 -2.429,-3.925 -2.504,-6.953 z m 36.196,-23.777 0,40.324 8.121,0 0,-40.324 -8.121,0 z m 0,48.484 0,8.117 8.121,0 0,-8.117 -8.121,0 z m 16.734,-41.762 5.672,5.594 c 3.523,-3.445 7.758,-5.168 12.703,-5.168 2.305,0 4.207,0.434 5.711,1.301 1.504,0.867 2.254,2.156 2.254,3.867 0,2.356 -1.645,3.676 -4.934,3.961 l -7.148,0.66 c -3.34,0.258 -6.113,1.36 -8.313,3.301 -2.203,1.945 -3.304,4.652 -3.304,8.121 0,4.094 1.437,7.188 4.312,9.285 2.875,2.098 6.449,3.149 10.723,3.149 3.523,0 6.539,-0.5 9.051,-1.496 2.511,-1 4.765,-2.325 6.761,-3.985 l -5.011,-5.902 c -1.606,1.086 -3.266,1.98 -4.973,2.68 -1.711,0.699 -3.652,1.047 -5.828,1.047 -2.59,0 -4.391,-0.457 -5.399,-1.379 -1.011,-0.918 -1.515,-2.078 -1.515,-3.477 0,-0.879 0.375,-1.695 1.125,-2.445 0.75,-0.754 2.148,-1.207 4.195,-1.36 l 6.684,-0.468 c 4.168,-0.286 7.16,-1.575 8.972,-3.864 1.813,-2.293 2.719,-5.031 2.719,-8.218 0,-3.961 -1.617,-7.02 -4.855,-9.168 -3.239,-2.149 -7.188,-3.223 -11.848,-3.223 -6.707,0 -12.625,2.395 -17.754,7.187 z" /><path - id="path3668" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 299.816,128.934 5.672,6.449 c 2.125,-1.707 4.575,-3.082 7.344,-4.117 2.77,-1.036 5.672,-1.555 8.703,-1.555 3.496,0 6.238,0.727 8.235,2.176 1.996,1.453 2.992,3.355 2.992,5.711 0,4.457 -2.461,7.007 -7.383,7.652 -1.293,0.156 -2.5,0.313 -3.613,0.469 -1.114,0.156 -2.407,0.336 -3.883,0.543 -4.895,0.672 -8.625,2.465 -11.188,5.379 -2.566,2.914 -3.847,6.429 -3.847,10.547 0,4.82 1.613,8.781 4.836,11.89 3.226,3.106 7.765,4.66 13.617,4.66 3.496,0 6.785,-0.558 9.867,-1.672 3.082,-1.113 5.918,-2.523 8.508,-4.234 l -4.778,-7.07 c -2.074,1.297 -4.3,2.343 -6.683,3.148 -2.383,0.801 -4.817,1.203 -7.301,1.203 -2.644,0 -4.883,-0.672 -6.723,-2.019 -1.839,-1.348 -2.757,-3.367 -2.757,-6.059 0,-1.605 0.621,-3.109 1.863,-4.508 1.246,-1.398 3.305,-2.316 6.18,-2.757 0.75,-0.129 1.656,-0.266 2.718,-0.411 1.063,-0.14 2.278,-0.289 3.653,-0.445 5.281,-0.648 9.187,-2.562 11.711,-5.75 2.523,-3.184 3.789,-6.707 3.789,-10.566 0,-5.203 -1.801,-9.246 -5.403,-12.121 -3.597,-2.875 -8.429,-4.313 -14.488,-4.313 -8.519,0 -15.734,2.59 -21.641,7.77 z m 52.707,33.023 0,12.234 8.122,0 0,-12.234 5.902,0 0,-6.215 -5.902,0 0,-23.465 c 0,-2.019 0.957,-3.031 2.875,-3.031 l 3.027,0 0,-7.613 -4.234,0 c -2.821,0 -5.161,0.855 -7.012,2.562 -1.852,1.711 -2.778,4.157 -2.778,7.344 l 0,24.203 -4.039,0 0,6.215 4.039,0 z m 55.157,-23.23 -25.098,0 c 0,-3.317 0.902,-5.801 2.699,-7.461 1.801,-1.657 4.102,-2.485 6.899,-2.485 3.34,0 6.293,1.293 8.855,3.883 l 5.867,-5.012 c -1.996,-2.328 -4.242,-3.992 -6.742,-4.992 -2.496,-0.996 -5.105,-1.496 -7.828,-1.496 -4.141,0 -8.156,1.344 -12.043,4.024 -3.883,2.679 -5.824,8.164 -5.824,16.453 0,7.843 1.793,13.269 5.379,16.273 3.586,3.008 7.336,4.508 11.246,4.508 4.43,0 8.301,-1.535 11.617,-4.602 3.313,-3.07 4.973,-7.207 4.973,-12.414 l 0,-6.679 z m -25.098,6.679 17.016,0 c -0.129,3.032 -0.985,5.348 -2.563,6.953 -1.582,1.606 -3.562,2.411 -5.945,2.411 -2.406,0 -4.41,-0.805 -6,-2.411 -1.594,-1.605 -2.43,-3.921 -2.508,-6.953 z m 36.199,-23.773 0,40.324 8.117,0 0,-40.324 -8.117,0 z m 0,48.48 0,8.121 8.117,0 0,-8.121 -8.117,0 z m 21.199,-48.48 0,40.324 8.122,0 0,-4.312 0.152,0 c 2.512,3.183 6.008,4.777 10.488,4.777 3.137,0 6.16,-1.192 9.074,-3.574 2.911,-2.383 4.368,-5.852 4.368,-10.41 l 0,-26.805 -8.118,0 0,24.008 c 0,2.718 -0.757,4.843 -2.273,6.371 -1.516,1.527 -3.398,2.293 -5.652,2.293 -2.332,0 -4.254,-0.766 -5.77,-2.293 -1.516,-1.528 -2.269,-3.653 -2.269,-6.371 l 0,-24.008 -8.122,0 z m 45.055,0 0,56.601 8.117,0 0,-20.589 c 1.504,1.421 3.09,2.578 4.758,3.457 1.672,0.878 3.555,1.32 5.653,1.32 2.46,0 4.585,-0.5 6.371,-1.496 1.789,-0.996 3.265,-2.246 4.429,-3.75 1.114,-1.449 1.871,-3.137 2.274,-5.067 0.402,-1.929 0.601,-5.355 0.601,-10.277 0,-4.973 -0.199,-8.434 -0.601,-10.391 -0.403,-1.957 -1.16,-3.644 -2.274,-5.07 -1.164,-1.527 -2.64,-2.777 -4.429,-3.75 -1.786,-0.969 -3.911,-1.457 -6.371,-1.457 -4.141,0 -7.614,1.555 -10.411,4.664 l 0,-4.195 -8.117,0 z m 16.082,32.672 c -3.808,0 -6.086,-1.364 -6.836,-4.082 -0.754,-2.719 -1.129,-5.516 -1.129,-8.391 0,-2.953 0.375,-5.789 1.129,-8.508 0.75,-2.719 3.028,-4.078 6.836,-4.078 3.809,0 6.094,1.309 6.856,3.922 0.765,2.617 1.148,5.504 1.148,8.664 0,3.082 -0.383,5.93 -1.148,8.547 -0.762,2.617 -3.047,3.926 -6.856,3.926 z m 27.571,-19.153 0,26.805 8.121,0 0,-24.047 c 0,-2.746 0.757,-4.875 2.273,-6.39 1.516,-1.516 3.438,-2.274 5.77,-2.274 2.25,0 4.136,0.758 5.652,2.274 1.512,1.515 2.269,3.644 2.269,6.39 l 0,24.047 8.122,0 0,-40.324 -8.122,0 0,4.273 -0.152,0 c -2.516,-3.16 -5.984,-4.742 -10.414,-4.742 -3.184,0 -6.234,1.188 -9.148,3.555 -2.914,2.371 -4.371,5.847 -4.371,10.433 z m 45.054,-13.519 0,40.324 8.121,0 0,-4.312 0.153,0 c 2.515,3.183 6.011,4.777 10.492,4.777 2.949,0 5.762,-1.035 8.43,-3.109 l -5.868,-6.993 c -1.761,1.321 -3.547,1.985 -5.359,1.985 -1.996,0 -3.801,-0.668 -5.422,-2.004 -1.617,-1.332 -2.426,-3.477 -2.426,-6.426 l 0,-24.242 -8.121,0 z m 55.891,0.039 0,4.156 c -2.82,-3.109 -6.293,-4.664 -10.41,-4.664 -2.641,0 -4.848,0.527 -6.621,1.574 -1.778,1.051 -3.118,2.157 -4.024,3.325 -1.164,1.5 -1.961,3.093 -2.387,4.777 -0.429,1.683 -0.64,5.32 -0.64,10.914 0,5.594 0.211,9.234 0.64,10.918 0.426,1.683 1.223,3.289 2.387,4.816 0.906,1.141 2.246,2.246 4.024,3.321 1.773,1.074 3.98,1.613 6.621,1.613 3.937,0 7.406,-1.594 10.41,-4.777 l 0,4.312 8.121,0 0,-39.391 c 0,-6.062 -1.77,-10.531 -5.305,-13.406 -3.535,-2.871 -7.594,-4.308 -12.176,-4.308 -2.589,0 -5.128,0.621 -7.613,1.863 -2.488,1.242 -4.625,2.875 -6.41,4.894 l 6.293,5.012 c 0.984,-0.984 2.156,-1.84 3.516,-2.562 1.359,-0.727 2.816,-1.09 4.371,-1.09 2.691,0 4.898,0.75 6.621,2.254 1.722,1.5 2.582,3.652 2.582,6.449 z m -15.965,20.082 c 0,-3.234 0.086,-5.387 0.254,-6.449 0.168,-1.059 0.613,-2.043 1.34,-2.95 0.543,-0.726 1.347,-1.425 2.406,-2.097 1.062,-0.676 2.41,-1.012 4.043,-1.012 1.578,0 2.894,0.336 3.941,1.012 1.051,0.672 1.86,1.371 2.43,2.097 0.699,0.907 1.133,1.891 1.301,2.95 0.168,1.062 0.25,3.215 0.25,6.449 0,3.238 -0.082,5.387 -0.25,6.449 -0.168,1.063 -0.602,2.059 -1.301,2.992 -0.57,0.7 -1.379,1.391 -2.43,2.078 -1.047,0.688 -2.363,1.032 -3.941,1.032 -1.633,0 -2.981,-0.344 -4.043,-1.032 -1.059,-0.687 -1.863,-1.378 -2.406,-2.078 -0.727,-0.933 -1.172,-1.929 -1.34,-2.992 -0.168,-1.062 -0.254,-3.211 -0.254,-6.449 z" /><path - id="path3670" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 103.754,243.09 -32.059,127.984 20.551,0 20.117,-91.004 0.352,0 24.855,91.004 13.969,0 24.859,-91.004 0.352,0 20.113,91.004 20.555,0 -32.059,-127.984 -16.164,0 -24.507,92.23 -0.352,0 -24.422,-92.23 -16.16,0 z" /><path - id="path3672" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 230.359,243.09 0,91.18 18.36,0 0,-91.18 -18.36,0 z m 0,109.625 0,18.359 18.36,0 0,-18.359 -18.36,0 z" /><path - id="path3674" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 277.688,265.137 0,105.937 18.359,0 0,-104.441 c 0,-4.219 2.285,-6.324 6.851,-6.324 l 6.235,0 0,-17.219 -8.082,0 c -6.672,0 -12.238,1.613 -16.688,4.832 -4.453,3.281 -6.675,9.016 -6.675,17.215 z" /><path - id="path3676" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 328.488,258.285 12.825,12.653 c 7.964,-7.79 17.539,-11.684 28.722,-11.684 5.211,0 9.516,0.965 12.914,2.898 3.395,1.993 5.094,4.918 5.094,8.786 0,5.324 -3.719,8.312 -11.156,8.957 l -16.164,1.496 c -7.551,0.582 -13.817,3.07 -18.793,7.464 -4.981,4.395 -7.469,10.508 -7.469,18.36 0,9.25 3.25,16.25 9.75,20.992 6.5,4.742 14.578,7.113 24.242,7.113 7.965,0 14.789,-1.14 20.469,-3.422 5.68,-2.226 10.777,-5.214 15.285,-8.964 l -11.336,-13.348 c -3.625,2.457 -7.375,4.477 -11.242,6.059 -3.863,1.582 -8.258,2.371 -13.176,2.371 -5.855,0 -9.926,-1.051 -12.211,-3.161 -2.281,-2.046 -3.422,-4.656 -3.422,-7.816 0,-1.992 0.848,-3.836 2.547,-5.531 1.699,-1.699 4.86,-2.727 9.485,-3.078 l 15.109,-1.051 c 9.43,-0.649 16.191,-3.574 20.293,-8.789 4.098,-5.152 6.148,-11.328 6.148,-18.531 0,-8.957 -3.66,-15.871 -10.98,-20.731 -7.32,-4.859 -16.25,-7.293 -26.793,-7.293 -15.164,0 -28.547,5.418 -40.141,16.25 z" /><path - id="path3678" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 433.285,334.27 0,27.668 18.36,0 0,-27.668 13.351,0 0,-14.055 -13.351,0 0,-53.059 c 0,-4.566 2.168,-6.847 6.5,-6.847 l 6.851,0 0,-17.219 -9.574,0 c -6.383,0 -11.684,1.933 -15.902,5.801 -4.153,3.863 -6.235,9.394 -6.235,16.601 l 0,54.723 -9.137,0 0,14.055 9.137,0 z" /><path - id="path3680" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 561.055,281.738 -56.742,0 c 0,-7.492 2.019,-13.117 6.058,-16.863 4.098,-3.75 9.313,-5.621 15.637,-5.621 7.551,0 14.23,2.926 20.023,8.785 l 13.27,-11.336 c -4.512,-5.265 -9.606,-9.047 -15.285,-11.328 -5.621,-2.227 -11.508,-3.34 -17.657,-3.34 -9.371,0 -18.445,3.016 -27.234,9.051 -8.781,6.09 -13.176,18.5 -13.176,37.242 0,17.746 4.043,30.012 12.125,36.809 8.141,6.789 16.633,10.183 25.473,10.183 10.012,0 18.769,-3.48 26.266,-10.453 7.496,-6.91 11.242,-16.246 11.242,-28.019 l 0,-15.11 z m -56.742,15.11 38.472,0 c -0.293,6.851 -2.226,12.093 -5.801,15.726 -3.566,3.629 -8.05,5.442 -13.437,5.442 -5.445,0 -9.984,-1.813 -13.617,-5.442 -3.571,-3.633 -5.442,-8.875 -5.617,-15.726 z" /><path - id="path3682" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 900 600" + height="600" + width="900" + xml:space="preserve" + version="1.1" + id="svg3650"><metadata + id="metadata3656"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs3654" /><g + transform="matrix(1.25,0,0,-1.25,0,600)" + id="g3658"><g + id="g3660"><path + id="path3662" + style="fill:#f0c900;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 30,480 c 0,0 -29.977,0.008 -30,-30 L 0,30 C 0,30 -0.082,0 30,0 l 660,0 c 30.082,0 30,30 30,30 l 0,420 c -0.023,30.008 -30,30 -30,30 l -660,0 z" /><path + id="path3664" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="M 30,472 C 30,472 8.012,471.961 8,450 L 8,30 C 8,30 7.992,7.98 30,8 l 660.074,0 c 22.008,-0.02 22,22 22,22 l 0,420 c -0.011,21.961 -22,22 -22,22 L 30,472 Z m 0,-12 660.074,0 c 0,0 9.942,-0.004 9.961,-10 0.891,-137.652 0.176,-420 0.176,-420 -0.035,-9.73 -10.137,-10 -10.137,-10 L 30,20 c 0,0 -10.102,0.27 -10.141,10 0,0 -0.711,282.348 0.18,420 0.016,9.996 9.961,10 9.961,10 z" /><path + id="path3666" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 82.246,122.133 0,56.601 8.586,0 0,-29.175 0.195,0 23.27,29.175 10.215,0 -18.141,-22.336 20.047,-34.265 -10.18,0 -15.461,27.66 -9.945,-10.41 0,-17.25 -8.586,0 z m 51.817,0 0,40.324 8.117,0 0,-4.312 0.156,0 c 2.512,3.187 6.008,4.781 10.488,4.781 2.953,0 5.762,-1.039 8.43,-3.11 l -5.867,-6.992 c -1.758,1.321 -3.547,1.981 -5.36,1.981 -1.996,0 -3.8,-0.668 -5.418,-2 -1.621,-1.336 -2.429,-3.477 -2.429,-6.43 l 0,-24.242 -8.117,0 z m 64.476,17.094 -25.094,0 c 0,-3.317 0.899,-5.801 2.7,-7.461 1.8,-1.657 4.097,-2.485 6.894,-2.485 3.34,0 6.293,1.293 8.859,3.883 l 5.864,-5.008 c -1.992,-2.332 -4.239,-3.996 -6.739,-4.992 -2.5,-1 -5.109,-1.496 -7.828,-1.496 -4.144,0 -8.16,1.34 -12.043,4.02 -3.886,2.679 -5.828,8.164 -5.828,16.453 0,7.847 1.793,13.273 5.379,16.277 3.59,3.004 7.336,4.508 11.25,4.508 4.426,0 8.297,-1.535 11.613,-4.606 3.317,-3.07 4.973,-7.207 4.973,-12.41 l 0,-6.683 z m -25.094,6.683 17.016,0 c -0.133,3.028 -0.984,5.348 -2.566,6.953 -1.579,1.606 -3.559,2.407 -5.942,2.407 -2.41,0 -4.41,-0.801 -6.004,-2.407 -1.594,-1.605 -2.429,-3.925 -2.504,-6.953 z m 36.196,-23.777 0,40.324 8.121,0 0,-40.324 -8.121,0 z m 0,48.484 0,8.117 8.121,0 0,-8.117 -8.121,0 z m 16.734,-41.762 5.672,5.594 c 3.523,-3.445 7.758,-5.168 12.703,-5.168 2.305,0 4.207,0.434 5.711,1.301 1.504,0.867 2.254,2.156 2.254,3.867 0,2.356 -1.645,3.676 -4.934,3.961 l -7.148,0.66 c -3.34,0.258 -6.113,1.36 -8.313,3.301 -2.203,1.945 -3.304,4.652 -3.304,8.121 0,4.094 1.437,7.188 4.312,9.285 2.875,2.098 6.449,3.149 10.723,3.149 3.523,0 6.539,-0.5 9.051,-1.496 2.511,-1 4.765,-2.325 6.761,-3.985 l -5.011,-5.902 c -1.606,1.086 -3.266,1.98 -4.973,2.68 -1.711,0.699 -3.652,1.047 -5.828,1.047 -2.59,0 -4.391,-0.457 -5.399,-1.379 -1.011,-0.918 -1.515,-2.078 -1.515,-3.477 0,-0.879 0.375,-1.695 1.125,-2.445 0.75,-0.754 2.148,-1.207 4.195,-1.36 l 6.684,-0.468 c 4.168,-0.286 7.16,-1.575 8.972,-3.864 1.813,-2.293 2.719,-5.031 2.719,-8.218 0,-3.961 -1.617,-7.02 -4.855,-9.168 -3.239,-2.149 -7.188,-3.223 -11.848,-3.223 -6.707,0 -12.625,2.395 -17.754,7.187 z" /><path + id="path3668" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 299.816,128.934 5.672,6.449 c 2.125,-1.707 4.575,-3.082 7.344,-4.117 2.77,-1.036 5.672,-1.555 8.703,-1.555 3.496,0 6.238,0.727 8.235,2.176 1.996,1.453 2.992,3.355 2.992,5.711 0,4.457 -2.461,7.007 -7.383,7.652 -1.293,0.156 -2.5,0.313 -3.613,0.469 -1.114,0.156 -2.407,0.336 -3.883,0.543 -4.895,0.672 -8.625,2.465 -11.188,5.379 -2.566,2.914 -3.847,6.429 -3.847,10.547 0,4.82 1.613,8.781 4.836,11.89 3.226,3.106 7.765,4.66 13.617,4.66 3.496,0 6.785,-0.558 9.867,-1.672 3.082,-1.113 5.918,-2.523 8.508,-4.234 l -4.778,-7.07 c -2.074,1.297 -4.3,2.343 -6.683,3.148 -2.383,0.801 -4.817,1.203 -7.301,1.203 -2.644,0 -4.883,-0.672 -6.723,-2.019 -1.839,-1.348 -2.757,-3.367 -2.757,-6.059 0,-1.605 0.621,-3.109 1.863,-4.508 1.246,-1.398 3.305,-2.316 6.18,-2.757 0.75,-0.129 1.656,-0.266 2.718,-0.411 1.063,-0.14 2.278,-0.289 3.653,-0.445 5.281,-0.648 9.187,-2.562 11.711,-5.75 2.523,-3.184 3.789,-6.707 3.789,-10.566 0,-5.203 -1.801,-9.246 -5.403,-12.121 -3.597,-2.875 -8.429,-4.313 -14.488,-4.313 -8.519,0 -15.734,2.59 -21.641,7.77 z m 52.707,33.023 0,12.234 8.122,0 0,-12.234 5.902,0 0,-6.215 -5.902,0 0,-23.465 c 0,-2.019 0.957,-3.031 2.875,-3.031 l 3.027,0 0,-7.613 -4.234,0 c -2.821,0 -5.161,0.855 -7.012,2.562 -1.852,1.711 -2.778,4.157 -2.778,7.344 l 0,24.203 -4.039,0 0,6.215 4.039,0 z m 55.157,-23.23 -25.098,0 c 0,-3.317 0.902,-5.801 2.699,-7.461 1.801,-1.657 4.102,-2.485 6.899,-2.485 3.34,0 6.293,1.293 8.855,3.883 l 5.867,-5.012 c -1.996,-2.328 -4.242,-3.992 -6.742,-4.992 -2.496,-0.996 -5.105,-1.496 -7.828,-1.496 -4.141,0 -8.156,1.344 -12.043,4.024 -3.883,2.679 -5.824,8.164 -5.824,16.453 0,7.843 1.793,13.269 5.379,16.273 3.586,3.008 7.336,4.508 11.246,4.508 4.43,0 8.301,-1.535 11.617,-4.602 3.313,-3.07 4.973,-7.207 4.973,-12.414 l 0,-6.679 z m -25.098,6.679 17.016,0 c -0.129,3.032 -0.985,5.348 -2.563,6.953 -1.582,1.606 -3.562,2.411 -5.945,2.411 -2.406,0 -4.41,-0.805 -6,-2.411 -1.594,-1.605 -2.43,-3.921 -2.508,-6.953 z m 36.199,-23.773 0,40.324 8.117,0 0,-40.324 -8.117,0 z m 0,48.48 0,8.121 8.117,0 0,-8.121 -8.117,0 z m 21.199,-48.48 0,40.324 8.122,0 0,-4.312 0.152,0 c 2.512,3.183 6.008,4.777 10.488,4.777 3.137,0 6.16,-1.192 9.074,-3.574 2.911,-2.383 4.368,-5.852 4.368,-10.41 l 0,-26.805 -8.118,0 0,24.008 c 0,2.718 -0.757,4.843 -2.273,6.371 -1.516,1.527 -3.398,2.293 -5.652,2.293 -2.332,0 -4.254,-0.766 -5.77,-2.293 -1.516,-1.528 -2.269,-3.653 -2.269,-6.371 l 0,-24.008 -8.122,0 z m 45.055,0 0,56.601 8.117,0 0,-20.589 c 1.504,1.421 3.09,2.578 4.758,3.457 1.672,0.878 3.555,1.32 5.653,1.32 2.46,0 4.585,-0.5 6.371,-1.496 1.789,-0.996 3.265,-2.246 4.429,-3.75 1.114,-1.449 1.871,-3.137 2.274,-5.067 0.402,-1.929 0.601,-5.355 0.601,-10.277 0,-4.973 -0.199,-8.434 -0.601,-10.391 -0.403,-1.957 -1.16,-3.644 -2.274,-5.07 -1.164,-1.527 -2.64,-2.777 -4.429,-3.75 -1.786,-0.969 -3.911,-1.457 -6.371,-1.457 -4.141,0 -7.614,1.555 -10.411,4.664 l 0,-4.195 -8.117,0 z m 16.082,32.672 c -3.808,0 -6.086,-1.364 -6.836,-4.082 -0.754,-2.719 -1.129,-5.516 -1.129,-8.391 0,-2.953 0.375,-5.789 1.129,-8.508 0.75,-2.719 3.028,-4.078 6.836,-4.078 3.809,0 6.094,1.309 6.856,3.922 0.765,2.617 1.148,5.504 1.148,8.664 0,3.082 -0.383,5.93 -1.148,8.547 -0.762,2.617 -3.047,3.926 -6.856,3.926 z m 27.571,-19.153 0,26.805 8.121,0 0,-24.047 c 0,-2.746 0.757,-4.875 2.273,-6.39 1.516,-1.516 3.438,-2.274 5.77,-2.274 2.25,0 4.136,0.758 5.652,2.274 1.512,1.515 2.269,3.644 2.269,6.39 l 0,24.047 8.122,0 0,-40.324 -8.122,0 0,4.273 -0.152,0 c -2.516,-3.16 -5.984,-4.742 -10.414,-4.742 -3.184,0 -6.234,1.188 -9.148,3.555 -2.914,2.371 -4.371,5.847 -4.371,10.433 z m 45.054,-13.519 0,40.324 8.121,0 0,-4.312 0.153,0 c 2.515,3.183 6.011,4.777 10.492,4.777 2.949,0 5.762,-1.035 8.43,-3.109 l -5.868,-6.993 c -1.761,1.321 -3.547,1.985 -5.359,1.985 -1.996,0 -3.801,-0.668 -5.422,-2.004 -1.617,-1.332 -2.426,-3.477 -2.426,-6.426 l 0,-24.242 -8.121,0 z m 55.891,0.039 0,4.156 c -2.82,-3.109 -6.293,-4.664 -10.41,-4.664 -2.641,0 -4.848,0.527 -6.621,1.574 -1.778,1.051 -3.118,2.157 -4.024,3.325 -1.164,1.5 -1.961,3.093 -2.387,4.777 -0.429,1.683 -0.64,5.32 -0.64,10.914 0,5.594 0.211,9.234 0.64,10.918 0.426,1.683 1.223,3.289 2.387,4.816 0.906,1.141 2.246,2.246 4.024,3.321 1.773,1.074 3.98,1.613 6.621,1.613 3.937,0 7.406,-1.594 10.41,-4.777 l 0,4.312 8.121,0 0,-39.391 c 0,-6.062 -1.77,-10.531 -5.305,-13.406 -3.535,-2.871 -7.594,-4.308 -12.176,-4.308 -2.589,0 -5.128,0.621 -7.613,1.863 -2.488,1.242 -4.625,2.875 -6.41,4.894 l 6.293,5.012 c 0.984,-0.984 2.156,-1.84 3.516,-2.562 1.359,-0.727 2.816,-1.09 4.371,-1.09 2.691,0 4.898,0.75 6.621,2.254 1.722,1.5 2.582,3.652 2.582,6.449 z m -15.965,20.082 c 0,-3.234 0.086,-5.387 0.254,-6.449 0.168,-1.059 0.613,-2.043 1.34,-2.95 0.543,-0.726 1.347,-1.425 2.406,-2.097 1.062,-0.676 2.41,-1.012 4.043,-1.012 1.578,0 2.894,0.336 3.941,1.012 1.051,0.672 1.86,1.371 2.43,2.097 0.699,0.907 1.133,1.891 1.301,2.95 0.168,1.062 0.25,3.215 0.25,6.449 0,3.238 -0.082,5.387 -0.25,6.449 -0.168,1.063 -0.602,2.059 -1.301,2.992 -0.57,0.7 -1.379,1.391 -2.43,2.078 -1.047,0.688 -2.363,1.032 -3.941,1.032 -1.633,0 -2.981,-0.344 -4.043,-1.032 -1.059,-0.687 -1.863,-1.378 -2.406,-2.078 -0.727,-0.933 -1.172,-1.929 -1.34,-2.992 -0.168,-1.062 -0.254,-3.211 -0.254,-6.449 z" /><path + id="path3670" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 103.754,243.09 -32.059,127.984 20.551,0 20.117,-91.004 0.352,0 24.855,91.004 13.969,0 24.859,-91.004 0.352,0 20.113,91.004 20.555,0 -32.059,-127.984 -16.164,0 -24.507,92.23 -0.352,0 -24.422,-92.23 -16.16,0 z" /><path + id="path3672" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 230.359,243.09 0,91.18 18.36,0 0,-91.18 -18.36,0 z m 0,109.625 0,18.359 18.36,0 0,-18.359 -18.36,0 z" /><path + id="path3674" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 277.688,265.137 0,105.937 18.359,0 0,-104.441 c 0,-4.219 2.285,-6.324 6.851,-6.324 l 6.235,0 0,-17.219 -8.082,0 c -6.672,0 -12.238,1.613 -16.688,4.832 -4.453,3.281 -6.675,9.016 -6.675,17.215 z" /><path + id="path3676" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 328.488,258.285 12.825,12.653 c 7.964,-7.79 17.539,-11.684 28.722,-11.684 5.211,0 9.516,0.965 12.914,2.898 3.395,1.993 5.094,4.918 5.094,8.786 0,5.324 -3.719,8.312 -11.156,8.957 l -16.164,1.496 c -7.551,0.582 -13.817,3.07 -18.793,7.464 -4.981,4.395 -7.469,10.508 -7.469,18.36 0,9.25 3.25,16.25 9.75,20.992 6.5,4.742 14.578,7.113 24.242,7.113 7.965,0 14.789,-1.14 20.469,-3.422 5.68,-2.226 10.777,-5.214 15.285,-8.964 l -11.336,-13.348 c -3.625,2.457 -7.375,4.477 -11.242,6.059 -3.863,1.582 -8.258,2.371 -13.176,2.371 -5.855,0 -9.926,-1.051 -12.211,-3.161 -2.281,-2.046 -3.422,-4.656 -3.422,-7.816 0,-1.992 0.848,-3.836 2.547,-5.531 1.699,-1.699 4.86,-2.727 9.485,-3.078 l 15.109,-1.051 c 9.43,-0.649 16.191,-3.574 20.293,-8.789 4.098,-5.152 6.148,-11.328 6.148,-18.531 0,-8.957 -3.66,-15.871 -10.98,-20.731 -7.32,-4.859 -16.25,-7.293 -26.793,-7.293 -15.164,0 -28.547,5.418 -40.141,16.25 z" /><path + id="path3678" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 433.285,334.27 0,27.668 18.36,0 0,-27.668 13.351,0 0,-14.055 -13.351,0 0,-53.059 c 0,-4.566 2.168,-6.847 6.5,-6.847 l 6.851,0 0,-17.219 -9.574,0 c -6.383,0 -11.684,1.933 -15.902,5.801 -4.153,3.863 -6.235,9.394 -6.235,16.601 l 0,54.723 -9.137,0 0,14.055 9.137,0 z" /><path + id="path3680" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 561.055,281.738 -56.742,0 c 0,-7.492 2.019,-13.117 6.058,-16.863 4.098,-3.75 9.313,-5.621 15.637,-5.621 7.551,0 14.23,2.926 20.023,8.785 l 13.27,-11.336 c -4.512,-5.265 -9.606,-9.047 -15.285,-11.328 -5.621,-2.227 -11.508,-3.34 -17.657,-3.34 -9.371,0 -18.445,3.016 -27.234,9.051 -8.781,6.09 -13.176,18.5 -13.176,37.242 0,17.746 4.043,30.012 12.125,36.809 8.141,6.789 16.633,10.183 25.473,10.183 10.012,0 18.769,-3.48 26.266,-10.453 7.496,-6.91 11.242,-16.246 11.242,-28.019 l 0,-15.11 z m -56.742,15.11 38.472,0 c -0.293,6.851 -2.226,12.093 -5.801,15.726 -3.566,3.629 -8.05,5.442 -13.437,5.442 -5.445,0 -9.984,-1.813 -13.617,-5.442 -3.571,-3.633 -5.442,-8.875 -5.617,-15.726 z" /><path + id="path3682" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 586.816,243.09 0,91.18 18.36,0 0,-9.754 0.351,0 c 5.684,7.207 13.59,10.804 23.715,10.804 6.68,0 13.035,-2.34 19.063,-7.023 l -13.262,-15.813 c -3.984,2.989 -8.023,4.481 -12.125,4.481 -4.508,0 -8.602,-1.524 -12.293,-4.567 -3.633,-2.988 -5.449,-7.82 -5.449,-14.496 l 0,-54.812 -18.36,0 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/TownEnd_311.svg b/content/html/_images/TownEnd_311.svg index 0682ae3d0071da297976e52669be3e419b6837f9..82f0d784fc26b0e610dbec325ade71da52af8b3d 100644 --- a/content/html/_images/TownEnd_311.svg +++ b/content/html/_images/TownEnd_311.svg @@ -1,86 +1,86 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 900 600" - height="600" - width="900" - xml:space="preserve" - version="1.1" - id="svg3713"><metadata - id="metadata3719"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs3717" /><g - transform="matrix(1.25,0,0,-1.25,0,600)" - id="g3721"><g - id="g3723"><path - id="path3725" - style="fill:#f0c900;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 30,480 c 0,0 -29.977,0.008 -30,-30 L 0,30 C 0,30 -0.082,0 30,0 l 660,0 c 30.082,0 30,30 30,30 l 0,420 c -0.023,30.008 -30,30 -30,30 l -660,0 z" /><path - id="path3727" - style="fill:#c1121c;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 14.969,40.855 602.871,196.692 89.515,0 -1.214,-31.664 L 126.41,16.496 28.367,15.887 14.969,26.238 l 0,14.617 z" /><path - id="path3729" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 243.785,290.137 13.414,26.832 7.992,0 -10.531,-21.137 0.137,0 c 1.121,0.438 2.391,0.652 3.808,0.652 3.157,0 5.938,-1.109 8.336,-3.328 2.403,-2.218 3.606,-5.75 3.606,-10.601 0,-5.739 -1.535,-9.84 -4.598,-12.297 -3.066,-2.461 -6.453,-3.692 -10.156,-3.692 -3.5,0 -6.695,1.356 -9.59,4.067 -2.894,2.711 -4.34,6.422 -4.34,11.133 0,3.019 0.641,5.812 1.922,8.371 z m 12.418,0 c -1.988,0 -3.68,-0.668 -5.078,-2.004 -1.395,-1.34 -2.09,-3.403 -2.09,-6.195 0,-5.489 2.387,-8.235 7.168,-8.235 1.649,0 3.254,0.625 4.82,1.871 1.567,1.246 2.352,3.367 2.352,6.364 0,2.792 -0.703,4.855 -2.109,6.195 -1.407,1.336 -3.094,2.004 -5.063,2.004 z" /><path - id="path3731" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 304.102,266.574 0,49.528 7.105,0 0,-30.832 0.137,0 13.562,16.589 8.5,0 -12.172,-13.8 13.836,-21.485 -8.906,0 -9.383,16.489 -5.574,-6.36 0,-10.129 -7.105,0 z m 36.578,0 0,35.285 7.105,0 0,-3.773 0.133,0 c 2.246,2.789 5.305,4.18 9.18,4.18 2.468,0 4.429,-0.442 5.879,-1.325 1.453,-0.882 2.812,-1.972 4.082,-3.261 2.785,3.058 6.504,4.586 11.148,4.586 2.742,0 5.387,-1.039 7.938,-3.125 2.55,-2.086 3.824,-5.121 3.824,-9.11 l 0,-23.457 -7.106,0 0,21.008 c 0,2.379 -0.668,4.238 -2.004,5.574 -1.339,1.34 -2.992,2.008 -4.964,2.008 -2.04,0 -3.723,-0.668 -5.047,-2.008 -1.325,-1.336 -1.989,-3.195 -1.989,-5.574 l 0,-21.008 -7.07,0 0,21.008 c 0,2.379 -0.668,4.238 -2.008,5.574 -1.336,1.34 -2.988,2.008 -4.961,2.008 -2.039,0 -3.722,-0.668 -5.047,-2.008 -1.328,-1.336 -1.988,-3.195 -1.988,-5.574 l 0,-21.008 -7.105,0 z" /><path - id="path3733" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 572.09,396.98 0.199,-25.753 33.805,33.437 0,-119.57 20.824,-0.199 0,119.57 33.82,-33.438 0.184,25.754 -44.371,43.719 -44.461,-43.52 z" /><path - id="path3735" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="m 16.164,246 0,-12 688.793,0 0,12 -688.793,0 z" /><path - id="path3737" - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" - d="M 30,472 C 30,472 8.012,471.961 8,450 L 8,30 C 8,30 7.992,7.98 30,8 l 660.074,0 c 22.008,-0.02 22,22 22,22 l 0,420 c -0.011,21.961 -22,22 -22,22 L 30,472 Z m 0,-12 660.074,0 c 0,0 9.942,-0.004 9.961,-10 0.891,-137.652 0.176,-420 0.176,-420 -0.035,-9.73 -10.137,-10 -10.137,-10 L 30,20 c 0,0 -10.102,0.27 -10.141,10 0,0 -0.711,282.348 0.18,420 0.016,9.996 9.961,10 9.961,10 z" /><path - id="path3739" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 104.266,62.828 -32,127.75 20.515,0 20.078,-90.836 0.352,0 24.812,90.836 13.942,0 24.812,-90.836 0.352,0 20.078,90.836 20.516,0 -32,-127.75 -16.133,0 -24.465,92.063 -0.352,0 -24.375,-92.063 -16.132,0 z" /><path - id="path3741" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 230.641,62.828 0,91.012 18.324,0 0,-91.012 -18.324,0 z m 0,109.422 0,18.328 18.324,0 0,-18.328 -18.324,0 z" /><path - id="path3743" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 277.883,84.836 0,105.742 18.324,0 0,-104.25 c 0,-4.211 2.281,-6.312 6.84,-6.312 l 6.223,0 0,-17.188 -8.067,0 c -6.66,0 -12.215,1.61 -16.656,4.824 -4.445,3.274 -6.664,9 -6.664,17.184 z" /><path - id="path3745" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 328.59,77.996 12.801,12.629 c 7.949,-7.777 17.504,-11.664 28.668,-11.664 5.203,0 9.5,0.965 12.89,2.894 3.391,1.989 5.086,4.911 5.086,8.77 0,5.316 -3.711,8.297 -11.137,8.941 l -16.132,1.493 c -7.539,0.582 -13.793,3.066 -18.762,7.449 -4.969,4.387 -7.453,10.492 -7.453,18.328 0,9.234 3.242,16.219 9.73,20.953 6.489,4.734 14.555,7.102 24.199,7.102 7.95,0 14.762,-1.141 20.43,-3.418 5.672,-2.223 10.758,-5.203 15.258,-8.946 l -11.313,-13.324 c -3.621,2.453 -7.363,4.469 -11.222,6.047 -3.856,1.578 -8.242,2.367 -13.153,2.367 -5.843,0 -9.906,-1.051 -12.187,-3.156 -2.277,-2.043 -3.418,-4.645 -3.418,-7.801 0,-1.988 0.848,-3.828 2.543,-5.523 1.695,-1.696 4.852,-2.719 9.469,-3.071 l 15.082,-1.05 c 9.41,-0.645 16.16,-3.567 20.254,-8.77 4.09,-5.144 6.136,-11.308 6.136,-18.5 0,-8.941 -3.652,-15.84 -10.961,-20.691 -7.304,-4.852 -16.218,-7.278 -26.742,-7.278 -15.136,0 -28.496,5.407 -40.066,16.219 z" /><path - id="path3747" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 433.195,153.84 0,27.617 18.325,0 0,-27.617 13.328,0 0,-14.027 -13.328,0 0,-52.961 c 0,-4.559 2.164,-6.836 6.488,-6.836 l 6.84,0 0,-17.188 -9.559,0 c -6.371,0 -11.66,1.93 -15.871,5.789 -4.148,3.856 -6.223,9.379 -6.223,16.571 l 0,54.625 -9.121,0 0,14.027 9.121,0 z" /><path - id="path3749" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 560.73,101.406 -56.64,0 c 0,-7.48 2.015,-13.093 6.047,-16.832 4.093,-3.742 9.297,-5.613 15.609,-5.613 7.539,0 14.203,2.922 19.988,8.769 l 13.243,-11.312 c -4.504,-5.258 -9.586,-9.031 -15.258,-11.309 -5.61,-2.222 -11.485,-3.332 -17.621,-3.332 -9.356,0 -18.414,3.008 -27.184,9.032 -8.766,6.078 -13.152,18.468 -13.152,37.175 0,17.711 4.035,29.957 12.101,36.739 8.125,6.777 16.602,10.168 25.426,10.168 9.996,0 18.734,-3.477 26.219,-10.434 7.48,-6.898 11.222,-16.219 11.222,-27.969 l 0,-15.082 z m -56.64,15.082 38.402,0 c -0.293,6.84 -2.222,12.071 -5.789,15.696 -3.562,3.625 -8.035,5.433 -13.414,5.433 -5.434,0 -9.965,-1.808 -13.59,-5.433 -3.566,-3.625 -5.433,-8.856 -5.609,-15.696 z" /><path - id="path3751" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 586.445,62.828 0,91.012 18.325,0 0,-9.735 0.351,0 c 5.672,7.192 13.563,10.786 23.672,10.786 6.664,0 13.008,-2.336 19.027,-7.012 l -13.238,-15.785 c -3.977,2.984 -8.008,4.472 -12.102,4.472 -4.5,0 -8.589,-1.519 -12.273,-4.558 -3.625,-2.981 -5.437,-7.805 -5.437,-14.469 l 0,-54.711 -18.325,0 z" /><path - id="path3753" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 58.867,351.293 8.828,10.039 c 3.305,-2.66 7.114,-4.797 11.426,-6.41 4.313,-1.613 8.828,-2.418 13.543,-2.418 5.441,0 9.715,1.129 12.816,3.387 3.106,2.254 4.657,5.218 4.657,8.886 0,6.934 -3.828,10.903 -11.489,11.911 -2.015,0.242 -3.886,0.484 -5.621,0.726 -1.734,0.238 -3.75,0.524 -6.047,0.844 -7.617,1.051 -13.421,3.828 -17.41,8.344 -3.992,4.554 -5.988,10.035 -5.988,16.445 0,7.496 2.5,13.664 7.5,18.5 5.035,4.836 12.109,7.254 21.219,7.254 5.441,0 10.562,-0.863 15.359,-2.598 4.793,-1.734 9.207,-3.93 13.238,-6.59 l -7.437,-11.004 c -3.223,2.016 -6.688,3.649 -10.398,4.899 -3.708,1.246 -7.497,1.871 -11.368,1.871 -4.109,0 -7.597,-1.047 -10.457,-3.141 -2.863,-2.097 -4.293,-5.242 -4.293,-9.433 0,-2.5 0.969,-4.836 2.903,-7.012 1.933,-2.176 5.136,-3.609 9.613,-4.293 1.168,-0.203 2.578,-0.426 4.23,-0.664 1.653,-0.203 3.547,-0.426 5.684,-0.668 8.223,-1.008 14.289,-3.988 18.199,-8.945 3.949,-4.961 5.926,-10.442 5.926,-16.446 0,-8.101 -2.805,-14.39 -8.406,-18.863 -5.602,-4.476 -13.117,-6.711 -22.551,-6.711 -13.262,0 -24.484,4.031 -33.676,12.09 z" /><path - id="path3755" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 177.383,358.367 9.308,-8.344 c -2.742,-3.144 -6.003,-5.742 -9.793,-7.796 -3.75,-2.016 -8,-3.024 -12.757,-3.024 -7.254,0 -13.825,2.457 -19.711,7.375 -5.844,4.957 -8.766,13.18 -8.766,24.668 0,11.488 2.922,19.711 8.766,24.668 5.886,4.996 12.457,7.496 19.711,7.496 4.757,0 9.007,-1.027 12.757,-3.082 3.79,-2.058 7.051,-4.656 9.793,-7.801 l -9.308,-8.281 c -3.547,4.352 -7.801,6.527 -12.758,6.527 -10.883,0 -16.324,-6.507 -16.324,-19.527 0,-12.98 5.441,-19.469 16.324,-19.469 4.996,0 9.25,2.196 12.758,6.59 z" /><path - id="path3757" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 200.457,339.93 0,88.086 12.637,0 0,-32.043 0.242,0 c 3.91,4.957 9.352,7.437 16.324,7.437 4.875,0 9.57,-1.855 14.086,-5.562 4.555,-3.707 6.832,-9.11 6.832,-16.203 l 0,-41.715 -12.637,0 0,37.363 c 0,4.23 -1.187,7.535 -3.566,9.914 -2.34,2.379 -5.262,3.566 -8.766,3.566 -3.629,0 -6.632,-1.187 -9.007,-3.566 -2.34,-2.379 -3.508,-5.684 -3.508,-9.914 l 0,-37.363 -12.637,0 z" /><path - id="path3759" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 269.145,371.367 c 0,6.731 0.523,11.75 1.57,15.055 1.047,3.305 2.781,6.285 5.199,8.945 1.734,1.895 4.113,3.711 7.137,5.442 3.062,1.734 7.051,2.601 11.969,2.601 4.835,0 8.785,-0.867 11.851,-2.601 3.063,-1.731 5.461,-3.547 7.195,-5.442 2.418,-2.66 4.149,-5.64 5.2,-8.945 1.047,-3.305 1.57,-8.324 1.57,-15.055 0,-6.851 -0.523,-11.929 -1.57,-15.234 -1.051,-3.309 -2.782,-6.289 -5.2,-8.949 -1.734,-1.934 -4.132,-3.75 -7.195,-5.442 -3.066,-1.695 -7.016,-2.539 -11.851,-2.539 -4.918,0 -8.907,0.844 -11.969,2.539 -3.024,1.692 -5.403,3.508 -7.137,5.442 -2.418,2.66 -4.152,5.64 -5.199,8.949 -1.047,3.305 -1.57,8.383 -1.57,15.234 z m 39.117,-0.121 c 0,4.555 -0.242,7.758 -0.727,9.613 -0.445,1.852 -1.23,3.625 -2.359,5.321 -2.215,3.062 -5.602,4.593 -10.156,4.593 -4.637,0 -8.02,-1.531 -10.157,-4.593 -1.211,-1.696 -2.035,-3.469 -2.48,-5.321 -0.403,-1.855 -0.602,-5.019 -0.602,-9.492 0,-4.594 0.199,-7.84 0.602,-9.734 0.445,-1.856 1.269,-3.61 2.48,-5.262 2.137,-3.062 5.52,-4.594 10.157,-4.594 4.554,0 7.941,1.532 10.156,4.594 1.129,1.652 1.914,3.406 2.359,5.262 0.485,1.855 0.727,5.058 0.727,9.613 z" /><path - id="path3761" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 342.488,402.684 0,19.046 12.637,0 0,-19.046 9.191,0 0,-9.672 -9.191,0 0,-36.52 c 0,-3.14 1.492,-4.715 4.473,-4.715 l 4.718,0 0,-11.847 -6.589,0 c -4.395,0 -8.043,1.328 -10.946,3.988 -2.859,2.66 -4.293,6.469 -4.293,11.426 l 0,37.668 -6.285,0 0,9.672 6.285,0 z" /><path - id="path3763" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 382.77,402.684 0,19.046 12.636,0 0,-19.046 9.188,0 0,-9.672 -9.188,0 0,-36.52 c 0,-3.14 1.489,-4.715 4.473,-4.715 l 4.715,0 0,-11.847 -6.59,0 c -4.395,0 -8.039,1.328 -10.941,3.988 -2.864,2.66 -4.293,6.469 -4.293,11.426 l 0,37.668 -6.29,0 0,9.672 6.29,0 z" /><path - id="path3765" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 471.652,366.531 -39.054,0 c 0,-5.16 1.39,-9.031 4.168,-11.609 2.824,-2.578 6.41,-3.871 10.761,-3.871 5.203,0 9.797,2.015 13.786,6.047 l 9.128,-7.797 c -3.101,-3.629 -6.609,-6.231 -10.519,-7.801 -3.867,-1.531 -7.918,-2.297 -12.152,-2.297 -6.45,0 -12.696,2.074 -18.743,6.227 -6.043,4.191 -9.066,12.738 -9.066,25.633 0,12.214 2.781,20.66 8.344,25.332 5.601,4.675 11.445,7.015 17.531,7.015 6.894,0 12.918,-2.398 18.078,-7.195 5.16,-4.758 7.738,-11.184 7.738,-19.285 l 0,-10.399 z m -39.054,10.399 26.48,0 c -0.203,4.715 -1.531,8.32 -3.992,10.82 -2.457,2.5 -5.543,3.75 -9.25,3.75 -3.746,0 -6.871,-1.25 -9.371,-3.75 -2.457,-2.5 -3.746,-6.105 -3.867,-10.82 z" /><path - id="path3767" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 900 600" + height="600" + width="900" + xml:space="preserve" + version="1.1" + id="svg3713"><metadata + id="metadata3719"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs3717" /><g + transform="matrix(1.25,0,0,-1.25,0,600)" + id="g3721"><g + id="g3723"><path + id="path3725" + style="fill:#f0c900;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 30,480 c 0,0 -29.977,0.008 -30,-30 L 0,30 C 0,30 -0.082,0 30,0 l 660,0 c 30.082,0 30,30 30,30 l 0,420 c -0.023,30.008 -30,30 -30,30 l -660,0 z" /><path + id="path3727" + style="fill:#c1121c;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 14.969,40.855 602.871,196.692 89.515,0 -1.214,-31.664 L 126.41,16.496 28.367,15.887 14.969,26.238 l 0,14.617 z" /><path + id="path3729" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 243.785,290.137 13.414,26.832 7.992,0 -10.531,-21.137 0.137,0 c 1.121,0.438 2.391,0.652 3.808,0.652 3.157,0 5.938,-1.109 8.336,-3.328 2.403,-2.218 3.606,-5.75 3.606,-10.601 0,-5.739 -1.535,-9.84 -4.598,-12.297 -3.066,-2.461 -6.453,-3.692 -10.156,-3.692 -3.5,0 -6.695,1.356 -9.59,4.067 -2.894,2.711 -4.34,6.422 -4.34,11.133 0,3.019 0.641,5.812 1.922,8.371 z m 12.418,0 c -1.988,0 -3.68,-0.668 -5.078,-2.004 -1.395,-1.34 -2.09,-3.403 -2.09,-6.195 0,-5.489 2.387,-8.235 7.168,-8.235 1.649,0 3.254,0.625 4.82,1.871 1.567,1.246 2.352,3.367 2.352,6.364 0,2.792 -0.703,4.855 -2.109,6.195 -1.407,1.336 -3.094,2.004 -5.063,2.004 z" /><path + id="path3731" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 304.102,266.574 0,49.528 7.105,0 0,-30.832 0.137,0 13.562,16.589 8.5,0 -12.172,-13.8 13.836,-21.485 -8.906,0 -9.383,16.489 -5.574,-6.36 0,-10.129 -7.105,0 z m 36.578,0 0,35.285 7.105,0 0,-3.773 0.133,0 c 2.246,2.789 5.305,4.18 9.18,4.18 2.468,0 4.429,-0.442 5.879,-1.325 1.453,-0.882 2.812,-1.972 4.082,-3.261 2.785,3.058 6.504,4.586 11.148,4.586 2.742,0 5.387,-1.039 7.938,-3.125 2.55,-2.086 3.824,-5.121 3.824,-9.11 l 0,-23.457 -7.106,0 0,21.008 c 0,2.379 -0.668,4.238 -2.004,5.574 -1.339,1.34 -2.992,2.008 -4.964,2.008 -2.04,0 -3.723,-0.668 -5.047,-2.008 -1.325,-1.336 -1.989,-3.195 -1.989,-5.574 l 0,-21.008 -7.07,0 0,21.008 c 0,2.379 -0.668,4.238 -2.008,5.574 -1.336,1.34 -2.988,2.008 -4.961,2.008 -2.039,0 -3.722,-0.668 -5.047,-2.008 -1.328,-1.336 -1.988,-3.195 -1.988,-5.574 l 0,-21.008 -7.105,0 z" /><path + id="path3733" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 572.09,396.98 0.199,-25.753 33.805,33.437 0,-119.57 20.824,-0.199 0,119.57 33.82,-33.438 0.184,25.754 -44.371,43.719 -44.461,-43.52 z" /><path + id="path3735" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="m 16.164,246 0,-12 688.793,0 0,12 -688.793,0 z" /><path + id="path3737" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" + d="M 30,472 C 30,472 8.012,471.961 8,450 L 8,30 C 8,30 7.992,7.98 30,8 l 660.074,0 c 22.008,-0.02 22,22 22,22 l 0,420 c -0.011,21.961 -22,22 -22,22 L 30,472 Z m 0,-12 660.074,0 c 0,0 9.942,-0.004 9.961,-10 0.891,-137.652 0.176,-420 0.176,-420 -0.035,-9.73 -10.137,-10 -10.137,-10 L 30,20 c 0,0 -10.102,0.27 -10.141,10 0,0 -0.711,282.348 0.18,420 0.016,9.996 9.961,10 9.961,10 z" /><path + id="path3739" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 104.266,62.828 -32,127.75 20.515,0 20.078,-90.836 0.352,0 24.812,90.836 13.942,0 24.812,-90.836 0.352,0 20.078,90.836 20.516,0 -32,-127.75 -16.133,0 -24.465,92.063 -0.352,0 -24.375,-92.063 -16.132,0 z" /><path + id="path3741" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 230.641,62.828 0,91.012 18.324,0 0,-91.012 -18.324,0 z m 0,109.422 0,18.328 18.324,0 0,-18.328 -18.324,0 z" /><path + id="path3743" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 277.883,84.836 0,105.742 18.324,0 0,-104.25 c 0,-4.211 2.281,-6.312 6.84,-6.312 l 6.223,0 0,-17.188 -8.067,0 c -6.66,0 -12.215,1.61 -16.656,4.824 -4.445,3.274 -6.664,9 -6.664,17.184 z" /><path + id="path3745" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 328.59,77.996 12.801,12.629 c 7.949,-7.777 17.504,-11.664 28.668,-11.664 5.203,0 9.5,0.965 12.89,2.894 3.391,1.989 5.086,4.911 5.086,8.77 0,5.316 -3.711,8.297 -11.137,8.941 l -16.132,1.493 c -7.539,0.582 -13.793,3.066 -18.762,7.449 -4.969,4.387 -7.453,10.492 -7.453,18.328 0,9.234 3.242,16.219 9.73,20.953 6.489,4.734 14.555,7.102 24.199,7.102 7.95,0 14.762,-1.141 20.43,-3.418 5.672,-2.223 10.758,-5.203 15.258,-8.946 l -11.313,-13.324 c -3.621,2.453 -7.363,4.469 -11.222,6.047 -3.856,1.578 -8.242,2.367 -13.153,2.367 -5.843,0 -9.906,-1.051 -12.187,-3.156 -2.277,-2.043 -3.418,-4.645 -3.418,-7.801 0,-1.988 0.848,-3.828 2.543,-5.523 1.695,-1.696 4.852,-2.719 9.469,-3.071 l 15.082,-1.05 c 9.41,-0.645 16.16,-3.567 20.254,-8.77 4.09,-5.144 6.136,-11.308 6.136,-18.5 0,-8.941 -3.652,-15.84 -10.961,-20.691 -7.304,-4.852 -16.218,-7.278 -26.742,-7.278 -15.136,0 -28.496,5.407 -40.066,16.219 z" /><path + id="path3747" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 433.195,153.84 0,27.617 18.325,0 0,-27.617 13.328,0 0,-14.027 -13.328,0 0,-52.961 c 0,-4.559 2.164,-6.836 6.488,-6.836 l 6.84,0 0,-17.188 -9.559,0 c -6.371,0 -11.66,1.93 -15.871,5.789 -4.148,3.856 -6.223,9.379 -6.223,16.571 l 0,54.625 -9.121,0 0,14.027 9.121,0 z" /><path + id="path3749" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 560.73,101.406 -56.64,0 c 0,-7.48 2.015,-13.093 6.047,-16.832 4.093,-3.742 9.297,-5.613 15.609,-5.613 7.539,0 14.203,2.922 19.988,8.769 l 13.243,-11.312 c -4.504,-5.258 -9.586,-9.031 -15.258,-11.309 -5.61,-2.222 -11.485,-3.332 -17.621,-3.332 -9.356,0 -18.414,3.008 -27.184,9.032 -8.766,6.078 -13.152,18.468 -13.152,37.175 0,17.711 4.035,29.957 12.101,36.739 8.125,6.777 16.602,10.168 25.426,10.168 9.996,0 18.734,-3.477 26.219,-10.434 7.48,-6.898 11.222,-16.219 11.222,-27.969 l 0,-15.082 z m -56.64,15.082 38.402,0 c -0.293,6.84 -2.222,12.071 -5.789,15.696 -3.562,3.625 -8.035,5.433 -13.414,5.433 -5.434,0 -9.965,-1.808 -13.59,-5.433 -3.566,-3.625 -5.433,-8.856 -5.609,-15.696 z" /><path + id="path3751" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 586.445,62.828 0,91.012 18.325,0 0,-9.735 0.351,0 c 5.672,7.192 13.563,10.786 23.672,10.786 6.664,0 13.008,-2.336 19.027,-7.012 l -13.238,-15.785 c -3.977,2.984 -8.008,4.472 -12.102,4.472 -4.5,0 -8.589,-1.519 -12.273,-4.558 -3.625,-2.981 -5.437,-7.805 -5.437,-14.469 l 0,-54.711 -18.325,0 z" /><path + id="path3753" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 58.867,351.293 8.828,10.039 c 3.305,-2.66 7.114,-4.797 11.426,-6.41 4.313,-1.613 8.828,-2.418 13.543,-2.418 5.441,0 9.715,1.129 12.816,3.387 3.106,2.254 4.657,5.218 4.657,8.886 0,6.934 -3.828,10.903 -11.489,11.911 -2.015,0.242 -3.886,0.484 -5.621,0.726 -1.734,0.238 -3.75,0.524 -6.047,0.844 -7.617,1.051 -13.421,3.828 -17.41,8.344 -3.992,4.554 -5.988,10.035 -5.988,16.445 0,7.496 2.5,13.664 7.5,18.5 5.035,4.836 12.109,7.254 21.219,7.254 5.441,0 10.562,-0.863 15.359,-2.598 4.793,-1.734 9.207,-3.93 13.238,-6.59 l -7.437,-11.004 c -3.223,2.016 -6.688,3.649 -10.398,4.899 -3.708,1.246 -7.497,1.871 -11.368,1.871 -4.109,0 -7.597,-1.047 -10.457,-3.141 -2.863,-2.097 -4.293,-5.242 -4.293,-9.433 0,-2.5 0.969,-4.836 2.903,-7.012 1.933,-2.176 5.136,-3.609 9.613,-4.293 1.168,-0.203 2.578,-0.426 4.23,-0.664 1.653,-0.203 3.547,-0.426 5.684,-0.668 8.223,-1.008 14.289,-3.988 18.199,-8.945 3.949,-4.961 5.926,-10.442 5.926,-16.446 0,-8.101 -2.805,-14.39 -8.406,-18.863 -5.602,-4.476 -13.117,-6.711 -22.551,-6.711 -13.262,0 -24.484,4.031 -33.676,12.09 z" /><path + id="path3755" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 177.383,358.367 9.308,-8.344 c -2.742,-3.144 -6.003,-5.742 -9.793,-7.796 -3.75,-2.016 -8,-3.024 -12.757,-3.024 -7.254,0 -13.825,2.457 -19.711,7.375 -5.844,4.957 -8.766,13.18 -8.766,24.668 0,11.488 2.922,19.711 8.766,24.668 5.886,4.996 12.457,7.496 19.711,7.496 4.757,0 9.007,-1.027 12.757,-3.082 3.79,-2.058 7.051,-4.656 9.793,-7.801 l -9.308,-8.281 c -3.547,4.352 -7.801,6.527 -12.758,6.527 -10.883,0 -16.324,-6.507 -16.324,-19.527 0,-12.98 5.441,-19.469 16.324,-19.469 4.996,0 9.25,2.196 12.758,6.59 z" /><path + id="path3757" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 200.457,339.93 0,88.086 12.637,0 0,-32.043 0.242,0 c 3.91,4.957 9.352,7.437 16.324,7.437 4.875,0 9.57,-1.855 14.086,-5.562 4.555,-3.707 6.832,-9.11 6.832,-16.203 l 0,-41.715 -12.637,0 0,37.363 c 0,4.23 -1.187,7.535 -3.566,9.914 -2.34,2.379 -5.262,3.566 -8.766,3.566 -3.629,0 -6.632,-1.187 -9.007,-3.566 -2.34,-2.379 -3.508,-5.684 -3.508,-9.914 l 0,-37.363 -12.637,0 z" /><path + id="path3759" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 269.145,371.367 c 0,6.731 0.523,11.75 1.57,15.055 1.047,3.305 2.781,6.285 5.199,8.945 1.734,1.895 4.113,3.711 7.137,5.442 3.062,1.734 7.051,2.601 11.969,2.601 4.835,0 8.785,-0.867 11.851,-2.601 3.063,-1.731 5.461,-3.547 7.195,-5.442 2.418,-2.66 4.149,-5.64 5.2,-8.945 1.047,-3.305 1.57,-8.324 1.57,-15.055 0,-6.851 -0.523,-11.929 -1.57,-15.234 -1.051,-3.309 -2.782,-6.289 -5.2,-8.949 -1.734,-1.934 -4.132,-3.75 -7.195,-5.442 -3.066,-1.695 -7.016,-2.539 -11.851,-2.539 -4.918,0 -8.907,0.844 -11.969,2.539 -3.024,1.692 -5.403,3.508 -7.137,5.442 -2.418,2.66 -4.152,5.64 -5.199,8.949 -1.047,3.305 -1.57,8.383 -1.57,15.234 z m 39.117,-0.121 c 0,4.555 -0.242,7.758 -0.727,9.613 -0.445,1.852 -1.23,3.625 -2.359,5.321 -2.215,3.062 -5.602,4.593 -10.156,4.593 -4.637,0 -8.02,-1.531 -10.157,-4.593 -1.211,-1.696 -2.035,-3.469 -2.48,-5.321 -0.403,-1.855 -0.602,-5.019 -0.602,-9.492 0,-4.594 0.199,-7.84 0.602,-9.734 0.445,-1.856 1.269,-3.61 2.48,-5.262 2.137,-3.062 5.52,-4.594 10.157,-4.594 4.554,0 7.941,1.532 10.156,4.594 1.129,1.652 1.914,3.406 2.359,5.262 0.485,1.855 0.727,5.058 0.727,9.613 z" /><path + id="path3761" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 342.488,402.684 0,19.046 12.637,0 0,-19.046 9.191,0 0,-9.672 -9.191,0 0,-36.52 c 0,-3.14 1.492,-4.715 4.473,-4.715 l 4.718,0 0,-11.847 -6.589,0 c -4.395,0 -8.043,1.328 -10.946,3.988 -2.859,2.66 -4.293,6.469 -4.293,11.426 l 0,37.668 -6.285,0 0,9.672 6.285,0 z" /><path + id="path3763" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 382.77,402.684 0,19.046 12.636,0 0,-19.046 9.188,0 0,-9.672 -9.188,0 0,-36.52 c 0,-3.14 1.489,-4.715 4.473,-4.715 l 4.715,0 0,-11.847 -6.59,0 c -4.395,0 -8.039,1.328 -10.941,3.988 -2.864,2.66 -4.293,6.469 -4.293,11.426 l 0,37.668 -6.29,0 0,9.672 6.29,0 z" /><path + id="path3765" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 471.652,366.531 -39.054,0 c 0,-5.16 1.39,-9.031 4.168,-11.609 2.824,-2.578 6.41,-3.871 10.761,-3.871 5.203,0 9.797,2.015 13.786,6.047 l 9.128,-7.797 c -3.101,-3.629 -6.609,-6.231 -10.519,-7.801 -3.867,-1.531 -7.918,-2.297 -12.152,-2.297 -6.45,0 -12.696,2.074 -18.743,6.227 -6.043,4.191 -9.066,12.738 -9.066,25.633 0,12.214 2.781,20.66 8.344,25.332 5.601,4.675 11.445,7.015 17.531,7.015 6.894,0 12.918,-2.398 18.078,-7.195 5.16,-4.758 7.738,-11.184 7.738,-19.285 l 0,-10.399 z m -39.054,10.399 26.48,0 c -0.203,4.715 -1.531,8.32 -3.992,10.82 -2.457,2.5 -5.543,3.75 -9.25,3.75 -3.746,0 -6.871,-1.25 -9.371,-3.75 -2.457,-2.5 -3.746,-6.105 -3.867,-10.82 z" /><path + id="path3767" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 491.816,339.93 0,62.754 12.637,0 0,-6.711 0.242,0 c 3.91,4.957 9.352,7.437 16.325,7.437 4.878,0 9.574,-1.855 14.085,-5.562 4.555,-3.707 6.833,-9.11 6.833,-16.203 l 0,-41.715 -12.637,0 0,37.363 c 0,4.23 -1.188,7.535 -3.567,9.914 -2.336,2.379 -5.257,3.566 -8.765,3.566 -3.629,0 -6.629,-1.187 -9.008,-3.566 -2.34,-2.379 -3.508,-5.684 -3.508,-9.914 l 0,-37.363 -12.637,0 z" /></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/TrafficCalmedDistrictBegin_325.1.svg b/content/html/_images/TrafficCalmedDistrictBegin_325.1.svg index 0a8cf758bda9f97fc611d67b46048252016046d6..9b0b85630ce226e95fc5bfbfc63067f722a7be7b 100644 --- a/content/html/_images/TrafficCalmedDistrictBegin_325.1.svg +++ b/content/html/_images/TrafficCalmedDistrictBegin_325.1.svg @@ -1,85 +1,85 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 732.08002 488.90372" - height="488.90372" - width="732.08002" - xml:space="preserve" - version="1.1" - id="svg3682"><metadata - id="metadata3688"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs3686"><clipPath - id="clipPath3698" - clipPathUnits="userSpaceOnUse"><path - id="path3700" - d="m 0,390.963 586,0 0,-391 -586,0 0,391 z" /></clipPath><clipPath - id="clipPath3708" - clipPathUnits="userSpaceOnUse"><path - id="path3710" - d="M 0,1 586,1 586,392 0,392 0,1 Z" /></clipPath></defs><g - transform="matrix(1.25,0,0,-1.25,0,488.90373)" - id="g3690"><g - id="g3692" /><g - id="g3694"><g - clip-path="url(#clipPath3698)" - id="g3696"><g - transform="translate(0,-0.877014)" - id="g3702"><g - id="g3704"><g - clip-path="url(#clipPath3708)" - id="g3706"><g - id="g3712"><path - id="path3714" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 26.379,1.504 C 12.023,1.504 0.387,13.152 0.387,27.512 l 0,337.933 c 0,14.356 11.636,25.996 25.992,25.996 l 532.906,0 c 14.356,0 25.992,-11.64 25.992,-25.996 l 0,-337.933 c 0,-14.36 -11.636,-26.008 -25.992,-26.008" /><path - id="path3716" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 26.379,391.84 C 11.836,391.84 0,380.004 0,365.445 L 0,27.512 C 0,12.969 11.836,1.117 26.379,1.117 l 532.906,0 c 14.543,0 26.379,11.852 26.379,26.395 l 0,337.933 c 0,14.559 -11.836,26.395 -26.379,26.395 l -532.906,0 z m 0,-0.399 532.906,0 c 14.356,0 25.992,-11.64 25.992,-25.996 l 0,-337.933 c 0,-14.36 -11.636,-26.008 -25.992,-26.008 l -532.906,0 C 12.023,1.504 0.387,13.152 0.387,27.512 l 0,337.933 c 0,14.356 11.636,25.996 25.992,25.996 z" /></g></g></g></g><path - id="path3718" - style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 26.379,10.369 c -8.969,0 -16.234,7.293 -16.234,16.266 l 0,337.933 c 0,8.973 7.265,16.25 16.234,16.25 l 532.906,0 c 8.969,0 16.262,-7.277 16.262,-16.25 l 0,-337.933 c 0,-8.973 -7.293,-16.266 -16.262,-16.266" /><path - id="path3720" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 126.133,155.603 0,-119.878 c -11.508,0 -20.836,9.343 -20.836,20.847 l 0,72.973 L 53.176,46.15 c -9.774,6.106 -12.731,18.969 -6.641,28.727 l 37.91,60.652 0,20.074" /><path - id="path3722" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 126.133,160.814 -41.688,0 0,39.313 -27.832,-44.524 c -8.543,5.332 -11.144,16.598 -5.797,25.129 l 36.805,58.891 c 6.09,9.758 18.953,12.73 28.727,6.625 6.09,-3.813 9.785,-10.488 9.785,-17.688 l 0,-23.449 39.097,-23.445 c -5.187,-8.641 -16.386,-11.438 -25.023,-6.254 l -14.074,8.438" /><path - id="path3724" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 139.168,278.084 c 0,-11.52 -9.332,-20.852 -20.848,-20.852 -11.519,0 -20.847,9.332 -20.847,20.852 0,11.516 9.328,20.848 20.847,20.848 11.516,0 20.848,-9.332 20.848,-20.848" /><path - id="path3726" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 248.504,50.842 c 0,-8.344 -6.774,-15.117 -15.117,-15.117 -8.36,0 -15.129,6.773 -15.129,15.117 0,8.359 6.769,15.129 15.129,15.129 8.343,0 15.117,-6.77 15.117,-15.129" /><path - id="path3728" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 321.086,114.346 302.062,98.564 c -4.21,-3.48 -10.382,-3.187 -14.25,0.664 l 33.54,33.54 c 6.984,-2.946 14.984,-2.2 21.316,1.972 l 22.367,-4.945 c 0.895,-0.211 1.653,-0.785 2.055,-1.613 l 11.449,-22.899 c -5.227,-2.613 -11.582,-0.492 -14.195,4.731 l -5.465,10.386 -10.586,0 9.078,-36.285 20.461,-1.547 c 5.52,-0.414 9.785,-5.011 9.785,-10.547 l -34.672,0 c -1.011,0 -1.961,0.508 -2.519,1.348 l -5.145,7.719 -10.586,-3.012 0,-31.781 c 0,-5.664 -4.465,-10.305 -10.117,-10.57" /><path - id="path3730" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 345.281,153.67 c 0,-8.356 -6.773,-15.129 -15.117,-15.129 -8.359,0 -15.129,6.773 -15.129,15.129 0,8.359 6.77,15.117 15.129,15.117 8.344,0 15.117,-6.758 15.117,-15.117" /><path - id="path3732" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 227.035,339.885 c -2.906,0 -5.547,-1.727 -6.707,-4.395 L 208.77,308.893 c -0.817,-1.868 -1.86,-3.649 -3.086,-5.29 l -1.75,-2.332 c -1.133,-1.519 -1.746,-3.355 -1.746,-5.25 l 0,-19.039 c 0,-4.023 3.25,-7.289 7.289,-7.289 l 108.222,0 c 4.028,0 7.313,3.266 7.313,7.289 l 0,19.039 c 0,1.895 -0.625,3.731 -1.77,5.25 l -1.75,2.332 c -1.242,1.641 -2.25,3.422 -3.062,5.29 l -11.582,26.597 c -1.157,2.668 -3.801,4.395 -6.707,4.395 l -73.106,0 z m 1.77,-7.328 69.566,0 c 1.176,0 2.223,-0.684 2.688,-1.75 l 10.058,-23.102 -95.039,0 10.039,23.102 c 0.469,1.066 1.528,1.75 2.688,1.75 z m -10.539,-32.161 c 4.851,0 8.769,-3.937 8.769,-8.789 0,-4.839 -3.918,-8.769 -8.769,-8.769 -4.84,0 -8.789,3.93 -8.789,8.769 0,4.852 3.949,8.789 8.789,8.789 z m 90.644,0 c 4.852,0 8.789,-3.937 8.789,-8.789 0,-4.839 -3.937,-8.769 -8.789,-8.769 -4.836,0 -8.769,3.93 -8.769,8.769 0,4.852 3.933,8.789 8.769,8.789 z" /><path - id="path3734" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 209.484,266.764 17.543,0 0,-16.09 c 0,-2.426 -1.961,-4.383 -4.386,-4.383 l -8.77,0 c -2.426,0 -4.387,1.957 -4.387,4.383" /><path - id="path3736" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 300.145,266.764 17.554,0 0,-16.09 c 0,-2.426 -1.972,-4.383 -4.398,-4.383 l -8.758,0 c -2.426,0 -4.398,1.957 -4.398,4.383" /><path - id="path3738" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 474.164,352.217 -15.746,-10.289 0,7.144 -15.766,0 0,-17.433 -50.386,-32.95 28.347,0 0,-110.246 107.082,0 0,110.246 28.348,0 -81.879,53.528 z m 0,-9.434 44.094,-36.223 0,-108.664 -31.512,0 0,47.243 -25.184,0 0,-47.243 -31.492,0 0,108.664 44.094,36.223 z" /><path - id="path3740" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 442.641,298.674 25.223,0 0,-31.496 -25.223,0 0,31.496 z" /><path - id="path3742" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 480.445,298.674 25.203,0 0,-31.496 -25.203,0 0,31.496 z" /><path - id="path3744" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 732.08002 488.90372" + height="488.90372" + width="732.08002" + xml:space="preserve" + version="1.1" + id="svg3682"><metadata + id="metadata3688"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs3686"><clipPath + id="clipPath3698" + clipPathUnits="userSpaceOnUse"><path + id="path3700" + d="m 0,390.963 586,0 0,-391 -586,0 0,391 z" /></clipPath><clipPath + id="clipPath3708" + clipPathUnits="userSpaceOnUse"><path + id="path3710" + d="M 0,1 586,1 586,392 0,392 0,1 Z" /></clipPath></defs><g + transform="matrix(1.25,0,0,-1.25,0,488.90373)" + id="g3690"><g + id="g3692" /><g + id="g3694"><g + clip-path="url(#clipPath3698)" + id="g3696"><g + transform="translate(0,-0.877014)" + id="g3702"><g + id="g3704"><g + clip-path="url(#clipPath3708)" + id="g3706"><g + id="g3712"><path + id="path3714" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 26.379,1.504 C 12.023,1.504 0.387,13.152 0.387,27.512 l 0,337.933 c 0,14.356 11.636,25.996 25.992,25.996 l 532.906,0 c 14.356,0 25.992,-11.64 25.992,-25.996 l 0,-337.933 c 0,-14.36 -11.636,-26.008 -25.992,-26.008" /><path + id="path3716" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 26.379,391.84 C 11.836,391.84 0,380.004 0,365.445 L 0,27.512 C 0,12.969 11.836,1.117 26.379,1.117 l 532.906,0 c 14.543,0 26.379,11.852 26.379,26.395 l 0,337.933 c 0,14.559 -11.836,26.395 -26.379,26.395 l -532.906,0 z m 0,-0.399 532.906,0 c 14.356,0 25.992,-11.64 25.992,-25.996 l 0,-337.933 c 0,-14.36 -11.636,-26.008 -25.992,-26.008 l -532.906,0 C 12.023,1.504 0.387,13.152 0.387,27.512 l 0,337.933 c 0,14.356 11.636,25.996 25.992,25.996 z" /></g></g></g></g><path + id="path3718" + style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 26.379,10.369 c -8.969,0 -16.234,7.293 -16.234,16.266 l 0,337.933 c 0,8.973 7.265,16.25 16.234,16.25 l 532.906,0 c 8.969,0 16.262,-7.277 16.262,-16.25 l 0,-337.933 c 0,-8.973 -7.293,-16.266 -16.262,-16.266" /><path + id="path3720" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 126.133,155.603 0,-119.878 c -11.508,0 -20.836,9.343 -20.836,20.847 l 0,72.973 L 53.176,46.15 c -9.774,6.106 -12.731,18.969 -6.641,28.727 l 37.91,60.652 0,20.074" /><path + id="path3722" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 126.133,160.814 -41.688,0 0,39.313 -27.832,-44.524 c -8.543,5.332 -11.144,16.598 -5.797,25.129 l 36.805,58.891 c 6.09,9.758 18.953,12.73 28.727,6.625 6.09,-3.813 9.785,-10.488 9.785,-17.688 l 0,-23.449 39.097,-23.445 c -5.187,-8.641 -16.386,-11.438 -25.023,-6.254 l -14.074,8.438" /><path + id="path3724" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 139.168,278.084 c 0,-11.52 -9.332,-20.852 -20.848,-20.852 -11.519,0 -20.847,9.332 -20.847,20.852 0,11.516 9.328,20.848 20.847,20.848 11.516,0 20.848,-9.332 20.848,-20.848" /><path + id="path3726" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 248.504,50.842 c 0,-8.344 -6.774,-15.117 -15.117,-15.117 -8.36,0 -15.129,6.773 -15.129,15.117 0,8.359 6.769,15.129 15.129,15.129 8.343,0 15.117,-6.77 15.117,-15.129" /><path + id="path3728" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 321.086,114.346 302.062,98.564 c -4.21,-3.48 -10.382,-3.187 -14.25,0.664 l 33.54,33.54 c 6.984,-2.946 14.984,-2.2 21.316,1.972 l 22.367,-4.945 c 0.895,-0.211 1.653,-0.785 2.055,-1.613 l 11.449,-22.899 c -5.227,-2.613 -11.582,-0.492 -14.195,4.731 l -5.465,10.386 -10.586,0 9.078,-36.285 20.461,-1.547 c 5.52,-0.414 9.785,-5.011 9.785,-10.547 l -34.672,0 c -1.011,0 -1.961,0.508 -2.519,1.348 l -5.145,7.719 -10.586,-3.012 0,-31.781 c 0,-5.664 -4.465,-10.305 -10.117,-10.57" /><path + id="path3730" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 345.281,153.67 c 0,-8.356 -6.773,-15.129 -15.117,-15.129 -8.359,0 -15.129,6.773 -15.129,15.129 0,8.359 6.77,15.117 15.129,15.117 8.344,0 15.117,-6.758 15.117,-15.117" /><path + id="path3732" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 227.035,339.885 c -2.906,0 -5.547,-1.727 -6.707,-4.395 L 208.77,308.893 c -0.817,-1.868 -1.86,-3.649 -3.086,-5.29 l -1.75,-2.332 c -1.133,-1.519 -1.746,-3.355 -1.746,-5.25 l 0,-19.039 c 0,-4.023 3.25,-7.289 7.289,-7.289 l 108.222,0 c 4.028,0 7.313,3.266 7.313,7.289 l 0,19.039 c 0,1.895 -0.625,3.731 -1.77,5.25 l -1.75,2.332 c -1.242,1.641 -2.25,3.422 -3.062,5.29 l -11.582,26.597 c -1.157,2.668 -3.801,4.395 -6.707,4.395 l -73.106,0 z m 1.77,-7.328 69.566,0 c 1.176,0 2.223,-0.684 2.688,-1.75 l 10.058,-23.102 -95.039,0 10.039,23.102 c 0.469,1.066 1.528,1.75 2.688,1.75 z m -10.539,-32.161 c 4.851,0 8.769,-3.937 8.769,-8.789 0,-4.839 -3.918,-8.769 -8.769,-8.769 -4.84,0 -8.789,3.93 -8.789,8.769 0,4.852 3.949,8.789 8.789,8.789 z m 90.644,0 c 4.852,0 8.789,-3.937 8.789,-8.789 0,-4.839 -3.937,-8.769 -8.789,-8.769 -4.836,0 -8.769,3.93 -8.769,8.769 0,4.852 3.933,8.789 8.769,8.789 z" /><path + id="path3734" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 209.484,266.764 17.543,0 0,-16.09 c 0,-2.426 -1.961,-4.383 -4.386,-4.383 l -8.77,0 c -2.426,0 -4.387,1.957 -4.387,4.383" /><path + id="path3736" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 300.145,266.764 17.554,0 0,-16.09 c 0,-2.426 -1.972,-4.383 -4.398,-4.383 l -8.758,0 c -2.426,0 -4.398,1.957 -4.398,4.383" /><path + id="path3738" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 474.164,352.217 -15.746,-10.289 0,7.144 -15.766,0 0,-17.433 -50.386,-32.95 28.347,0 0,-110.246 107.082,0 0,110.246 28.348,0 -81.879,53.528 z m 0,-9.434 44.094,-36.223 0,-108.664 -31.512,0 0,47.243 -25.184,0 0,-47.243 -31.492,0 0,108.664 44.094,36.223 z" /><path + id="path3740" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 442.641,298.674 25.223,0 0,-31.496 -25.223,0 0,31.496 z" /><path + id="path3742" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 480.445,298.674 25.203,0 0,-31.496 -25.203,0 0,31.496 z" /><path + id="path3744" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 526.785,59.119 -108.07,78.168 c -34.977,25.289 -55.692,65.84 -55.692,109.004 l 13.157,0 c 0,-38.938 18.687,-75.531 50.242,-98.352 L 526.785,74.943" /></g></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/TrafficCalmedDistrictEnd_325.2.svg b/content/html/_images/TrafficCalmedDistrictEnd_325.2.svg index 06856179a2d107a8dc40875eaad64885f14bd684..d166d12c0fe635c5c97ea68c1391618a4d8615d9 100644 --- a/content/html/_images/TrafficCalmedDistrictEnd_325.2.svg +++ b/content/html/_images/TrafficCalmedDistrictEnd_325.2.svg @@ -1,88 +1,88 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - viewBox="0 0 732.08002 488.90372" - height="488.90372" - width="732.08002" - xml:space="preserve" - version="1.1" - id="svg3559"><metadata - id="metadata3565"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs - id="defs3563"><clipPath - id="clipPath3575" - clipPathUnits="userSpaceOnUse"><path - id="path3577" - d="m 0,390.963 586,0 0,-391 -586,0 0,391 z" /></clipPath><clipPath - id="clipPath3585" - clipPathUnits="userSpaceOnUse"><path - id="path3587" - d="M 0,1 586,1 586,392 0,392 0,1 Z" /></clipPath></defs><g - transform="matrix(1.25,0,0,-1.25,0,488.90373)" - id="g3567"><g - id="g3569" /><g - id="g3571"><g - clip-path="url(#clipPath3575)" - id="g3573"><g - transform="translate(0,-0.877014)" - id="g3579"><g - id="g3581"><g - clip-path="url(#clipPath3585)" - id="g3583"><g - id="g3589"><path - id="path3591" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 26.379,1.504 C 12.023,1.504 0.387,13.152 0.387,27.512 l 0,337.933 c 0,14.356 11.636,25.996 25.992,25.996 l 532.906,0 c 14.356,0 25.992,-11.64 25.992,-25.996 l 0,-337.933 c 0,-14.36 -11.636,-26.008 -25.992,-26.008" /><path - id="path3593" - style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 26.379,391.84 C 11.836,391.84 0,380.004 0,365.445 L 0,27.512 C 0,12.969 11.836,1.117 26.379,1.117 l 532.906,0 c 14.543,0 26.379,11.852 26.379,26.395 l 0,337.933 c 0,14.559 -11.836,26.395 -26.379,26.395 l -532.906,0 z m 0,-0.399 532.906,0 c 14.356,0 25.992,-11.64 25.992,-25.996 l 0,-337.933 c 0,-14.36 -11.636,-26.008 -25.992,-26.008 l -532.906,0 C 12.023,1.504 0.387,13.152 0.387,27.512 l 0,337.933 c 0,14.356 11.636,25.996 25.992,25.996 z" /></g></g></g></g><path - id="path3595" - style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 26.379,10.369 c -8.969,0 -16.234,7.293 -16.234,16.266 l 0,337.933 c 0,8.973 7.265,16.25 16.234,16.25 l 532.906,0 c 8.969,0 16.262,-7.277 16.262,-16.25 l 0,-337.933 c 0,-8.973 -7.293,-16.266 -16.262,-16.266" /><path - id="path3597" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 126.133,155.603 0,-119.878 c -11.508,0 -20.836,9.343 -20.836,20.847 l 0,72.973 L 53.176,46.15 c -9.774,6.106 -12.731,18.969 -6.641,28.727 l 37.91,60.652 0,20.074" /><path - id="path3599" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 126.133,160.814 -41.688,0 0,39.313 -27.832,-44.524 c -8.543,5.332 -11.144,16.598 -5.797,25.129 l 36.805,58.891 c 6.09,9.758 18.953,12.73 28.727,6.625 6.09,-3.813 9.785,-10.488 9.785,-17.688 l 0,-23.449 39.097,-23.445 c -5.187,-8.641 -16.386,-11.438 -25.023,-6.254 l -14.074,8.438" /><path - id="path3601" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 139.168,278.084 c 0,-11.52 -9.332,-20.852 -20.848,-20.852 -11.519,0 -20.847,9.332 -20.847,20.852 0,11.516 9.328,20.848 20.847,20.848 11.516,0 20.848,-9.332 20.848,-20.848" /><path - id="path3603" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 248.504,50.842 c 0,-8.344 -6.774,-15.117 -15.117,-15.117 -8.36,0 -15.129,6.773 -15.129,15.117 0,8.359 6.769,15.129 15.129,15.129 8.343,0 15.117,-6.77 15.117,-15.129" /><path - id="path3605" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="M 321.086,114.346 302.062,98.564 c -4.21,-3.48 -10.382,-3.187 -14.25,0.664 l 33.54,33.54 c 6.984,-2.946 14.984,-2.2 21.316,1.972 l 22.367,-4.945 c 0.895,-0.211 1.653,-0.785 2.055,-1.613 l 11.449,-22.899 c -5.227,-2.613 -11.582,-0.492 -14.195,4.731 l -5.465,10.386 -10.586,0 9.078,-36.285 20.461,-1.547 c 5.52,-0.414 9.785,-5.011 9.785,-10.547 l -34.672,0 c -1.011,0 -1.961,0.508 -2.519,1.348 l -5.145,7.719 -10.586,-3.012 0,-31.781 c 0,-5.664 -4.465,-10.305 -10.117,-10.57" /><path - id="path3607" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 345.281,153.67 c 0,-8.356 -6.773,-15.129 -15.117,-15.129 -8.359,0 -15.129,6.773 -15.129,15.129 0,8.359 6.77,15.117 15.129,15.117 8.344,0 15.117,-6.758 15.117,-15.117" /><path - id="path3609" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 227.035,339.885 c -2.906,0 -5.547,-1.727 -6.707,-4.395 L 208.77,308.893 c -0.817,-1.868 -1.86,-3.649 -3.086,-5.29 l -1.75,-2.332 c -1.133,-1.519 -1.746,-3.355 -1.746,-5.25 l 0,-19.039 c 0,-4.023 3.25,-7.289 7.289,-7.289 l 108.222,0 c 4.028,0 7.313,3.266 7.313,7.289 l 0,19.039 c 0,1.895 -0.625,3.731 -1.77,5.25 l -1.75,2.332 c -1.242,1.641 -2.25,3.422 -3.062,5.29 l -11.582,26.597 c -1.157,2.668 -3.801,4.395 -6.707,4.395 l -73.106,0 z m 1.77,-7.328 69.566,0 c 1.176,0 2.223,-0.684 2.688,-1.75 l 10.058,-23.102 -95.039,0 10.039,23.102 c 0.469,1.066 1.528,1.75 2.688,1.75 z m -10.539,-32.161 c 4.851,0 8.769,-3.937 8.769,-8.789 0,-4.839 -3.918,-8.769 -8.769,-8.769 -4.84,0 -8.789,3.93 -8.789,8.769 0,4.852 3.949,8.789 8.789,8.789 z m 90.644,0 c 4.852,0 8.789,-3.937 8.789,-8.789 0,-4.839 -3.937,-8.769 -8.789,-8.769 -4.836,0 -8.769,3.93 -8.769,8.769 0,4.852 3.933,8.789 8.769,8.789 z" /><path - id="path3611" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 209.484,266.764 17.543,0 0,-16.09 c 0,-2.426 -1.961,-4.383 -4.386,-4.383 l -8.77,0 c -2.426,0 -4.387,1.957 -4.387,4.383" /><path - id="path3613" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 300.145,266.764 17.554,0 0,-16.09 c 0,-2.426 -1.972,-4.383 -4.398,-4.383 l -8.758,0 c -2.426,0 -4.398,1.957 -4.398,4.383" /><path - id="path3615" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 474.164,352.217 -15.746,-10.289 0,7.144 -15.766,0 0,-17.433 -50.386,-32.95 28.347,0 0,-110.246 107.082,0 0,110.246 28.348,0 -81.879,53.528 z m 0,-9.434 44.094,-36.223 0,-108.664 -31.512,0 0,47.243 -25.184,0 0,-47.243 -31.492,0 0,108.664 44.094,36.223 z" /><path - id="path3617" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 442.641,298.674 25.223,0 0,-31.496 -25.223,0 0,31.496 z" /><path - id="path3619" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 480.445,298.674 25.203,0 0,-31.496 -25.203,0 0,31.496 z" /><path - id="path3621" - style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" - d="m 526.785,59.119 -108.07,78.168 c -34.977,25.289 -55.692,65.84 -55.692,109.004 l 13.157,0 c 0,-38.938 18.687,-75.531 50.242,-98.352 L 526.785,74.943" /><path - id="path3623" - style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + viewBox="0 0 732.08002 488.90372" + height="488.90372" + width="732.08002" + xml:space="preserve" + version="1.1" + id="svg3559"><metadata + id="metadata3565"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs + id="defs3563"><clipPath + id="clipPath3575" + clipPathUnits="userSpaceOnUse"><path + id="path3577" + d="m 0,390.963 586,0 0,-391 -586,0 0,391 z" /></clipPath><clipPath + id="clipPath3585" + clipPathUnits="userSpaceOnUse"><path + id="path3587" + d="M 0,1 586,1 586,392 0,392 0,1 Z" /></clipPath></defs><g + transform="matrix(1.25,0,0,-1.25,0,488.90373)" + id="g3567"><g + id="g3569" /><g + id="g3571"><g + clip-path="url(#clipPath3575)" + id="g3573"><g + transform="translate(0,-0.877014)" + id="g3579"><g + id="g3581"><g + clip-path="url(#clipPath3585)" + id="g3583"><g + id="g3589"><path + id="path3591" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 26.379,1.504 C 12.023,1.504 0.387,13.152 0.387,27.512 l 0,337.933 c 0,14.356 11.636,25.996 25.992,25.996 l 532.906,0 c 14.356,0 25.992,-11.64 25.992,-25.996 l 0,-337.933 c 0,-14.36 -11.636,-26.008 -25.992,-26.008" /><path + id="path3593" + style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 26.379,391.84 C 11.836,391.84 0,380.004 0,365.445 L 0,27.512 C 0,12.969 11.836,1.117 26.379,1.117 l 532.906,0 c 14.543,0 26.379,11.852 26.379,26.395 l 0,337.933 c 0,14.559 -11.836,26.395 -26.379,26.395 l -532.906,0 z m 0,-0.399 532.906,0 c 14.356,0 25.992,-11.64 25.992,-25.996 l 0,-337.933 c 0,-14.36 -11.636,-26.008 -25.992,-26.008 l -532.906,0 C 12.023,1.504 0.387,13.152 0.387,27.512 l 0,337.933 c 0,14.356 11.636,25.996 25.992,25.996 z" /></g></g></g></g><path + id="path3595" + style="fill:#154889;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 26.379,10.369 c -8.969,0 -16.234,7.293 -16.234,16.266 l 0,337.933 c 0,8.973 7.265,16.25 16.234,16.25 l 532.906,0 c 8.969,0 16.262,-7.277 16.262,-16.25 l 0,-337.933 c 0,-8.973 -7.293,-16.266 -16.262,-16.266" /><path + id="path3597" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 126.133,155.603 0,-119.878 c -11.508,0 -20.836,9.343 -20.836,20.847 l 0,72.973 L 53.176,46.15 c -9.774,6.106 -12.731,18.969 -6.641,28.727 l 37.91,60.652 0,20.074" /><path + id="path3599" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 126.133,160.814 -41.688,0 0,39.313 -27.832,-44.524 c -8.543,5.332 -11.144,16.598 -5.797,25.129 l 36.805,58.891 c 6.09,9.758 18.953,12.73 28.727,6.625 6.09,-3.813 9.785,-10.488 9.785,-17.688 l 0,-23.449 39.097,-23.445 c -5.187,-8.641 -16.386,-11.438 -25.023,-6.254 l -14.074,8.438" /><path + id="path3601" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 139.168,278.084 c 0,-11.52 -9.332,-20.852 -20.848,-20.852 -11.519,0 -20.847,9.332 -20.847,20.852 0,11.516 9.328,20.848 20.847,20.848 11.516,0 20.848,-9.332 20.848,-20.848" /><path + id="path3603" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 248.504,50.842 c 0,-8.344 -6.774,-15.117 -15.117,-15.117 -8.36,0 -15.129,6.773 -15.129,15.117 0,8.359 6.769,15.129 15.129,15.129 8.343,0 15.117,-6.77 15.117,-15.129" /><path + id="path3605" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="M 321.086,114.346 302.062,98.564 c -4.21,-3.48 -10.382,-3.187 -14.25,0.664 l 33.54,33.54 c 6.984,-2.946 14.984,-2.2 21.316,1.972 l 22.367,-4.945 c 0.895,-0.211 1.653,-0.785 2.055,-1.613 l 11.449,-22.899 c -5.227,-2.613 -11.582,-0.492 -14.195,4.731 l -5.465,10.386 -10.586,0 9.078,-36.285 20.461,-1.547 c 5.52,-0.414 9.785,-5.011 9.785,-10.547 l -34.672,0 c -1.011,0 -1.961,0.508 -2.519,1.348 l -5.145,7.719 -10.586,-3.012 0,-31.781 c 0,-5.664 -4.465,-10.305 -10.117,-10.57" /><path + id="path3607" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 345.281,153.67 c 0,-8.356 -6.773,-15.129 -15.117,-15.129 -8.359,0 -15.129,6.773 -15.129,15.129 0,8.359 6.77,15.117 15.129,15.117 8.344,0 15.117,-6.758 15.117,-15.117" /><path + id="path3609" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 227.035,339.885 c -2.906,0 -5.547,-1.727 -6.707,-4.395 L 208.77,308.893 c -0.817,-1.868 -1.86,-3.649 -3.086,-5.29 l -1.75,-2.332 c -1.133,-1.519 -1.746,-3.355 -1.746,-5.25 l 0,-19.039 c 0,-4.023 3.25,-7.289 7.289,-7.289 l 108.222,0 c 4.028,0 7.313,3.266 7.313,7.289 l 0,19.039 c 0,1.895 -0.625,3.731 -1.77,5.25 l -1.75,2.332 c -1.242,1.641 -2.25,3.422 -3.062,5.29 l -11.582,26.597 c -1.157,2.668 -3.801,4.395 -6.707,4.395 l -73.106,0 z m 1.77,-7.328 69.566,0 c 1.176,0 2.223,-0.684 2.688,-1.75 l 10.058,-23.102 -95.039,0 10.039,23.102 c 0.469,1.066 1.528,1.75 2.688,1.75 z m -10.539,-32.161 c 4.851,0 8.769,-3.937 8.769,-8.789 0,-4.839 -3.918,-8.769 -8.769,-8.769 -4.84,0 -8.789,3.93 -8.789,8.769 0,4.852 3.949,8.789 8.789,8.789 z m 90.644,0 c 4.852,0 8.789,-3.937 8.789,-8.789 0,-4.839 -3.937,-8.769 -8.789,-8.769 -4.836,0 -8.769,3.93 -8.769,8.769 0,4.852 3.933,8.789 8.769,8.789 z" /><path + id="path3611" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 209.484,266.764 17.543,0 0,-16.09 c 0,-2.426 -1.961,-4.383 -4.386,-4.383 l -8.77,0 c -2.426,0 -4.387,1.957 -4.387,4.383" /><path + id="path3613" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 300.145,266.764 17.554,0 0,-16.09 c 0,-2.426 -1.972,-4.383 -4.398,-4.383 l -8.758,0 c -2.426,0 -4.398,1.957 -4.398,4.383" /><path + id="path3615" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 474.164,352.217 -15.746,-10.289 0,7.144 -15.766,0 0,-17.433 -50.386,-32.95 28.347,0 0,-110.246 107.082,0 0,110.246 28.348,0 -81.879,53.528 z m 0,-9.434 44.094,-36.223 0,-108.664 -31.512,0 0,47.243 -25.184,0 0,-47.243 -31.492,0 0,108.664 44.094,36.223 z" /><path + id="path3617" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 442.641,298.674 25.223,0 0,-31.496 -25.223,0 0,31.496 z" /><path + id="path3619" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 480.445,298.674 25.203,0 0,-31.496 -25.203,0 0,31.496 z" /><path + id="path3621" + style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" + d="m 526.785,59.119 -108.07,78.168 c -34.977,25.289 -55.692,65.84 -55.692,109.004 l 13.157,0 c 0,-38.938 18.687,-75.531 50.242,-98.352 L 526.785,74.943" /><path + id="path3623" + style="fill:#c1121c;fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 10.09,35.299 518.496,345.758 30.805,0 c 8.984,0 16.261,-7.278 16.261,-16.247 l 0,-8.64 -518.504,-345.758 -30.82,0 c -8.957,0 -16.238,7.289 -16.238,16.273" /></g></g></g></svg> \ No newline at end of file diff --git a/content/html/_images/WorldCoordinateSystem.svg b/content/html/_images/WorldCoordinateSystem.svg index 746a2b02e2cc54caca5b18b6d15f0db9b0c2cd0e..617949c1b8f1923883394ef385e874258df5a7fd 100644 --- a/content/html/_images/WorldCoordinateSystem.svg +++ b/content/html/_images/WorldCoordinateSystem.svg @@ -1,1422 +1,1422 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="140.03429mm" - viewBox="0 0 210 140.03429" - version="1.1" - id="svg12177" - sodipodi:docname="WorldCoordinateSystem.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - inkscape:export-filename="distance.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title524">WorldCoordinateSystem</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1.20625" - inkscape:cx="453.057" - inkscape:cy="330.7772" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="1912" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="layer5" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <marker - style="overflow:visible" - id="TriangleStart" - refX="3.5" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="TriangleStart" - markerWidth="5.3244081" - markerHeight="6.155385" - viewBox="0 0 5.3244081 6.1553851" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path135" /> - </marker> - <inkscape:path-effect - effect="offset" - id="path-effect38844" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="tiling" - id="path-effect38774" - is_visible="true" - lpeversion="1" - unit="px" - seed="1;1" - lpesatellites="" - num_rows="3" - num_cols="3" - gapx="0" - gapy="0" - offset="0" - offset_type="false" - scale="0" - rotate="0" - mirrorrowsx="false" - mirrorrowsy="false" - mirrorcolsx="false" - mirrorcolsy="false" - mirrortrans="false" - shrink_interp="false" - split_items="false" - link_styles="false" - interpolate_scalex="false" - interpolate_scaley="true" - interpolate_rotatex="false" - interpolate_rotatey="true" - random_scale="false" - random_rotate="false" - random_gap_y="false" - random_gap_x="false" - transformorigin="" /> - <inkscape:path-effect - effect="offset" - id="path-effect38772" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="0" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38550" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38546" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38542" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect38538" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32727" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32707" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32687" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <inkscape:path-effect - effect="fillet_chamfer" - id="path-effect32667" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" - unit="px" - method="auto" - mode="F" - radius="1" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="false" - hide_knots="false" /> - <linearGradient - inkscape:collect="always" - id="linearGradient30868"> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="0" - id="stop30858" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.1" - id="stop30860" /> - <stop - style="stop-color:#20ff00;stop-opacity:1;" - offset="0.5" - id="stop30862" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.89999998" - id="stop30864" /> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="1" - id="stop30866" /> - </linearGradient> - <linearGradient - inkscape:collect="always" - id="linearGradient27324"> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="0" - id="stop27314" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.1" - id="stop27316" /> - <stop - style="stop-color:#808080;stop-opacity:1;" - offset="0.5" - id="stop27318" /> - <stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.89999998" - id="stop27320" /> - <stop - style="stop-color:#333333;stop-opacity:1;" - offset="1" - id="stop27322" /> - </linearGradient> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient21572" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160" - x="-0.0121263" - y="-0.053139146" - width="1.0242526" - height="1.1062783"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-2" - x="-0.013209493" - y="-0.057885848" - width="1.026419" - height="1.1157717"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-8" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30536" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30628" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-2-0" - x="-0.013209493" - y="-0.057885848" - width="1.026419" - height="1.1157717"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-8-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter24160-7" - x="-0.0121263" - y="-0.053139146" - width="1.0242526" - height="1.1062783"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.018318553" - id="feGaussianBlur24162-5" /> - </filter> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30782" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30784" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient30786" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient30868" - id="radialGradient30820" - cx="-9.1586399" - cy="32.64447" - fx="-9.1586399" - fy="32.64447" - r="0.83166844" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.5708027,0,0,1.5708027,57.093948,42.136035)" /> - <radialGradient - inkscape:collect="always" - xlink:href="#linearGradient30868" - id="radialGradient38552" - gradientUnits="userSpaceOnUse" - cx="-9.1586399" - cy="32.64447" - fx="-9.1586399" - fy="32.64447" - r="0.83166844" - gradientTransform="matrix(1.5708027,1.5712352e-8,-1.5712352e-8,1.5708027,129.93814,67.699851)" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient38554" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient38556" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient38558" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient38560" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient38562" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <linearGradient - inkscape:collect="always" - xlink:href="#linearGradient27324" - id="linearGradient38564" - gradientUnits="userSpaceOnUse" - gradientTransform="translate(-64.153518,0.48952984)" - x1="51.148811" - y1="27.62191" - x2="59.238785" - y2="27.62191" /> - <inkscape:path-effect - effect="offset" - id="path-effect38844-6" - is_visible="true" - lpeversion="1.2" - linejoin_type="miter" - unit="mm" - offset="6.4" - miter_limit="4" - attempt_force_join="false" - update_on_knot_move="true" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter35050" - x="-0.0032797319" - y="-0.0025765463" - width="1.0065595" - height="1.0051531"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.056059462" - id="feGaussianBlur35052" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter35054" - x="-0.0017818477" - y="-0.0043163549" - width="1.0035637" - height="1.0086327"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.057750982" - id="feGaussianBlur35056" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter42326" - x="-0.0089477618" - y="-0.017004163" - width="1.0178955" - height="1.0340083"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.57135656" - id="feGaussianBlur42328" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter42722" - x="-0.002434917" - y="-0.0039295726" - width="1.0048698" - height="1.0078591"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.1160647" - id="feGaussianBlur42724" /> - </filter> - <marker - style="overflow:visible" - id="Arrow3" - refX="0" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="Arrow3" - markerWidth="4.2071066" - markerHeight="7" - viewBox="0 0 4.2071068 7" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" - d="M 3,-3 0,0 3,3" - id="arrow3" - transform="rotate(180,0.125,0)" - sodipodi:nodetypes="ccc" /> - </marker> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,8.9307867,6.9345448)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> - <rect - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.334608;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.776767, 0.388386;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660-6" - width="275.37769" - height="154.81673" - x="-11.284421" - y="-7.4510469" /> - <rect - style="mix-blend-mode:normal;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.211395;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.490735, 0.245369;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter42326)" - id="rect11660" - width="153.25125" - height="80.642349" - x="3.2264147" - y="-3.626586" - transform="matrix(1.5708027,0,0,1.5708027,6.7072075,4.3909358)" /> - </g> - <g - inkscape:groupmode="layer" - id="layer10" - inkscape:label="Raster" - style="display:inline"> - <g - id="g35048" - style="stroke:#aaaaff;stroke-width:0.764143;stroke-opacity:1;filter:url(#filter35054)" - transform="matrix(2.6901212,0,0,1.5708027,58.3471,88.376405)"> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-11.699799 H -21.550344" - id="path34917" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-6.1504898 H -21.550344" - id="path34919" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-0.601181 H -21.550344" - id="path34921" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,4.9481278 H -21.550344" - id="path34923" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,10.497437 H -21.550344" - id="path34925" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,16.046745 H -21.550344" - id="path34927" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,21.596054 H -21.550344" - id="path34929" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,32.694672 H -21.550344" - id="path34931" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,27.145363 H -21.550344" - id="path34933" /> - </g> - <g - id="g42268" - transform="matrix(1.5708027,0,0,1.5988891,42.502097,60.789076)" - style="stroke-width:0.991178"> - <g - id="g34915" - transform="matrix(1,0,0,1.6561847,-5.3478445,-21.991099)" - style="stroke:#aaaaff;stroke-width:0.770189;stroke-opacity:1;filter:url(#filter35050)"> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M -10.356301,-9.2853008 V 42.932937" - id="path34560" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M -4.8069918,-9.2853008 V 42.932937" - id="path34560-2" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M 0.742317,-9.2853008 V 42.932937" - id="path34560-2-5" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.2916258,-9.2853008 V 42.932937" - id="path34608" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M 11.840935,-9.285301 V 42.932937" - id="path34560-9" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M 17.390243,-9.285301 V 42.932937" - id="path34560-2-7" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M 22.939552,-9.285301 V 42.932937" - id="path34560-2-5-5" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M 34.03817,-9.285301 V 42.932937" - id="path34562-5" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M 28.488861,-9.285301 V 42.932937" - id="path34608-6" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M 39.587479,-9.285301 V 42.932937" - id="path34666" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M 45.136787,-9.285301 V 42.932937" - id="path34668" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-9.285301 V 42.932937" - id="path34670" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M 50.686096,-9.285301 V 42.932937" - id="path34672" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M -21.454918,-9.285301 V 42.932937" - id="path34678" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" - d="M -15.905609,-9.285301 V 42.932937" - id="path34682" /> - </g> - <g - id="g41858" - transform="matrix(1,0,0,1.6604409,72.342479,-22.174406)" - style="stroke:#aaaaff;stroke-width:0.769201;stroke-opacity:1;filter:url(#filter35050)"> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" - d="M -10.356301,-9.2853008 V 42.932937" - id="path41828" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" - d="M -4.8069918,-9.2853008 V 42.932937" - id="path41830" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" - d="M 0.742317,-9.2853008 V 42.932937" - id="path41832" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.2916258,-9.2853008 V 42.932937" - id="path41834" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" - d="M 11.840935,-9.285301 V 42.932937" - id="path41836" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" - d="M 17.390243,-9.285301 V 42.932937" - id="path41838" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" - d="M 22.939552,-9.285301 V 42.932937" - id="path41840" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" - d="M 34.03817,-9.285301 V 42.932937" - id="path41842" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" - d="M 28.488861,-9.285301 V 42.932937" - id="path41844" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" - d="M -15.905609,-9.285301 V 42.932937" - id="path41856" /> - </g> - </g> - <g - id="g42298" - style="stroke:#aaaaff;stroke-width:0.764143;stroke-opacity:1;filter:url(#filter35054)" - transform="matrix(2.6901212,0,0,1.5708027,58.3471,1.2077124)"> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,-0.601181 H -21.550344" - id="path42280" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,4.9481278 H -21.550344" - id="path42282" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,10.497437 H -21.550344" - id="path42284" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,16.046745 H -21.550344" - id="path42286" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,21.596054 H -21.550344" - id="path42288" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,32.694672 H -21.550344" - id="path42290" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,27.145363 H -21.550344" - id="path42292" /> - <path - style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" - d="M 56.235405,38.243981 H -21.550344" - id="path42294" /> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline"> - <g - id="g42304" - transform="matrix(1.6005473,0,0,1.5708027,52.181751,45.048603)" - style="stroke-width:0.990665"> - <path - id="path39516" - style="color:#000000;opacity:1;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.990665;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter42722)" - d="M 92.907256,-25.137274 C 63.764604,-4.8227696 24.24101,-3.3459035 -21.493059,-5.2482334 V 45.003144 C 16.014542,46.664281 56.00228,46.813766 92.907256,31.616668 v -56.753942" - sodipodi:nodetypes="ccccc" /> - <path - id="path38770" - style="color:#000000;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.990665;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none" - d="m -21.469878,45.003144 c 37.5,1.661137 77.479636,1.810622 114.377134,-13.386476 m 0,-56.753942 C 63.770509,-4.8227696 24.254924,-3.3459035 -21.469878,-5.2482334" - sodipodi:nodetypes="cccc" /> - <path - style="color:#000000;opacity:0.8;fill:none;stroke:#ffffff;stroke-width:0.990661;stroke-dasharray:7.92531, 3.96265;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none" - d="M 92.681715,4.8312351 C 58.389096,22.201911 19.190365,21.691556 -21.492559,19.877455" - id="path38842" - sodipodi:nodetypes="cc" /> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline"> - <g - id="g38512" - inkscape:label="Red Car" - style="display:inline;opacity:0.5" - transform="matrix(1.3947257,-0.72260734,0.72260734,1.3947257,147.81363,-0.63551804)"> - <g - id="g38510" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="path38490" - style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="path38492" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="path38494" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="path38496" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38498" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38500" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path38502" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38504" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="path38506" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path38508" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="Axles"> - <g - id="g38522" - transform="matrix(1.3947257,-0.72260734,0.72260734,1.3947257,146.30687,0.12682538)" - style="display:inline;opacity:0.75" - inkscape:label="Rear"> - <g - id="g38520" - style="display:inline;opacity:0.8" - transform="translate(1.0557002)" - inkscape:label="Axle"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient38560);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" - id="rect38514" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient38562);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" - id="rect38516" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" - inkscape:path-effect="#path-effect38538" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient38564);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" - id="rect38518" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" - inkscape:path-effect="#path-effect38542" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - </g> - </g> - <g - id="g38532" - style="display:inline;opacity:0.25" - transform="matrix(1.3947257,-0.72260734,0.72260734,1.3947257,173.79084,-14.112619)" - inkscape:label="Front"> - <g - id="g38530" - inkscape:label="Axle"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient38554);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" - id="rect38524" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient38556);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" - id="rect38526" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - inkscape:path-effect="#path-effect38546" - sodipodi:type="rect" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient38558);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" - id="rect38528" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - inkscape:path-effect="#path-effect38550" - sodipodi:type="rect" /> - </g> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="CoorindateSystem"> - <g - id="g39799" - inkscape:transform-center-x="-13.674347" - inkscape:transform-center-y="1.5346636" - transform="matrix(1.5664723,0.11655783,-0.11655783,1.5664723,55.71723,46.398316)"> - <g - id="g10990" - inkscape:label="Green Car" - style="display:inline;opacity:0.5"> - <g - id="g3439" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect5329-3" - style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - <g - id="g32615" - transform="translate(-1.2175706)" - style="display:inline;opacity:0.75" - inkscape:label="Rear"> - <g - id="g30620-9" - style="display:inline;opacity:0.8" - transform="translate(1.0557002)" - inkscape:label="Axle"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30782);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" - id="rect21541-05-0" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30784);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" - id="rect21541-06" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" - inkscape:path-effect="#path-effect32667" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient30786);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" - id="rect21541-0-1" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" - inkscape:path-effect="#path-effect32727" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - sodipodi:type="rect" /> - </g> - </g> - <g - id="g30620" - style="display:inline;opacity:0.25" - transform="translate(18.488077)" - inkscape:label="Front"> - <g - id="g32809" - inkscape:label="Axle"> - <rect - style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30536);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" - id="rect21541-05" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> - <path - style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30628);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" - id="rect21541" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="27.248672" - transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" - d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - inkscape:path-effect="#path-effect32687" - sodipodi:type="rect" /> - <path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient21572);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" - id="rect21541-0" - width="7.5615335" - height="1.7255344" - x="-12.599893" - y="36.173225" - transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" - d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" - inkscape:path-effect="#path-effect32707" - sodipodi:type="rect" /> - </g> - </g> - </g> - <path - style="display:inline;fill:none;stroke:#000000;stroke-width:0.985897;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="M 35.99169,96.117888 157.2873,52.467532" - id="path39646" - sodipodi:nodetypes="cc" /> - <circle - style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820);fill-opacity:1;stroke:#000000;stroke-width:0.119503;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - id="path30810" - cx="42.707527" - cy="93.414055" - inkscape:label="Reference Point" - transform="rotate(4.2554137)" - r="1.2466356" /> - <text - xml:space="preserve" - style="font-size:3.45723px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="-19.734196" - y="5.960669" - id="text34235" - transform="rotate(-90)"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="-19.734196" - y="5.960669" - id="tspan34237">y (m)</tspan></text> - <text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="192.92442" - y="136.52086" - id="text34235-7"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="192.92442" - y="136.52086" - id="tspan34237-0">x(m)</tspan></text> - <text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="34.395687" - y="135.06419" - id="text34235-7-9"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="34.395687" - y="135.06419" - id="tspan34237-0-4">3</tspan></text> - <text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="155.30316" - y="135.06419" - id="text34235-7-9-2"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="155.30316" - y="135.06419" - id="tspan34237-0-4-4">17</tspan></text> - <text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="5.7083039" - y="97.315834" - id="text34235-7-9-3"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="5.7083039" - y="97.315834" - id="tspan34237-0-4-7">4</tspan></text> - <path - style="display:inline;fill:none;stroke:#000000;stroke-width:0.478011;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" - d="M 9.1171131,131.01642 H 199.90616" - id="path32829" - inkscape:label="Longitudinal" /> - <path - style="display:inline;fill:none;stroke:#000000;stroke-width:0.478011;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" - d="M 9.1171115,131.01642 V 10.649022" - id="path32831" - inkscape:label="Longitudinal" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.388384;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.776768, 0.388384;stroke-dashoffset:0;stroke-opacity:1" - d="M 9.11711,96.148946 H 35.597705 L 35.267722,131.01641" - id="path44745" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.388384;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.776767, 0.388384;stroke-dashoffset:0;stroke-opacity:1" - d="M 9.0120688,52.630151 157.32553,52.490412 157.29035,130.92329" - id="path44745-2" - sodipodi:nodetypes="ccc" /> - <circle - style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient38552);fill-opacity:1;stroke:#000000;stroke-width:0.119503;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - id="circle38534" - cx="115.55173" - cy="118.97787" - inkscape:label="Reference Point" - transform="rotate(-27.388673)" - r="1.2466356" /> - <text - xml:space="preserve" - style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" - x="5.7083039" - y="53.746609" - id="text48156"><tspan - sodipodi:role="line" - style="stroke-width:1.58092" - x="5.7083039" - y="53.746609" - id="tspan48154">9</tspan></text> - </g> - <metadata - id="metadata448"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>WorldCoordinateSystem</dc:title> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="140.03429mm" + viewBox="0 0 210 140.03429" + version="1.1" + id="svg12177" + sodipodi:docname="WorldCoordinateSystem.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:export-filename="distance.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title524">WorldCoordinateSystem</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1.20625" + inkscape:cx="453.057" + inkscape:cy="330.7772" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="1912" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer5" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <marker + style="overflow:visible" + id="TriangleStart" + refX="3.5" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="5.3244081" + markerHeight="6.155385" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135" /> + </marker> + <inkscape:path-effect + effect="offset" + id="path-effect38844" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="tiling" + id="path-effect38774" + is_visible="true" + lpeversion="1" + unit="px" + seed="1;1" + lpesatellites="" + num_rows="3" + num_cols="3" + gapx="0" + gapy="0" + offset="0" + offset_type="false" + scale="0" + rotate="0" + mirrorrowsx="false" + mirrorrowsy="false" + mirrorcolsx="false" + mirrorcolsy="false" + mirrortrans="false" + shrink_interp="false" + split_items="false" + link_styles="false" + interpolate_scalex="false" + interpolate_scaley="true" + interpolate_rotatex="false" + interpolate_rotatey="true" + random_scale="false" + random_rotate="false" + random_gap_y="false" + random_gap_x="false" + transformorigin="" /> + <inkscape:path-effect + effect="offset" + id="path-effect38772" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="0" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38550" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38546" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38542" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect38538" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32727" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32707" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32687" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <inkscape:path-effect + effect="fillet_chamfer" + id="path-effect32667" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1 @ F,0,0,1,0,0.26458333,0,1" + unit="px" + method="auto" + mode="F" + radius="1" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="false" + hide_knots="false" /> + <linearGradient + inkscape:collect="always" + id="linearGradient30868"> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="0" + id="stop30858" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.1" + id="stop30860" /> + <stop + style="stop-color:#20ff00;stop-opacity:1;" + offset="0.5" + id="stop30862" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.89999998" + id="stop30864" /> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="1" + id="stop30866" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient27324"> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="0" + id="stop27314" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.1" + id="stop27316" /> + <stop + style="stop-color:#808080;stop-opacity:1;" + offset="0.5" + id="stop27318" /> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.89999998" + id="stop27320" /> + <stop + style="stop-color:#333333;stop-opacity:1;" + offset="1" + id="stop27322" /> + </linearGradient> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient21572" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160" + x="-0.0121263" + y="-0.053139146" + width="1.0242526" + height="1.1062783"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-2" + x="-0.013209493" + y="-0.057885848" + width="1.026419" + height="1.1157717"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-8" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30536" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30628" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-2-0" + x="-0.013209493" + y="-0.057885848" + width="1.026419" + height="1.1157717"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-8-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter24160-7" + x="-0.0121263" + y="-0.053139146" + width="1.0242526" + height="1.1062783"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.018318553" + id="feGaussianBlur24162-5" /> + </filter> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30782" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30784" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient30786" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient30868" + id="radialGradient30820" + cx="-9.1586399" + cy="32.64447" + fx="-9.1586399" + fy="32.64447" + r="0.83166844" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.5708027,0,0,1.5708027,57.093948,42.136035)" /> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient30868" + id="radialGradient38552" + gradientUnits="userSpaceOnUse" + cx="-9.1586399" + cy="32.64447" + fx="-9.1586399" + fy="32.64447" + r="0.83166844" + gradientTransform="matrix(1.5708027,1.5712352e-8,-1.5712352e-8,1.5708027,129.93814,67.699851)" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient38554" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient38556" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient38558" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient38560" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient38562" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient27324" + id="linearGradient38564" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-64.153518,0.48952984)" + x1="51.148811" + y1="27.62191" + x2="59.238785" + y2="27.62191" /> + <inkscape:path-effect + effect="offset" + id="path-effect38844-6" + is_visible="true" + lpeversion="1.2" + linejoin_type="miter" + unit="mm" + offset="6.4" + miter_limit="4" + attempt_force_join="false" + update_on_knot_move="true" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter35050" + x="-0.0032797319" + y="-0.0025765463" + width="1.0065595" + height="1.0051531"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.056059462" + id="feGaussianBlur35052" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter35054" + x="-0.0017818477" + y="-0.0043163549" + width="1.0035637" + height="1.0086327"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.057750982" + id="feGaussianBlur35056" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter42326" + x="-0.0089477618" + y="-0.017004163" + width="1.0178955" + height="1.0340083"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.57135656" + id="feGaussianBlur42328" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter42722" + x="-0.002434917" + y="-0.0039295726" + width="1.0048698" + height="1.0078591"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.1160647" + id="feGaussianBlur42724" /> + </filter> + <marker + style="overflow:visible" + id="Arrow3" + refX="0" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="Arrow3" + markerWidth="4.2071066" + markerHeight="7" + viewBox="0 0 4.2071068 7" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:round" + d="M 3,-3 0,0 3,3" + id="arrow3" + transform="rotate(180,0.125,0)" + sodipodi:nodetypes="ccc" /> + </marker> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,8.9307867,6.9345448)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> + <rect + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.334608;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.776767, 0.388386;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660-6" + width="275.37769" + height="154.81673" + x="-11.284421" + y="-7.4510469" /> + <rect + style="mix-blend-mode:normal;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.211395;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.490735, 0.245369;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter42326)" + id="rect11660" + width="153.25125" + height="80.642349" + x="3.2264147" + y="-3.626586" + transform="matrix(1.5708027,0,0,1.5708027,6.7072075,4.3909358)" /> + </g> + <g + inkscape:groupmode="layer" + id="layer10" + inkscape:label="Raster" + style="display:inline"> + <g + id="g35048" + style="stroke:#aaaaff;stroke-width:0.764143;stroke-opacity:1;filter:url(#filter35054)" + transform="matrix(2.6901212,0,0,1.5708027,58.3471,88.376405)"> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-11.699799 H -21.550344" + id="path34917" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-6.1504898 H -21.550344" + id="path34919" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-0.601181 H -21.550344" + id="path34921" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,4.9481278 H -21.550344" + id="path34923" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,10.497437 H -21.550344" + id="path34925" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,16.046745 H -21.550344" + id="path34927" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,21.596054 H -21.550344" + id="path34929" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,32.694672 H -21.550344" + id="path34931" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,27.145363 H -21.550344" + id="path34933" /> + </g> + <g + id="g42268" + transform="matrix(1.5708027,0,0,1.5988891,42.502097,60.789076)" + style="stroke-width:0.991178"> + <g + id="g34915" + transform="matrix(1,0,0,1.6561847,-5.3478445,-21.991099)" + style="stroke:#aaaaff;stroke-width:0.770189;stroke-opacity:1;filter:url(#filter35050)"> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M -10.356301,-9.2853008 V 42.932937" + id="path34560" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M -4.8069918,-9.2853008 V 42.932937" + id="path34560-2" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M 0.742317,-9.2853008 V 42.932937" + id="path34560-2-5" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.2916258,-9.2853008 V 42.932937" + id="path34608" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M 11.840935,-9.285301 V 42.932937" + id="path34560-9" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M 17.390243,-9.285301 V 42.932937" + id="path34560-2-7" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M 22.939552,-9.285301 V 42.932937" + id="path34560-2-5-5" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M 34.03817,-9.285301 V 42.932937" + id="path34562-5" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M 28.488861,-9.285301 V 42.932937" + id="path34608-6" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M 39.587479,-9.285301 V 42.932937" + id="path34666" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M 45.136787,-9.285301 V 42.932937" + id="path34668" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-9.285301 V 42.932937" + id="path34670" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M 50.686096,-9.285301 V 42.932937" + id="path34672" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M -21.454918,-9.285301 V 42.932937" + id="path34678" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0585941;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.585941, 0.585941;stroke-dashoffset:0;stroke-opacity:1" + d="M -15.905609,-9.285301 V 42.932937" + id="path34682" /> + </g> + <g + id="g41858" + transform="matrix(1,0,0,1.6604409,72.342479,-22.174406)" + style="stroke:#aaaaff;stroke-width:0.769201;stroke-opacity:1;filter:url(#filter35050)"> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" + d="M -10.356301,-9.2853008 V 42.932937" + id="path41828" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" + d="M -4.8069918,-9.2853008 V 42.932937" + id="path41830" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" + d="M 0.742317,-9.2853008 V 42.932937" + id="path41832" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.2916258,-9.2853008 V 42.932937" + id="path41834" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" + d="M 11.840935,-9.285301 V 42.932937" + id="path41836" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" + d="M 17.390243,-9.285301 V 42.932937" + id="path41838" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" + d="M 22.939552,-9.285301 V 42.932937" + id="path41840" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" + d="M 34.03817,-9.285301 V 42.932937" + id="path41842" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" + d="M 28.488861,-9.285301 V 42.932937" + id="path41844" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.058519;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.58519, 0.58519;stroke-dashoffset:0;stroke-opacity:1" + d="M -15.905609,-9.285301 V 42.932937" + id="path41856" /> + </g> + </g> + <g + id="g42298" + style="stroke:#aaaaff;stroke-width:0.764143;stroke-opacity:1;filter:url(#filter35054)" + transform="matrix(2.6901212,0,0,1.5708027,58.3471,1.2077124)"> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,-0.601181 H -21.550344" + id="path42280" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,4.9481278 H -21.550344" + id="path42282" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,10.497437 H -21.550344" + id="path42284" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,16.046745 H -21.550344" + id="path42286" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,21.596054 H -21.550344" + id="path42288" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,32.694672 H -21.550344" + id="path42290" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,27.145363 H -21.550344" + id="path42292" /> + <path + style="display:inline;fill:none;stroke:#aaaaff;stroke-width:0.0581343;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.581343, 0.581343;stroke-dashoffset:0;stroke-opacity:1" + d="M 56.235405,38.243981 H -21.550344" + id="path42294" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline"> + <g + id="g42304" + transform="matrix(1.6005473,0,0,1.5708027,52.181751,45.048603)" + style="stroke-width:0.990665"> + <path + id="path39516" + style="color:#000000;opacity:1;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.990665;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter42722)" + d="M 92.907256,-25.137274 C 63.764604,-4.8227696 24.24101,-3.3459035 -21.493059,-5.2482334 V 45.003144 C 16.014542,46.664281 56.00228,46.813766 92.907256,31.616668 v -56.753942" + sodipodi:nodetypes="ccccc" /> + <path + id="path38770" + style="color:#000000;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.990665;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;-inkscape-stroke:none" + d="m -21.469878,45.003144 c 37.5,1.661137 77.479636,1.810622 114.377134,-13.386476 m 0,-56.753942 C 63.770509,-4.8227696 24.254924,-3.3459035 -21.469878,-5.2482334" + sodipodi:nodetypes="cccc" /> + <path + style="color:#000000;opacity:0.8;fill:none;stroke:#ffffff;stroke-width:0.990661;stroke-dasharray:7.92531, 3.96265;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none" + d="M 92.681715,4.8312351 C 58.389096,22.201911 19.190365,21.691556 -21.492559,19.877455" + id="path38842" + sodipodi:nodetypes="cc" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline"> + <g + id="g38512" + inkscape:label="Red Car" + style="display:inline;opacity:0.5" + transform="matrix(1.3947257,-0.72260734,0.72260734,1.3947257,147.81363,-0.63551804)"> + <g + id="g38510" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="path38490" + style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="path38492" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="path38494" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="path38496" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38498" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38500" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path38502" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38504" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="path38506" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path38508" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="Axles"> + <g + id="g38522" + transform="matrix(1.3947257,-0.72260734,0.72260734,1.3947257,146.30687,0.12682538)" + style="display:inline;opacity:0.75" + inkscape:label="Rear"> + <g + id="g38520" + style="display:inline;opacity:0.8" + transform="translate(1.0557002)" + inkscape:label="Axle"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient38560);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" + id="rect38514" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient38562);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" + id="rect38516" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" + inkscape:path-effect="#path-effect38538" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient38564);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" + id="rect38518" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" + inkscape:path-effect="#path-effect38542" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + </g> + </g> + <g + id="g38532" + style="display:inline;opacity:0.25" + transform="matrix(1.3947257,-0.72260734,0.72260734,1.3947257,173.79084,-14.112619)" + inkscape:label="Front"> + <g + id="g38530" + inkscape:label="Axle"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient38554);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" + id="rect38524" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient38556);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" + id="rect38526" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + inkscape:path-effect="#path-effect38546" + sodipodi:type="rect" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient38558);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" + id="rect38528" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + inkscape:path-effect="#path-effect38550" + sodipodi:type="rect" /> + </g> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="CoorindateSystem"> + <g + id="g39799" + inkscape:transform-center-x="-13.674347" + inkscape:transform-center-y="1.5346636" + transform="matrix(1.5664723,0.11655783,-0.11655783,1.5664723,55.71723,46.398316)"> + <g + id="g10990" + inkscape:label="Green Car" + style="display:inline;opacity:0.5"> + <g + id="g3439" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect5329-3" + style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + <g + id="g32615" + transform="translate(-1.2175706)" + style="display:inline;opacity:0.75" + inkscape:label="Rear"> + <g + id="g30620-9" + style="display:inline;opacity:0.8" + transform="translate(1.0557002)" + inkscape:label="Axle"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30782);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2-0);stop-color:#000000" + id="rect21541-05-0" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30784);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-7);stop-color:#000000" + id="rect21541-06" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" + inkscape:path-effect="#path-effect32667" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient30786);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160-7);stop-color:#000000;stop-opacity:1" + id="rect21541-0-1" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" + inkscape:path-effect="#path-effect32727" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + sodipodi:type="rect" /> + </g> + </g> + <g + id="g30620" + style="display:inline;opacity:0.25" + transform="translate(18.488077)" + inkscape:label="Front"> + <g + id="g32809" + inkscape:label="Axle"> + <rect + style="font-variation-settings:normal;display:inline;mix-blend-mode:normal;fill:url(#linearGradient30536);fill-opacity:1;stroke:#000000;stroke-width:0.111839;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160-2);stop-color:#000000" + id="rect21541-05" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.09187356,0,0,5.0365735,-9.404096,-108.94087)" /> + <path + style="font-variation-settings:normal;mix-blend-mode:normal;fill:url(#linearGradient30628);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter24160);stop-color:#000000" + id="rect21541" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="27.248672" + transform="matrix(0.63517057,0,0,1,-4.6126919,2.3622238e-7)" + d="m -12.335309,27.248672 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + inkscape:path-effect="#path-effect32687" + sodipodi:type="rect" /> + <path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:url(#linearGradient21572);fill-opacity:1;stroke:#000000;stroke-width:0.0954578;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;filter:url(#filter24160);stop-color:#000000;stop-opacity:1" + id="rect21541-0" + width="7.5615335" + height="1.7255344" + x="-12.599893" + y="36.173225" + transform="matrix(0.63517057,0,0,1,-4.6126919,0.53164657)" + d="m -12.335309,36.173225 h 7.0323665 a 0.26458333,0.26458333 45 0 1 0.2645833,0.264584 v 1.196368 a 0.26458333,0.26458333 135 0 1 -0.2645833,0.264583 h -7.0323665 a 0.26458333,0.26458333 45 0 1 -0.264584,-0.264583 v -1.196368 a 0.26458333,0.26458333 135 0 1 0.264584,-0.264584 z" + inkscape:path-effect="#path-effect32707" + sodipodi:type="rect" /> + </g> + </g> + </g> + <path + style="display:inline;fill:none;stroke:#000000;stroke-width:0.985897;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="M 35.99169,96.117888 157.2873,52.467532" + id="path39646" + sodipodi:nodetypes="cc" /> + <circle + style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient30820);fill-opacity:1;stroke:#000000;stroke-width:0.119503;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + id="path30810" + cx="42.707527" + cy="93.414055" + inkscape:label="Reference Point" + transform="rotate(4.2554137)" + r="1.2466356" /> + <text + xml:space="preserve" + style="font-size:3.45723px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="-19.734196" + y="5.960669" + id="text34235" + transform="rotate(-90)"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="-19.734196" + y="5.960669" + id="tspan34237">y (m)</tspan></text> + <text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="192.92442" + y="136.52086" + id="text34235-7"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="192.92442" + y="136.52086" + id="tspan34237-0">x(m)</tspan></text> + <text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="34.395687" + y="135.06419" + id="text34235-7-9"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="34.395687" + y="135.06419" + id="tspan34237-0-4">3</tspan></text> + <text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="155.30316" + y="135.06419" + id="text34235-7-9-2"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="155.30316" + y="135.06419" + id="tspan34237-0-4-4">17</tspan></text> + <text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="5.7083039" + y="97.315834" + id="text34235-7-9-3"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="5.7083039" + y="97.315834" + id="tspan34237-0-4-7">4</tspan></text> + <path + style="display:inline;fill:none;stroke:#000000;stroke-width:0.478011;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" + d="M 9.1171131,131.01642 H 199.90616" + id="path32829" + inkscape:label="Longitudinal" /> + <path + style="display:inline;fill:none;stroke:#000000;stroke-width:0.478011;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow3)" + d="M 9.1171115,131.01642 V 10.649022" + id="path32831" + inkscape:label="Longitudinal" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.388384;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.776768, 0.388384;stroke-dashoffset:0;stroke-opacity:1" + d="M 9.11711,96.148946 H 35.597705 L 35.267722,131.01641" + id="path44745" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.388384;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.776767, 0.388384;stroke-dashoffset:0;stroke-opacity:1" + d="M 9.0120688,52.630151 157.32553,52.490412 157.29035,130.92329" + id="path44745-2" + sodipodi:nodetypes="ccc" /> + <circle + style="font-variation-settings:normal;display:inline;opacity:0.8;vector-effect:none;fill:url(#radialGradient38552);fill-opacity:1;stroke:#000000;stroke-width:0.119503;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + id="circle38534" + cx="115.55173" + cy="118.97787" + inkscape:label="Reference Point" + transform="rotate(-27.388673)" + r="1.2466356" /> + <text + xml:space="preserve" + style="font-size:3.08528px;line-height:1.25;font-family:sans-serif;display:inline;stroke-width:1.58092" + x="5.7083039" + y="53.746609" + id="text48156"><tspan + sodipodi:role="line" + style="stroke-width:1.58092" + x="5.7083039" + y="53.746609" + id="tspan48154">9</tspan></text> + </g> + <metadata + id="metadata448"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>WorldCoordinateSystem</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/localization_with_bus_step0.svg b/content/html/_images/localization_with_bus_step0.svg index 4da44fbc856ba4ed7fd02de944c627a25590e6fe..f12c460828380107a71cb093797c5c9ec84ac11a 100644 --- a/content/html/_images/localization_with_bus_step0.svg +++ b/content/html/_images/localization_with_bus_step0.svg @@ -1,589 +1,589 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="99.376884mm" - viewBox="1 0.5 208 98.430438" - version="1.1" - id="svg297" - xml:space="preserve" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - sodipodi:docname="localization_with_bus_step0.svg" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"><title - id="title795">Localization</title><sodipodi:namedview - id="namedview299" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1.4142136" - inkscape:cx="358.14958" - inkscape:cy="267.28636" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="layer7" /><defs - id="defs294"><linearGradient - inkscape:collect="always" - id="linearGradient4195"><stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop4191" /><stop - style="stop-color:#404040;stop-opacity:1;" - offset="1" - id="stop4193" /></linearGradient><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3774" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3770" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3766" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3762" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3758" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3735" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3729" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3723" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3717" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3711" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter4160" - x="-0.007103069" - y="-0.2978693" - width="1.0142061" - height="1.5957386"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.097700015" - id="feGaussianBlur4162" /></filter><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter4164" - x="-0.007103069" - y="-0.2978693" - width="1.0142061" - height="1.5957386"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.097700015" - id="feGaussianBlur4166" /></filter><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4195" - id="linearGradient4197" - x1="87.013039" - y1="40.983868" - x2="88.879921" - y2="40.983868" - gradientUnits="userSpaceOnUse" /></defs><rect - style="font-variation-settings:normal;display:inline;vector-effect:none;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.693291;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" - id="rect51006" - width="209.41541" - height="98.979736" - x="0.11753607" - y="0" - inkscape:label="Background" /><g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Road" - style="display:inline"><path - id="path9093" - style="fill:#808080;stroke:none;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 209.53295,98.979749 H 133.89762 C 125.55121,87.990292 115.01163,78.071967 97.53503,69.160579 72.081706,56.181838 36.586237,56.576481 0.01866037,57.458419 L 0.12215197,3.7037819 C 40.831749,3.401259 76.804855,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658 z" - sodipodi:nodetypes="ccsccscc" - inkscape:label="Road" /><path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 0.01866037,57.458419 C 36.586237,56.576481 72.081706,56.181838 97.53503,69.160579 c 17.4766,8.911388 28.01618,18.829713 36.36259,29.81917" - id="path7339" - sodipodi:nodetypes="csc" - inkscape:label="Right Lane Marking" /><path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 102.13944,37.994908 c 11.37856,4.457223 34.80599,20.480688 44.06322,30.300555 9.25723,9.819867 22.58881,30.393118 22.58881,30.393118" - id="path7525" - sodipodi:nodetypes="czc" - inkscape:label="Right Lane Left Boudnary Marking" /><path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1" - d="M 0.01857674,30.122358 C 58.039953,28.420795 72.35031,30.880502 110.66003,37.524041 c 37.2424,6.458448 65.44977,30.530429 78.8974,47.997656 0.26118,0.339256 6.61369,8.244939 10.79382,13.458052" - id="path6399" - sodipodi:nodetypes="cssc" - inkscape:label="Left Lane Right Boundary Marking" /><path - style="fill:none;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 0.1221461,3.7037819 C 40.83174,3.401259 76.804846,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658" - id="path6401" - sodipodi:nodetypes="czc" - inkscape:label="Left Lane Marking" /><path - style="fill:none;stroke:#000000;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 145.76624,72.7546 145.521,73.367143" - id="path16788" /></g><metadata - id="metadata972"><rdf:RDF><cc:Work - rdf:about=""><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:title>Localization</dc:title><dc:rights><cc:Agent><dc:title>2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights></cc:Work></rdf:RDF></metadata><g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="R-Tree Objects" - style="display:none"><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect11550" - width="82.437019" - height="32.24387" - x="22.910805" - y="3.3456895" - rx="0.036079962" - ry="2.0597696" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12281" - width="76.165298" - height="31.102114" - x="23.298027" - y="35.589558" - rx="0.033335041" - ry="1.9868332" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12283" - width="59.138081" - height="39.661373" - x="99.548042" - y="10.442811" - rx="0.03371926" - ry="1.9158162" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12285" - width="59.138081" - height="39.661373" - x="99.548042" - y="10.442811" - rx="0.03371926" - ry="1.9158162" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12300" - width="47.335266" - height="51.565762" - x="91.999733" - y="35.593773" - rx="0.026989549" - ry="2.4908497" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12302" - width="47.141182" - height="26.431166" - x="99.569237" - y="35.593773" - rx="0.026878884" - ry="1.2767398" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffb380;fill-opacity:0.25;stroke:#ffb380;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12304" - width="44.326191" - height="37.685013" - x="-191.07913" - y="30.858921" - rx="0.025273839" - ry="1.8203492" - transform="scale(-1,1)" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12306" - width="34.101662" - height="30.822912" - x="-173.51215" - y="50.141434" - rx="0.019444034" - ry="1.4888799" - transform="scale(-1,1)" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12308" - width="32.866482" - height="36.518456" - x="-156.63138" - y="62.012878" - rx="0.01873976" - ry="1.7639993" - transform="scale(-1,1)" /></g><g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Bus" - inkscape:highlight-color="#21f335" - transform="matrix(1.2595586,0.43358335,-0.43358335,1.2595586,-7.4772654,17.310292)" - style="display:inline;opacity:1"><g - id="g4813" - inkscape:label="Bus" - style="display:inline;opacity:1" - transform="matrix(1.4671336,0,0,1.4671336,-6.1097123,-60.685604)"><g - id="g4678" - style="fill:#ff6600" - inkscape:label="Chassis"><path - id="rect3089" - style="font-variation-settings:normal;display:inline;opacity:1;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 36.060331,36.193656 c -0.368588,0 -0.665075,0.296488 -0.665075,0.665076 v 8.250143 c 0,0.368588 0.296487,0.665075 0.665075,0.665075 h 50.963815 c 0.02233,0 0.04439,-9.72e-4 0.06614,-0.0031 0.0011,-0.94223 0.480591,-0.49939 0.480591,-4.786788 0,-4.287417 -0.47945,-3.845061 -0.480591,-4.787305 -0.02175,-0.0021 -0.04381,-0.0031 -0.06614,-0.0031 z" - inkscape:label="Main Chassis" /><rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect3653" - width="0.80169088" - height="0.31897762" - x="-58.444439" - y="77.124367" - ry="0.1337648" - rx="0.01318328" - transform="rotate(-105,0.02296293,0.02992587)" - inkscape:label="Left Mirror" /><rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect3776" - width="0.80169088" - height="0.31897762" - x="-21.595352" - y="-98.675133" - ry="0.1337648" - rx="0.01318328" - transform="matrix(0.25881905,-0.96592583,-0.96592583,-0.25881905,-3.0000001e-6,-0.12556493)" - inkscape:label="Right Mirror" /><path - style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 87.09004,36.193544 c 0.603254,-0.249097 1.899251,0.05157 2.429165,-0.08899" - id="path3706" - sodipodi:nodetypes="cc" - transform="translate(0,0.05985174)" /><path - style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 87.105303,45.794684 c 0.536962,0.221724 1.852198,-0.0084 2.413906,0.134084" - id="path3778" - sodipodi:nodetypes="cc" - transform="translate(-3.0000001e-6,-0.12556493)" /></g><path - id="path3393" - style="font-variation-settings:normal;display:inline;opacity:1;fill:url(#linearGradient4197);fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 87.090041,36.193546 c 0,0.946678 0.480709,0.497797 0.480709,4.790323 0,4.292524 -0.480709,3.843646 -0.480709,4.790323 0.682089,0 1.158355,-0.307687 1.442478,-0.927801 0.284126,-0.620114 0.270291,-3.862522 0.270291,-3.862522 0,0 0.01384,-3.24241 -0.270291,-3.862524 -0.284123,-0.620113 -0.760389,-0.927799 -1.442478,-0.927799 z" - sodipodi:nodetypes="czcscsc" - inkscape:label="Windshield" /><g - id="g3819" - inkscape:label="Brake Lights" - style="stroke:#000000;stroke-width:0.228785;stroke-dasharray:none" - transform="matrix(0.79824418,0,0,0.95734129,7.1565329,1.7370124)"><path - style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 35.397831,37.661018 c 0.0043,-1.02308 8e-5,-0.96507 0.08178,-1.127752 0.04974,-0.09905 0.168103,-0.219649 0.266912,-0.271952 0.06189,-0.03276 0.233875,-0.08629 0.244173,-0.07599 0.009,0.009 -0.01934,0.676484 -0.03558,0.838613 -0.04692,0.468847 -0.135385,0.821036 -0.284104,1.131046 -0.06598,0.137533 -0.206875,0.362643 -0.253005,0.404222 l -0.02403,0.02167 z" - id="path3597" /><path - style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 35.397831,44.330203 c 0.0043,1.02308 8e-5,0.96507 0.08178,1.127752 0.04974,0.09905 0.168103,0.219649 0.266912,0.271952 0.06189,0.03276 0.233875,0.08629 0.244173,0.07599 0.009,-0.009 -0.01934,-0.676484 -0.03558,-0.838613 -0.04692,-0.468847 -0.135385,-0.821037 -0.284104,-1.131046 -0.06598,-0.137533 -0.206875,-0.362643 -0.253005,-0.404223 l -0.02403,-0.02167 z" - id="path3599" /></g><g - id="g3742" - transform="matrix(1.3533759,0,0,1,-13.287574,0)" - style="fill:#000000;stroke-width:0.859589;filter:url(#filter4160)" - inkscape:label="Side Windows Left"><path - id="rect3708" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3711" - inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3713" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3717" - inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3719" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3723" - inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3725" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3729" - inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3731" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3735" - inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g - id="g3754" - transform="matrix(1.3533759,0,0,-1,-13.287574,81.967607)" - style="stroke-width:0.859589;filter:url(#filter4164)" - inkscape:label="Side Windows Right"><path - id="path3744" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3758" - inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3746" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3762" - inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3748" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3766" - inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3750" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3770" - inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3752" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3774" - inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g - id="g4671" - inkscape:label="Outlets" - style="display:inline"><rect - style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="rect3145" - width="4.2580633" - height="2.5725811" - x="45.330647" - y="39.697514" - ry="0.17865145" - inkscape:label="Outlet Rear" /><rect - style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="rect3147" - width="4.2580633" - height="2.5725811" - x="70.036293" - y="39.697514" - ry="0.17865145" - inkscape:label="Outlet Front" /></g></g><rect - style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.366757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect4734" - width="80.083046" - height="15.679524" - x="45.780243" - y="-8.3966522" - rx="0.027102947" - ry="0.34118721" - inkscape:label="Bounding Box" /><path - style="opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.393965;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.1819, 0.393965, 0.787931;stroke-dashoffset:0;stroke-opacity:1" - d="m 122.43702,0.94798317 c 0.43071,0.0498385 0.61005,0.27360863 1.69829,0.42116713" - id="path17623" - sodipodi:nodetypes="cc" /><path - style="opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.347686;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.04306, 0.347686, 0.695373;stroke-dashoffset:0;stroke-opacity:1" - d="m 124.04233,-3.2580159 c -0.38106,-0.1080544 -1.17763,-0.2514946 -1.56381,-0.2408608" - id="path17625" - sodipodi:nodetypes="cc" /></g><g - id="g11364" - inkscape:label="Localization Grid" - style="display:none;opacity:0.75;stroke:#ff0000;stroke-width:0.3;stroke-dasharray:none" - transform="matrix(1.4671336,0,0,1.4671336,-36.842209,-51.139017)"><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 40.711213,37.136846 0.478454,36.48215" - id="path10617" - sodipodi:nodetypes="cc" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 87.826885,80.445464 96.937437,41.986238" - id="path10619" - sodipodi:nodetypes="cc" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 109.54837,94.559905 133.311,55.843819" - id="path11347" - sodipodi:nodetypes="cc" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 116.10869,101.97055 155.421,72.811089" - id="path11349" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 40.711212,37.136845 96.937435,41.986237 133.30829,55.848232 155.421,72.811091" - id="path11351" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 40.946252,55.058624 51.933742,4.055679 32.351586,9.893184 18.23736,12.668904" - id="path11353" /><path - style="display:inline;fill:none;stroke:#ffaf80;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.06, 0.265;stroke-dashoffset:0;stroke-opacity:1" - d="M 133.28272,55.889892 155.421,72.811089 143.46894,81.676391 125.23158,69.007489 Z" - id="path12310" - sodipodi:nodetypes="ccccc" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 92.879999,59.114306 27.330281,18.074311 11.71158,13.052691" - id="path11355" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 41.189666,73.618994 46.637217,6.826469 21.721487,14.114442 6.56032,7.410645" - id="path11417" /></g><g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Touched Areas" - style="display:none"><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 23.602453,30.061089 c 0.06425,8.839436 0.161707,17.679044 0.306917,26.517468 22.543392,3.311975 45.083496,6.681001 67.640486,9.879014 0.707805,-1.584808 0.927844,-3.38045 1.409296,-5.054527 2.016873,-8.485505 4.096791,-17.013236 5.983816,-25.494426 C 73.834384,33.893685 48.719639,31.929235 23.603792,30.021951 Z" - id="path15302" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 105.70964,10.9949 c -2.04723,7.988726 -3.95537,16.018757 -5.760411,24.0651 -0.09181,0.399129 0.668121,0.305275 0.895981,0.503177 14.76867,4.724151 29.6277,9.159921 44.45413,13.697574 0.56266,0.0132 1.43127,0.822603 1.69088,0.02356 3.76738,-6.101923 7.50908,-12.219653 11.26222,-18.330345 C 140.73118,24.319841 123.2414,17.598552 105.7201,10.965954 Z" - id="path15304" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 99.538574,36.605015 c -2.404498,10.038575 -4.773209,20.08571 -7.157223,30.12918 10.469959,6.751144 20.856609,13.63389 31.372939,20.310217 5.09774,-8.059891 10.03938,-16.22106 14.93,-24.407994 0.68337,-0.665596 -0.55019,-0.877565 -0.92829,-1.284439 -12.52259,-8.268237 -24.97639,-16.645421 -37.61205,-24.738898 -0.254222,-0.05276 -0.6197,-0.629312 -0.605376,-0.0081 z" - id="path15306" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 102.125,36.891025 c 12.36769,8.299778 24.80002,16.506962 37.26148,24.666305 2.38774,-3.696043 4.70184,-7.455837 6.91276,-11.255455 -14.77094,-4.581048 -29.56403,-9.089092 -44.37206,-13.548898 l 0.11254,0.07854 z" - id="path15308" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 23.242995,3.7918378 c 0.05421,8.4942852 0.175988,16.9953832 0.382775,25.4835952 24.367795,2.026047 48.747686,3.911498 73.129097,5.767918 0.8139,0.03904 1.625054,0.167764 2.440603,0.105076 1.90249,-8.12831 3.90604,-16.236164 5.70064,-24.3878 C 77.684298,8.3721335 50.461701,6.0351672 23.244603,3.7510941 Z" - id="path15310" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 131.94592,75.08961 c -2.54719,4.151215 -5.09439,8.302428 -7.64159,12.453643 3.01648,3.379635 5.91493,6.871678 9.05797,10.13286 0.43532,0.577992 0.88677,-0.362441 1.30514,-0.495892 7.10325,-5.296198 14.28111,-10.510867 21.33416,-15.862984 -0.67834,-1.295656 -1.87313,-2.291297 -2.78184,-3.437096 -4.53251,-5.088551 -9.10726,-10.139868 -13.64431,-15.224338 -2.54317,4.144604 -5.08635,8.289203 -7.62953,12.433807 z" - id="path15312" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 143.48498,56.290667 c -1.10322,1.933757 -2.46642,3.74506 -3.36485,5.783466 0.26368,0.740882 1.08942,1.240157 1.54002,1.896739 5.03551,5.603319 10.01124,11.263707 15.15097,16.770055 5.43907,-3.982364 10.84761,-8.009552 16.23129,-12.067649 -8.67801,-6.041941 -17.38215,-12.046548 -26.04544,-18.109517 -1.17066,1.908971 -2.34133,3.817939 -3.51199,5.726906 z" - id="path15314" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 158.81802,31.427882 c -1.23857,1.666287 -2.24692,3.577211 -3.38122,5.344477 -2.67363,4.42141 -5.39572,8.816417 -7.96216,13.300068 8.71241,6.060837 17.37013,12.209653 26.21457,18.077077 1.12709,-0.621895 2.209,-1.60197 3.31446,-2.357746 4.50509,-3.350754 9.02276,-6.685402 13.48831,-10.088657 -3.3546,-2.857542 -6.9753,-5.403932 -10.43982,-8.132147 -7.01966,-5.369686 -14.03279,-10.755728 -21.06902,-16.099114 -0.0508,-0.02434 -0.10695,-0.05081 -0.16512,-0.04396 z" - id="path15316" /></g><g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="R-Tree Objects 1" - style="display:none"><rect - style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ff0000;fill-opacity:0.25;stroke:#ff0000;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect14336" - width="107.99667" - height="54.904438" - x="46.881836" - y="26.405735" - rx="0.027438877" - ry="1.8746314" /></g></svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="99.376884mm" + viewBox="1 0.5 208 98.430438" + version="1.1" + id="svg297" + xml:space="preserve" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + sodipodi:docname="localization_with_bus_step0.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"><title + id="title795">Localization</title><sodipodi:namedview + id="namedview299" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1.4142136" + inkscape:cx="358.14958" + inkscape:cy="267.28636" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer7" /><defs + id="defs294"><linearGradient + inkscape:collect="always" + id="linearGradient4195"><stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop4191" /><stop + style="stop-color:#404040;stop-opacity:1;" + offset="1" + id="stop4193" /></linearGradient><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3774" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3770" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3766" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3762" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3758" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3735" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3729" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3723" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3717" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3711" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter4160" + x="-0.007103069" + y="-0.2978693" + width="1.0142061" + height="1.5957386"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.097700015" + id="feGaussianBlur4162" /></filter><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter4164" + x="-0.007103069" + y="-0.2978693" + width="1.0142061" + height="1.5957386"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.097700015" + id="feGaussianBlur4166" /></filter><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4195" + id="linearGradient4197" + x1="87.013039" + y1="40.983868" + x2="88.879921" + y2="40.983868" + gradientUnits="userSpaceOnUse" /></defs><rect + style="font-variation-settings:normal;display:inline;vector-effect:none;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.693291;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" + id="rect51006" + width="209.41541" + height="98.979736" + x="0.11753607" + y="0" + inkscape:label="Background" /><g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Road" + style="display:inline"><path + id="path9093" + style="fill:#808080;stroke:none;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 209.53295,98.979749 H 133.89762 C 125.55121,87.990292 115.01163,78.071967 97.53503,69.160579 72.081706,56.181838 36.586237,56.576481 0.01866037,57.458419 L 0.12215197,3.7037819 C 40.831749,3.401259 76.804855,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658 z" + sodipodi:nodetypes="ccsccscc" + inkscape:label="Road" /><path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 0.01866037,57.458419 C 36.586237,56.576481 72.081706,56.181838 97.53503,69.160579 c 17.4766,8.911388 28.01618,18.829713 36.36259,29.81917" + id="path7339" + sodipodi:nodetypes="csc" + inkscape:label="Right Lane Marking" /><path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 102.13944,37.994908 c 11.37856,4.457223 34.80599,20.480688 44.06322,30.300555 9.25723,9.819867 22.58881,30.393118 22.58881,30.393118" + id="path7525" + sodipodi:nodetypes="czc" + inkscape:label="Right Lane Left Boudnary Marking" /><path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1" + d="M 0.01857674,30.122358 C 58.039953,28.420795 72.35031,30.880502 110.66003,37.524041 c 37.2424,6.458448 65.44977,30.530429 78.8974,47.997656 0.26118,0.339256 6.61369,8.244939 10.79382,13.458052" + id="path6399" + sodipodi:nodetypes="cssc" + inkscape:label="Left Lane Right Boundary Marking" /><path + style="fill:none;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 0.1221461,3.7037819 C 40.83174,3.401259 76.804846,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658" + id="path6401" + sodipodi:nodetypes="czc" + inkscape:label="Left Lane Marking" /><path + style="fill:none;stroke:#000000;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 145.76624,72.7546 145.521,73.367143" + id="path16788" /></g><metadata + id="metadata972"><rdf:RDF><cc:Work + rdf:about=""><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:title>Localization</dc:title><dc:rights><cc:Agent><dc:title>2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights></cc:Work></rdf:RDF></metadata><g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="R-Tree Objects" + style="display:none"><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect11550" + width="82.437019" + height="32.24387" + x="22.910805" + y="3.3456895" + rx="0.036079962" + ry="2.0597696" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12281" + width="76.165298" + height="31.102114" + x="23.298027" + y="35.589558" + rx="0.033335041" + ry="1.9868332" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12283" + width="59.138081" + height="39.661373" + x="99.548042" + y="10.442811" + rx="0.03371926" + ry="1.9158162" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12285" + width="59.138081" + height="39.661373" + x="99.548042" + y="10.442811" + rx="0.03371926" + ry="1.9158162" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12300" + width="47.335266" + height="51.565762" + x="91.999733" + y="35.593773" + rx="0.026989549" + ry="2.4908497" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12302" + width="47.141182" + height="26.431166" + x="99.569237" + y="35.593773" + rx="0.026878884" + ry="1.2767398" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffb380;fill-opacity:0.25;stroke:#ffb380;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12304" + width="44.326191" + height="37.685013" + x="-191.07913" + y="30.858921" + rx="0.025273839" + ry="1.8203492" + transform="scale(-1,1)" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12306" + width="34.101662" + height="30.822912" + x="-173.51215" + y="50.141434" + rx="0.019444034" + ry="1.4888799" + transform="scale(-1,1)" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12308" + width="32.866482" + height="36.518456" + x="-156.63138" + y="62.012878" + rx="0.01873976" + ry="1.7639993" + transform="scale(-1,1)" /></g><g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Bus" + inkscape:highlight-color="#21f335" + transform="matrix(1.2595586,0.43358335,-0.43358335,1.2595586,-7.4772654,17.310292)" + style="display:inline;opacity:1"><g + id="g4813" + inkscape:label="Bus" + style="display:inline;opacity:1" + transform="matrix(1.4671336,0,0,1.4671336,-6.1097123,-60.685604)"><g + id="g4678" + style="fill:#ff6600" + inkscape:label="Chassis"><path + id="rect3089" + style="font-variation-settings:normal;display:inline;opacity:1;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 36.060331,36.193656 c -0.368588,0 -0.665075,0.296488 -0.665075,0.665076 v 8.250143 c 0,0.368588 0.296487,0.665075 0.665075,0.665075 h 50.963815 c 0.02233,0 0.04439,-9.72e-4 0.06614,-0.0031 0.0011,-0.94223 0.480591,-0.49939 0.480591,-4.786788 0,-4.287417 -0.47945,-3.845061 -0.480591,-4.787305 -0.02175,-0.0021 -0.04381,-0.0031 -0.06614,-0.0031 z" + inkscape:label="Main Chassis" /><rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect3653" + width="0.80169088" + height="0.31897762" + x="-58.444439" + y="77.124367" + ry="0.1337648" + rx="0.01318328" + transform="rotate(-105,0.02296293,0.02992587)" + inkscape:label="Left Mirror" /><rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect3776" + width="0.80169088" + height="0.31897762" + x="-21.595352" + y="-98.675133" + ry="0.1337648" + rx="0.01318328" + transform="matrix(0.25881905,-0.96592583,-0.96592583,-0.25881905,-3.0000001e-6,-0.12556493)" + inkscape:label="Right Mirror" /><path + style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 87.09004,36.193544 c 0.603254,-0.249097 1.899251,0.05157 2.429165,-0.08899" + id="path3706" + sodipodi:nodetypes="cc" + transform="translate(0,0.05985174)" /><path + style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 87.105303,45.794684 c 0.536962,0.221724 1.852198,-0.0084 2.413906,0.134084" + id="path3778" + sodipodi:nodetypes="cc" + transform="translate(-3.0000001e-6,-0.12556493)" /></g><path + id="path3393" + style="font-variation-settings:normal;display:inline;opacity:1;fill:url(#linearGradient4197);fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 87.090041,36.193546 c 0,0.946678 0.480709,0.497797 0.480709,4.790323 0,4.292524 -0.480709,3.843646 -0.480709,4.790323 0.682089,0 1.158355,-0.307687 1.442478,-0.927801 0.284126,-0.620114 0.270291,-3.862522 0.270291,-3.862522 0,0 0.01384,-3.24241 -0.270291,-3.862524 -0.284123,-0.620113 -0.760389,-0.927799 -1.442478,-0.927799 z" + sodipodi:nodetypes="czcscsc" + inkscape:label="Windshield" /><g + id="g3819" + inkscape:label="Brake Lights" + style="stroke:#000000;stroke-width:0.228785;stroke-dasharray:none" + transform="matrix(0.79824418,0,0,0.95734129,7.1565329,1.7370124)"><path + style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 35.397831,37.661018 c 0.0043,-1.02308 8e-5,-0.96507 0.08178,-1.127752 0.04974,-0.09905 0.168103,-0.219649 0.266912,-0.271952 0.06189,-0.03276 0.233875,-0.08629 0.244173,-0.07599 0.009,0.009 -0.01934,0.676484 -0.03558,0.838613 -0.04692,0.468847 -0.135385,0.821036 -0.284104,1.131046 -0.06598,0.137533 -0.206875,0.362643 -0.253005,0.404222 l -0.02403,0.02167 z" + id="path3597" /><path + style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 35.397831,44.330203 c 0.0043,1.02308 8e-5,0.96507 0.08178,1.127752 0.04974,0.09905 0.168103,0.219649 0.266912,0.271952 0.06189,0.03276 0.233875,0.08629 0.244173,0.07599 0.009,-0.009 -0.01934,-0.676484 -0.03558,-0.838613 -0.04692,-0.468847 -0.135385,-0.821037 -0.284104,-1.131046 -0.06598,-0.137533 -0.206875,-0.362643 -0.253005,-0.404223 l -0.02403,-0.02167 z" + id="path3599" /></g><g + id="g3742" + transform="matrix(1.3533759,0,0,1,-13.287574,0)" + style="fill:#000000;stroke-width:0.859589;filter:url(#filter4160)" + inkscape:label="Side Windows Left"><path + id="rect3708" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3711" + inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3713" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3717" + inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3719" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3723" + inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3725" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3729" + inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3731" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3735" + inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g + id="g3754" + transform="matrix(1.3533759,0,0,-1,-13.287574,81.967607)" + style="stroke-width:0.859589;filter:url(#filter4164)" + inkscape:label="Side Windows Right"><path + id="path3744" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3758" + inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3746" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3762" + inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3748" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3766" + inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3750" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3770" + inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3752" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3774" + inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g + id="g4671" + inkscape:label="Outlets" + style="display:inline"><rect + style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="rect3145" + width="4.2580633" + height="2.5725811" + x="45.330647" + y="39.697514" + ry="0.17865145" + inkscape:label="Outlet Rear" /><rect + style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="rect3147" + width="4.2580633" + height="2.5725811" + x="70.036293" + y="39.697514" + ry="0.17865145" + inkscape:label="Outlet Front" /></g></g><rect + style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.366757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect4734" + width="80.083046" + height="15.679524" + x="45.780243" + y="-8.3966522" + rx="0.027102947" + ry="0.34118721" + inkscape:label="Bounding Box" /><path + style="opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.393965;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.1819, 0.393965, 0.787931;stroke-dashoffset:0;stroke-opacity:1" + d="m 122.43702,0.94798317 c 0.43071,0.0498385 0.61005,0.27360863 1.69829,0.42116713" + id="path17623" + sodipodi:nodetypes="cc" /><path + style="opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.347686;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.04306, 0.347686, 0.695373;stroke-dashoffset:0;stroke-opacity:1" + d="m 124.04233,-3.2580159 c -0.38106,-0.1080544 -1.17763,-0.2514946 -1.56381,-0.2408608" + id="path17625" + sodipodi:nodetypes="cc" /></g><g + id="g11364" + inkscape:label="Localization Grid" + style="display:none;opacity:0.75;stroke:#ff0000;stroke-width:0.3;stroke-dasharray:none" + transform="matrix(1.4671336,0,0,1.4671336,-36.842209,-51.139017)"><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 40.711213,37.136846 0.478454,36.48215" + id="path10617" + sodipodi:nodetypes="cc" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 87.826885,80.445464 96.937437,41.986238" + id="path10619" + sodipodi:nodetypes="cc" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 109.54837,94.559905 133.311,55.843819" + id="path11347" + sodipodi:nodetypes="cc" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 116.10869,101.97055 155.421,72.811089" + id="path11349" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 40.711212,37.136845 96.937435,41.986237 133.30829,55.848232 155.421,72.811091" + id="path11351" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 40.946252,55.058624 51.933742,4.055679 32.351586,9.893184 18.23736,12.668904" + id="path11353" /><path + style="display:inline;fill:none;stroke:#ffaf80;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.06, 0.265;stroke-dashoffset:0;stroke-opacity:1" + d="M 133.28272,55.889892 155.421,72.811089 143.46894,81.676391 125.23158,69.007489 Z" + id="path12310" + sodipodi:nodetypes="ccccc" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 92.879999,59.114306 27.330281,18.074311 11.71158,13.052691" + id="path11355" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 41.189666,73.618994 46.637217,6.826469 21.721487,14.114442 6.56032,7.410645" + id="path11417" /></g><g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Touched Areas" + style="display:none"><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 23.602453,30.061089 c 0.06425,8.839436 0.161707,17.679044 0.306917,26.517468 22.543392,3.311975 45.083496,6.681001 67.640486,9.879014 0.707805,-1.584808 0.927844,-3.38045 1.409296,-5.054527 2.016873,-8.485505 4.096791,-17.013236 5.983816,-25.494426 C 73.834384,33.893685 48.719639,31.929235 23.603792,30.021951 Z" + id="path15302" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 105.70964,10.9949 c -2.04723,7.988726 -3.95537,16.018757 -5.760411,24.0651 -0.09181,0.399129 0.668121,0.305275 0.895981,0.503177 14.76867,4.724151 29.6277,9.159921 44.45413,13.697574 0.56266,0.0132 1.43127,0.822603 1.69088,0.02356 3.76738,-6.101923 7.50908,-12.219653 11.26222,-18.330345 C 140.73118,24.319841 123.2414,17.598552 105.7201,10.965954 Z" + id="path15304" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 99.538574,36.605015 c -2.404498,10.038575 -4.773209,20.08571 -7.157223,30.12918 10.469959,6.751144 20.856609,13.63389 31.372939,20.310217 5.09774,-8.059891 10.03938,-16.22106 14.93,-24.407994 0.68337,-0.665596 -0.55019,-0.877565 -0.92829,-1.284439 -12.52259,-8.268237 -24.97639,-16.645421 -37.61205,-24.738898 -0.254222,-0.05276 -0.6197,-0.629312 -0.605376,-0.0081 z" + id="path15306" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 102.125,36.891025 c 12.36769,8.299778 24.80002,16.506962 37.26148,24.666305 2.38774,-3.696043 4.70184,-7.455837 6.91276,-11.255455 -14.77094,-4.581048 -29.56403,-9.089092 -44.37206,-13.548898 l 0.11254,0.07854 z" + id="path15308" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 23.242995,3.7918378 c 0.05421,8.4942852 0.175988,16.9953832 0.382775,25.4835952 24.367795,2.026047 48.747686,3.911498 73.129097,5.767918 0.8139,0.03904 1.625054,0.167764 2.440603,0.105076 1.90249,-8.12831 3.90604,-16.236164 5.70064,-24.3878 C 77.684298,8.3721335 50.461701,6.0351672 23.244603,3.7510941 Z" + id="path15310" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 131.94592,75.08961 c -2.54719,4.151215 -5.09439,8.302428 -7.64159,12.453643 3.01648,3.379635 5.91493,6.871678 9.05797,10.13286 0.43532,0.577992 0.88677,-0.362441 1.30514,-0.495892 7.10325,-5.296198 14.28111,-10.510867 21.33416,-15.862984 -0.67834,-1.295656 -1.87313,-2.291297 -2.78184,-3.437096 -4.53251,-5.088551 -9.10726,-10.139868 -13.64431,-15.224338 -2.54317,4.144604 -5.08635,8.289203 -7.62953,12.433807 z" + id="path15312" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 143.48498,56.290667 c -1.10322,1.933757 -2.46642,3.74506 -3.36485,5.783466 0.26368,0.740882 1.08942,1.240157 1.54002,1.896739 5.03551,5.603319 10.01124,11.263707 15.15097,16.770055 5.43907,-3.982364 10.84761,-8.009552 16.23129,-12.067649 -8.67801,-6.041941 -17.38215,-12.046548 -26.04544,-18.109517 -1.17066,1.908971 -2.34133,3.817939 -3.51199,5.726906 z" + id="path15314" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 158.81802,31.427882 c -1.23857,1.666287 -2.24692,3.577211 -3.38122,5.344477 -2.67363,4.42141 -5.39572,8.816417 -7.96216,13.300068 8.71241,6.060837 17.37013,12.209653 26.21457,18.077077 1.12709,-0.621895 2.209,-1.60197 3.31446,-2.357746 4.50509,-3.350754 9.02276,-6.685402 13.48831,-10.088657 -3.3546,-2.857542 -6.9753,-5.403932 -10.43982,-8.132147 -7.01966,-5.369686 -14.03279,-10.755728 -21.06902,-16.099114 -0.0508,-0.02434 -0.10695,-0.05081 -0.16512,-0.04396 z" + id="path15316" /></g><g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="R-Tree Objects 1" + style="display:none"><rect + style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ff0000;fill-opacity:0.25;stroke:#ff0000;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect14336" + width="107.99667" + height="54.904438" + x="46.881836" + y="26.405735" + rx="0.027438877" + ry="1.8746314" /></g></svg> diff --git a/content/html/_images/localization_with_bus_step1.svg b/content/html/_images/localization_with_bus_step1.svg index db833bc0a4459306e290b191d901e09d8c23cdec..e25b7c4a6b47439ed07325ff18fbf92a40783ca4 100644 --- a/content/html/_images/localization_with_bus_step1.svg +++ b/content/html/_images/localization_with_bus_step1.svg @@ -1,586 +1,586 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="99.376884mm" - viewBox="1 0.5 208 98.430438" - version="1.1" - id="svg297" - xml:space="preserve" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - sodipodi:docname="localization_with_bus_step2.svg" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"><title - id="title795">Localization</title><sodipodi:namedview - id="namedview299" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1.4142136" - inkscape:cx="339.7648" - inkscape:cy="181.01933" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="layer4" /><defs - id="defs294"><linearGradient - inkscape:collect="always" - id="linearGradient4195"><stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop4191" /><stop - style="stop-color:#404040;stop-opacity:1;" - offset="1" - id="stop4193" /></linearGradient><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3774" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3770" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3766" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3762" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3758" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3735" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3729" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3723" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3717" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3711" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter4160" - x="-0.007103069" - y="-0.2978693" - width="1.0142061" - height="1.5957386"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.097700015" - id="feGaussianBlur4162" /></filter><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter4164" - x="-0.007103069" - y="-0.2978693" - width="1.0142061" - height="1.5957386"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.097700015" - id="feGaussianBlur4166" /></filter><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4195" - id="linearGradient4197" - x1="87.013039" - y1="40.983868" - x2="88.879921" - y2="40.983868" - gradientUnits="userSpaceOnUse" /></defs><rect - style="font-variation-settings:normal;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.69333331;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;opacity:0.2" - id="rect51006" - width="209.41541" - height="98.979736" - x="0.11753607" - y="0" - inkscape:label="Background" /><g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Road" - style="display:inline;opacity:0.2"><path - id="path9093" - style="fill:#808080;stroke:none;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 209.53295,98.979749 H 133.89762 C 125.55121,87.990292 115.01163,78.071967 97.53503,69.160579 72.081706,56.181838 36.586237,56.576481 0.01866037,57.458419 L 0.12215197,3.7037819 C 40.831749,3.401259 76.804855,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658 z" - sodipodi:nodetypes="ccsccscc" - inkscape:label="Road" /><path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 0.01866037,57.458419 C 36.586237,56.576481 72.081706,56.181838 97.53503,69.160579 c 17.4766,8.911388 28.01618,18.829713 36.36259,29.81917" - id="path7339" - sodipodi:nodetypes="csc" - inkscape:label="Right Lane Marking" /><path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 102.13944,37.994908 c 11.37856,4.457223 34.80599,20.480688 44.06322,30.300555 9.25723,9.819867 22.58881,30.393118 22.58881,30.393118" - id="path7525" - sodipodi:nodetypes="czc" - inkscape:label="Right Lane Left Boudnary Marking" /><path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1" - d="M 0.01857674,30.122358 C 58.039953,28.420795 72.35031,30.880502 110.66003,37.524041 c 37.2424,6.458448 65.44977,30.530429 78.8974,47.997656 0.26118,0.339256 6.61369,8.244939 10.79382,13.458052" - id="path6399" - sodipodi:nodetypes="cssc" - inkscape:label="Left Lane Right Boundary Marking" /><path - style="fill:none;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 0.1221461,3.7037819 C 40.83174,3.401259 76.804846,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658" - id="path6401" - sodipodi:nodetypes="czc" - inkscape:label="Left Lane Marking" /></g><metadata - id="metadata972"><rdf:RDF><cc:Work - rdf:about=""><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:title>Localization</dc:title><dc:rights><cc:Agent><dc:title>2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights></cc:Work></rdf:RDF></metadata><g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="R-Tree Objects" - style="display:none"><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect11550" - width="82.437019" - height="32.24387" - x="22.910805" - y="3.3456895" - rx="0.036079962" - ry="2.0597696" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12281" - width="76.165298" - height="31.102114" - x="23.298027" - y="35.589558" - rx="0.033335041" - ry="1.9868332" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12283" - width="59.138081" - height="39.661373" - x="99.548042" - y="10.442811" - rx="0.03371926" - ry="1.9158162" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12285" - width="59.138081" - height="39.661373" - x="99.548042" - y="10.442811" - rx="0.03371926" - ry="1.9158162" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12300" - width="47.335266" - height="51.565762" - x="91.999733" - y="35.593773" - rx="0.026989549" - ry="2.4908497" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12302" - width="47.141182" - height="26.431166" - x="99.569237" - y="35.593773" - rx="0.026878884" - ry="1.2767398" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffb380;fill-opacity:0.25;stroke:#ffb380;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12304" - width="44.326191" - height="37.685013" - x="-191.07913" - y="30.858921" - rx="0.025273839" - ry="1.8203492" - transform="scale(-1,1)" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12306" - width="34.101662" - height="30.822912" - x="-173.51215" - y="50.141434" - rx="0.019444034" - ry="1.4888799" - transform="scale(-1,1)" /><rect - style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12308" - width="32.866482" - height="36.518456" - x="-156.63138" - y="62.012878" - rx="0.01873976" - ry="1.7639993" - transform="scale(-1,1)" /></g><g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Bus" - inkscape:highlight-color="#21f335" - transform="matrix(1.2595586,0.43358335,-0.43358335,1.2595586,-7.4772654,17.310292)" - style="display:inline;opacity:1"><g - id="g4813" - inkscape:label="Bus" - style="display:none;opacity:1" - transform="matrix(1.4671336,0,0,1.4671336,-6.1097123,-60.685604)"><g - id="g4678" - style="fill:#ff6600" - inkscape:label="Chassis"><path - id="rect3089" - style="font-variation-settings:normal;display:inline;opacity:1;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 36.060331,36.193656 c -0.368588,0 -0.665075,0.296488 -0.665075,0.665076 v 8.250143 c 0,0.368588 0.296487,0.665075 0.665075,0.665075 h 50.963815 c 0.02233,0 0.04439,-9.72e-4 0.06614,-0.0031 0.0011,-0.94223 0.480591,-0.49939 0.480591,-4.786788 0,-4.287417 -0.47945,-3.845061 -0.480591,-4.787305 -0.02175,-0.0021 -0.04381,-0.0031 -0.06614,-0.0031 z" - inkscape:label="Main Chassis" /><rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect3653" - width="0.80169088" - height="0.31897762" - x="-58.444439" - y="77.124367" - ry="0.1337648" - rx="0.01318328" - transform="rotate(-105,0.02296293,0.02992587)" - inkscape:label="Left Mirror" /><rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect3776" - width="0.80169088" - height="0.31897762" - x="-21.595352" - y="-98.675133" - ry="0.1337648" - rx="0.01318328" - transform="matrix(0.25881905,-0.96592583,-0.96592583,-0.25881905,-3.0000001e-6,-0.12556493)" - inkscape:label="Right Mirror" /><path - style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 87.09004,36.193544 c 0.603254,-0.249097 1.899251,0.05157 2.429165,-0.08899" - id="path3706" - sodipodi:nodetypes="cc" - transform="translate(0,0.05985174)" /><path - style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 87.105303,45.794684 c 0.536962,0.221724 1.852198,-0.0084 2.413906,0.134084" - id="path3778" - sodipodi:nodetypes="cc" - transform="translate(-3.0000001e-6,-0.12556493)" /></g><path - id="path3393" - style="font-variation-settings:normal;display:inline;opacity:1;fill:url(#linearGradient4197);fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 87.090041,36.193546 c 0,0.946678 0.480709,0.497797 0.480709,4.790323 0,4.292524 -0.480709,3.843646 -0.480709,4.790323 0.682089,0 1.158355,-0.307687 1.442478,-0.927801 0.284126,-0.620114 0.270291,-3.862522 0.270291,-3.862522 0,0 0.01384,-3.24241 -0.270291,-3.862524 -0.284123,-0.620113 -0.760389,-0.927799 -1.442478,-0.927799 z" - sodipodi:nodetypes="czcscsc" - inkscape:label="Windshield" /><g - id="g3819" - inkscape:label="Brake Lights" - style="stroke:#000000;stroke-width:0.228785;stroke-dasharray:none" - transform="matrix(0.79824418,0,0,0.95734129,7.1565329,1.7370124)"><path - style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 35.397831,37.661018 c 0.0043,-1.02308 8e-5,-0.96507 0.08178,-1.127752 0.04974,-0.09905 0.168103,-0.219649 0.266912,-0.271952 0.06189,-0.03276 0.233875,-0.08629 0.244173,-0.07599 0.009,0.009 -0.01934,0.676484 -0.03558,0.838613 -0.04692,0.468847 -0.135385,0.821036 -0.284104,1.131046 -0.06598,0.137533 -0.206875,0.362643 -0.253005,0.404222 l -0.02403,0.02167 z" - id="path3597" /><path - style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 35.397831,44.330203 c 0.0043,1.02308 8e-5,0.96507 0.08178,1.127752 0.04974,0.09905 0.168103,0.219649 0.266912,0.271952 0.06189,0.03276 0.233875,0.08629 0.244173,0.07599 0.009,-0.009 -0.01934,-0.676484 -0.03558,-0.838613 -0.04692,-0.468847 -0.135385,-0.821037 -0.284104,-1.131046 -0.06598,-0.137533 -0.206875,-0.362643 -0.253005,-0.404223 l -0.02403,-0.02167 z" - id="path3599" /></g><g - id="g3742" - transform="matrix(1.3533759,0,0,1,-13.287574,0)" - style="fill:#000000;stroke-width:0.859589;filter:url(#filter4160)" - inkscape:label="Side Windows Left"><path - id="rect3708" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3711" - inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3713" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3717" - inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3719" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3723" - inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3725" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3729" - inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3731" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3735" - inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g - id="g3754" - transform="matrix(1.3533759,0,0,-1,-13.287574,81.967607)" - style="stroke-width:0.859589;filter:url(#filter4164)" - inkscape:label="Side Windows Right"><path - id="path3744" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3758" - inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3746" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3762" - inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3748" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3766" - inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3750" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3770" - inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3752" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3774" - inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g - id="g4671" - inkscape:label="Outlets" - style="display:inline"><rect - style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="rect3145" - width="4.2580633" - height="2.5725811" - x="45.330647" - y="39.697514" - ry="0.17865145" - inkscape:label="Outlet Rear" /><rect - style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="rect3147" - width="4.2580633" - height="2.5725811" - x="70.036293" - y="39.697514" - ry="0.17865145" - inkscape:label="Outlet Front" /></g></g><rect - style="font-variation-settings:normal;display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.366757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect4734" - width="80.083046" - height="15.679524" - x="45.780243" - y="-8.3966522" - rx="0.027102947" - ry="0.34118721" - inkscape:label="Bounding Box" /><path - style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.393965;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.1819, 0.393965, 0.787931;stroke-dashoffset:0;stroke-opacity:1" - d="m 122.43702,0.94798317 c 0.43071,0.0498385 0.61005,0.27360863 1.69829,0.42116713" - id="path17623" - sodipodi:nodetypes="cc" /><path - style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.347686;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.04306, 0.347686, 0.695373;stroke-dashoffset:0;stroke-opacity:1" - d="m 124.04233,-3.2580159 c -0.38106,-0.1080544 -1.17763,-0.2514946 -1.56381,-0.2408608" - id="path17625" - sodipodi:nodetypes="cc" /></g><g - id="g11364" - inkscape:label="Localization Grid" - style="display:inline;opacity:0.75;stroke:#ff0000;stroke-width:0.3;stroke-dasharray:none" - transform="matrix(1.4671336,0,0,1.4671336,-36.842209,-51.139017)"><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 40.711213,37.136846 0.478454,36.48215" - id="path10617" - sodipodi:nodetypes="cc" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 87.826885,80.445464 96.937437,41.986238" - id="path10619" - sodipodi:nodetypes="cc" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 109.54837,94.559905 133.311,55.843819" - id="path11347" - sodipodi:nodetypes="cc" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 116.10869,101.97055 155.421,72.811089" - id="path11349" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 40.711212,37.136845 96.937435,41.986237 133.30829,55.848232 155.421,72.811091" - id="path11351" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 40.946252,55.058624 51.933742,4.055679 32.351586,9.893184 18.23736,12.668904" - id="path11353" /><path - style="display:none;fill:none;stroke:#ffaf80;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.06, 0.265;stroke-dashoffset:0;stroke-opacity:1" - d="M 133.28272,55.889892 155.421,72.811089 143.46894,81.676391 125.23158,69.007489 Z" - id="path12310" - sodipodi:nodetypes="ccccc" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 92.879999,59.114306 27.330281,18.074311 11.71158,13.052691" - id="path11355" /><path - style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 41.189666,73.618994 46.637217,6.826469 21.721487,14.114442 6.56032,7.410645" - id="path11417" /></g><g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Touched Areas" - style="display:none"><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 23.602453,30.061089 c 0.06425,8.839436 0.161707,17.679044 0.306917,26.517468 22.543392,3.311975 45.083496,6.681001 67.640486,9.879014 0.707805,-1.584808 0.927844,-3.38045 1.409296,-5.054527 2.016873,-8.485505 4.096791,-17.013236 5.983816,-25.494426 C 73.834384,33.893685 48.719639,31.929235 23.603792,30.021951 Z" - id="path15302" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 105.70964,10.9949 c -2.04723,7.988726 -3.95537,16.018757 -5.760411,24.0651 -0.09181,0.399129 0.668121,0.305275 0.895981,0.503177 14.76867,4.724151 29.6277,9.159921 44.45413,13.697574 0.56266,0.0132 1.43127,0.822603 1.69088,0.02356 3.76738,-6.101923 7.50908,-12.219653 11.26222,-18.330345 C 140.73118,24.319841 123.2414,17.598552 105.7201,10.965954 Z" - id="path15304" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 99.538574,36.605015 c -2.404498,10.038575 -4.773209,20.08571 -7.157223,30.12918 10.469959,6.751144 20.856609,13.63389 31.372939,20.310217 5.09774,-8.059891 10.03938,-16.22106 14.93,-24.407994 0.68337,-0.665596 -0.55019,-0.877565 -0.92829,-1.284439 -12.52259,-8.268237 -24.97639,-16.645421 -37.61205,-24.738898 -0.254222,-0.05276 -0.6197,-0.629312 -0.605376,-0.0081 z" - id="path15306" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 102.125,36.891025 c 12.36769,8.299778 24.80002,16.506962 37.26148,24.666305 2.38774,-3.696043 4.70184,-7.455837 6.91276,-11.255455 -14.77094,-4.581048 -29.56403,-9.089092 -44.37206,-13.548898 l 0.11254,0.07854 z" - id="path15308" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 23.242995,3.7918378 c 0.05421,8.4942852 0.175988,16.9953832 0.382775,25.4835952 24.367795,2.026047 48.747686,3.911498 73.129097,5.767918 0.8139,0.03904 1.625054,0.167764 2.440603,0.105076 1.90249,-8.12831 3.90604,-16.236164 5.70064,-24.3878 C 77.684298,8.3721335 50.461701,6.0351672 23.244603,3.7510941 Z" - id="path15310" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 131.94592,75.08961 c -2.54719,4.151215 -5.09439,8.302428 -7.64159,12.453643 3.01648,3.379635 5.91493,6.871678 9.05797,10.13286 0.43532,0.577992 0.88677,-0.362441 1.30514,-0.495892 7.10325,-5.296198 14.28111,-10.510867 21.33416,-15.862984 -0.67834,-1.295656 -1.87313,-2.291297 -2.78184,-3.437096 -4.53251,-5.088551 -9.10726,-10.139868 -13.64431,-15.224338 -2.54317,4.144604 -5.08635,8.289203 -7.62953,12.433807 z" - id="path15312" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 143.48498,56.290667 c -1.10322,1.933757 -2.46642,3.74506 -3.36485,5.783466 0.26368,0.740882 1.08942,1.240157 1.54002,1.896739 5.03551,5.603319 10.01124,11.263707 15.15097,16.770055 5.43907,-3.982364 10.84761,-8.009552 16.23129,-12.067649 -8.67801,-6.041941 -17.38215,-12.046548 -26.04544,-18.109517 -1.17066,1.908971 -2.34133,3.817939 -3.51199,5.726906 z" - id="path15314" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 158.81802,31.427882 c -1.23857,1.666287 -2.24692,3.577211 -3.38122,5.344477 -2.67363,4.42141 -5.39572,8.816417 -7.96216,13.300068 8.71241,6.060837 17.37013,12.209653 26.21457,18.077077 1.12709,-0.621895 2.209,-1.60197 3.31446,-2.357746 4.50509,-3.350754 9.02276,-6.685402 13.48831,-10.088657 -3.3546,-2.857542 -6.9753,-5.403932 -10.43982,-8.132147 -7.01966,-5.369686 -14.03279,-10.755728 -21.06902,-16.099114 -0.0508,-0.02434 -0.10695,-0.05081 -0.16512,-0.04396 z" - id="path15316" /></g><g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="R-Tree Objects 1" - style="display:none"><rect - style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ff0000;fill-opacity:0.25;stroke:#ff0000;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect14336" - width="107.99667" - height="54.904438" - x="46.881836" - y="26.405735" - rx="0.027438877" - ry="1.8746314" /></g></svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="99.376884mm" + viewBox="1 0.5 208 98.430438" + version="1.1" + id="svg297" + xml:space="preserve" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + sodipodi:docname="localization_with_bus_step2.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"><title + id="title795">Localization</title><sodipodi:namedview + id="namedview299" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1.4142136" + inkscape:cx="339.7648" + inkscape:cy="181.01933" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer4" /><defs + id="defs294"><linearGradient + inkscape:collect="always" + id="linearGradient4195"><stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop4191" /><stop + style="stop-color:#404040;stop-opacity:1;" + offset="1" + id="stop4193" /></linearGradient><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3774" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3770" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3766" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3762" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3758" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3735" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3729" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3723" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3717" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3711" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter4160" + x="-0.007103069" + y="-0.2978693" + width="1.0142061" + height="1.5957386"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.097700015" + id="feGaussianBlur4162" /></filter><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter4164" + x="-0.007103069" + y="-0.2978693" + width="1.0142061" + height="1.5957386"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.097700015" + id="feGaussianBlur4166" /></filter><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4195" + id="linearGradient4197" + x1="87.013039" + y1="40.983868" + x2="88.879921" + y2="40.983868" + gradientUnits="userSpaceOnUse" /></defs><rect + style="font-variation-settings:normal;display:inline;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.69333331;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;opacity:0.2" + id="rect51006" + width="209.41541" + height="98.979736" + x="0.11753607" + y="0" + inkscape:label="Background" /><g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Road" + style="display:inline;opacity:0.2"><path + id="path9093" + style="fill:#808080;stroke:none;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 209.53295,98.979749 H 133.89762 C 125.55121,87.990292 115.01163,78.071967 97.53503,69.160579 72.081706,56.181838 36.586237,56.576481 0.01866037,57.458419 L 0.12215197,3.7037819 C 40.831749,3.401259 76.804855,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658 z" + sodipodi:nodetypes="ccsccscc" + inkscape:label="Road" /><path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 0.01866037,57.458419 C 36.586237,56.576481 72.081706,56.181838 97.53503,69.160579 c 17.4766,8.911388 28.01618,18.829713 36.36259,29.81917" + id="path7339" + sodipodi:nodetypes="csc" + inkscape:label="Right Lane Marking" /><path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 102.13944,37.994908 c 11.37856,4.457223 34.80599,20.480688 44.06322,30.300555 9.25723,9.819867 22.58881,30.393118 22.58881,30.393118" + id="path7525" + sodipodi:nodetypes="czc" + inkscape:label="Right Lane Left Boudnary Marking" /><path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1" + d="M 0.01857674,30.122358 C 58.039953,28.420795 72.35031,30.880502 110.66003,37.524041 c 37.2424,6.458448 65.44977,30.530429 78.8974,47.997656 0.26118,0.339256 6.61369,8.244939 10.79382,13.458052" + id="path6399" + sodipodi:nodetypes="cssc" + inkscape:label="Left Lane Right Boundary Marking" /><path + style="fill:none;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 0.1221461,3.7037819 C 40.83174,3.401259 76.804846,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658" + id="path6401" + sodipodi:nodetypes="czc" + inkscape:label="Left Lane Marking" /></g><metadata + id="metadata972"><rdf:RDF><cc:Work + rdf:about=""><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:title>Localization</dc:title><dc:rights><cc:Agent><dc:title>2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights></cc:Work></rdf:RDF></metadata><g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="R-Tree Objects" + style="display:none"><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect11550" + width="82.437019" + height="32.24387" + x="22.910805" + y="3.3456895" + rx="0.036079962" + ry="2.0597696" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12281" + width="76.165298" + height="31.102114" + x="23.298027" + y="35.589558" + rx="0.033335041" + ry="1.9868332" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12283" + width="59.138081" + height="39.661373" + x="99.548042" + y="10.442811" + rx="0.03371926" + ry="1.9158162" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12285" + width="59.138081" + height="39.661373" + x="99.548042" + y="10.442811" + rx="0.03371926" + ry="1.9158162" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12300" + width="47.335266" + height="51.565762" + x="91.999733" + y="35.593773" + rx="0.026989549" + ry="2.4908497" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12302" + width="47.141182" + height="26.431166" + x="99.569237" + y="35.593773" + rx="0.026878884" + ry="1.2767398" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffb380;fill-opacity:0.25;stroke:#ffb380;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12304" + width="44.326191" + height="37.685013" + x="-191.07913" + y="30.858921" + rx="0.025273839" + ry="1.8203492" + transform="scale(-1,1)" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12306" + width="34.101662" + height="30.822912" + x="-173.51215" + y="50.141434" + rx="0.019444034" + ry="1.4888799" + transform="scale(-1,1)" /><rect + style="font-variation-settings:normal;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12308" + width="32.866482" + height="36.518456" + x="-156.63138" + y="62.012878" + rx="0.01873976" + ry="1.7639993" + transform="scale(-1,1)" /></g><g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Bus" + inkscape:highlight-color="#21f335" + transform="matrix(1.2595586,0.43358335,-0.43358335,1.2595586,-7.4772654,17.310292)" + style="display:inline;opacity:1"><g + id="g4813" + inkscape:label="Bus" + style="display:none;opacity:1" + transform="matrix(1.4671336,0,0,1.4671336,-6.1097123,-60.685604)"><g + id="g4678" + style="fill:#ff6600" + inkscape:label="Chassis"><path + id="rect3089" + style="font-variation-settings:normal;display:inline;opacity:1;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 36.060331,36.193656 c -0.368588,0 -0.665075,0.296488 -0.665075,0.665076 v 8.250143 c 0,0.368588 0.296487,0.665075 0.665075,0.665075 h 50.963815 c 0.02233,0 0.04439,-9.72e-4 0.06614,-0.0031 0.0011,-0.94223 0.480591,-0.49939 0.480591,-4.786788 0,-4.287417 -0.47945,-3.845061 -0.480591,-4.787305 -0.02175,-0.0021 -0.04381,-0.0031 -0.06614,-0.0031 z" + inkscape:label="Main Chassis" /><rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect3653" + width="0.80169088" + height="0.31897762" + x="-58.444439" + y="77.124367" + ry="0.1337648" + rx="0.01318328" + transform="rotate(-105,0.02296293,0.02992587)" + inkscape:label="Left Mirror" /><rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect3776" + width="0.80169088" + height="0.31897762" + x="-21.595352" + y="-98.675133" + ry="0.1337648" + rx="0.01318328" + transform="matrix(0.25881905,-0.96592583,-0.96592583,-0.25881905,-3.0000001e-6,-0.12556493)" + inkscape:label="Right Mirror" /><path + style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 87.09004,36.193544 c 0.603254,-0.249097 1.899251,0.05157 2.429165,-0.08899" + id="path3706" + sodipodi:nodetypes="cc" + transform="translate(0,0.05985174)" /><path + style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 87.105303,45.794684 c 0.536962,0.221724 1.852198,-0.0084 2.413906,0.134084" + id="path3778" + sodipodi:nodetypes="cc" + transform="translate(-3.0000001e-6,-0.12556493)" /></g><path + id="path3393" + style="font-variation-settings:normal;display:inline;opacity:1;fill:url(#linearGradient4197);fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 87.090041,36.193546 c 0,0.946678 0.480709,0.497797 0.480709,4.790323 0,4.292524 -0.480709,3.843646 -0.480709,4.790323 0.682089,0 1.158355,-0.307687 1.442478,-0.927801 0.284126,-0.620114 0.270291,-3.862522 0.270291,-3.862522 0,0 0.01384,-3.24241 -0.270291,-3.862524 -0.284123,-0.620113 -0.760389,-0.927799 -1.442478,-0.927799 z" + sodipodi:nodetypes="czcscsc" + inkscape:label="Windshield" /><g + id="g3819" + inkscape:label="Brake Lights" + style="stroke:#000000;stroke-width:0.228785;stroke-dasharray:none" + transform="matrix(0.79824418,0,0,0.95734129,7.1565329,1.7370124)"><path + style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 35.397831,37.661018 c 0.0043,-1.02308 8e-5,-0.96507 0.08178,-1.127752 0.04974,-0.09905 0.168103,-0.219649 0.266912,-0.271952 0.06189,-0.03276 0.233875,-0.08629 0.244173,-0.07599 0.009,0.009 -0.01934,0.676484 -0.03558,0.838613 -0.04692,0.468847 -0.135385,0.821036 -0.284104,1.131046 -0.06598,0.137533 -0.206875,0.362643 -0.253005,0.404222 l -0.02403,0.02167 z" + id="path3597" /><path + style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 35.397831,44.330203 c 0.0043,1.02308 8e-5,0.96507 0.08178,1.127752 0.04974,0.09905 0.168103,0.219649 0.266912,0.271952 0.06189,0.03276 0.233875,0.08629 0.244173,0.07599 0.009,-0.009 -0.01934,-0.676484 -0.03558,-0.838613 -0.04692,-0.468847 -0.135385,-0.821037 -0.284104,-1.131046 -0.06598,-0.137533 -0.206875,-0.362643 -0.253005,-0.404223 l -0.02403,-0.02167 z" + id="path3599" /></g><g + id="g3742" + transform="matrix(1.3533759,0,0,1,-13.287574,0)" + style="fill:#000000;stroke-width:0.859589;filter:url(#filter4160)" + inkscape:label="Side Windows Left"><path + id="rect3708" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3711" + inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3713" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3717" + inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3719" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3723" + inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3725" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3729" + inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3731" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3735" + inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g + id="g3754" + transform="matrix(1.3533759,0,0,-1,-13.287574,81.967607)" + style="stroke-width:0.859589;filter:url(#filter4164)" + inkscape:label="Side Windows Right"><path + id="path3744" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3758" + inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3746" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3762" + inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3748" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3766" + inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3750" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3770" + inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3752" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3774" + inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g + id="g4671" + inkscape:label="Outlets" + style="display:inline"><rect + style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="rect3145" + width="4.2580633" + height="2.5725811" + x="45.330647" + y="39.697514" + ry="0.17865145" + inkscape:label="Outlet Rear" /><rect + style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="rect3147" + width="4.2580633" + height="2.5725811" + x="70.036293" + y="39.697514" + ry="0.17865145" + inkscape:label="Outlet Front" /></g></g><rect + style="font-variation-settings:normal;display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.366757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect4734" + width="80.083046" + height="15.679524" + x="45.780243" + y="-8.3966522" + rx="0.027102947" + ry="0.34118721" + inkscape:label="Bounding Box" /><path + style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.393965;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.1819, 0.393965, 0.787931;stroke-dashoffset:0;stroke-opacity:1" + d="m 122.43702,0.94798317 c 0.43071,0.0498385 0.61005,0.27360863 1.69829,0.42116713" + id="path17623" + sodipodi:nodetypes="cc" /><path + style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.347686;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.04306, 0.347686, 0.695373;stroke-dashoffset:0;stroke-opacity:1" + d="m 124.04233,-3.2580159 c -0.38106,-0.1080544 -1.17763,-0.2514946 -1.56381,-0.2408608" + id="path17625" + sodipodi:nodetypes="cc" /></g><g + id="g11364" + inkscape:label="Localization Grid" + style="display:inline;opacity:0.75;stroke:#ff0000;stroke-width:0.3;stroke-dasharray:none" + transform="matrix(1.4671336,0,0,1.4671336,-36.842209,-51.139017)"><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 40.711213,37.136846 0.478454,36.48215" + id="path10617" + sodipodi:nodetypes="cc" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 87.826885,80.445464 96.937437,41.986238" + id="path10619" + sodipodi:nodetypes="cc" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 109.54837,94.559905 133.311,55.843819" + id="path11347" + sodipodi:nodetypes="cc" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 116.10869,101.97055 155.421,72.811089" + id="path11349" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 40.711212,37.136845 96.937435,41.986237 133.30829,55.848232 155.421,72.811091" + id="path11351" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 40.946252,55.058624 51.933742,4.055679 32.351586,9.893184 18.23736,12.668904" + id="path11353" /><path + style="display:none;fill:none;stroke:#ffaf80;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.06, 0.265;stroke-dashoffset:0;stroke-opacity:1" + d="M 133.28272,55.889892 155.421,72.811089 143.46894,81.676391 125.23158,69.007489 Z" + id="path12310" + sodipodi:nodetypes="ccccc" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 92.879999,59.114306 27.330281,18.074311 11.71158,13.052691" + id="path11355" /><path + style="fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 41.189666,73.618994 46.637217,6.826469 21.721487,14.114442 6.56032,7.410645" + id="path11417" /></g><g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Touched Areas" + style="display:none"><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 23.602453,30.061089 c 0.06425,8.839436 0.161707,17.679044 0.306917,26.517468 22.543392,3.311975 45.083496,6.681001 67.640486,9.879014 0.707805,-1.584808 0.927844,-3.38045 1.409296,-5.054527 2.016873,-8.485505 4.096791,-17.013236 5.983816,-25.494426 C 73.834384,33.893685 48.719639,31.929235 23.603792,30.021951 Z" + id="path15302" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 105.70964,10.9949 c -2.04723,7.988726 -3.95537,16.018757 -5.760411,24.0651 -0.09181,0.399129 0.668121,0.305275 0.895981,0.503177 14.76867,4.724151 29.6277,9.159921 44.45413,13.697574 0.56266,0.0132 1.43127,0.822603 1.69088,0.02356 3.76738,-6.101923 7.50908,-12.219653 11.26222,-18.330345 C 140.73118,24.319841 123.2414,17.598552 105.7201,10.965954 Z" + id="path15304" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 99.538574,36.605015 c -2.404498,10.038575 -4.773209,20.08571 -7.157223,30.12918 10.469959,6.751144 20.856609,13.63389 31.372939,20.310217 5.09774,-8.059891 10.03938,-16.22106 14.93,-24.407994 0.68337,-0.665596 -0.55019,-0.877565 -0.92829,-1.284439 -12.52259,-8.268237 -24.97639,-16.645421 -37.61205,-24.738898 -0.254222,-0.05276 -0.6197,-0.629312 -0.605376,-0.0081 z" + id="path15306" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 102.125,36.891025 c 12.36769,8.299778 24.80002,16.506962 37.26148,24.666305 2.38774,-3.696043 4.70184,-7.455837 6.91276,-11.255455 -14.77094,-4.581048 -29.56403,-9.089092 -44.37206,-13.548898 l 0.11254,0.07854 z" + id="path15308" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 23.242995,3.7918378 c 0.05421,8.4942852 0.175988,16.9953832 0.382775,25.4835952 24.367795,2.026047 48.747686,3.911498 73.129097,5.767918 0.8139,0.03904 1.625054,0.167764 2.440603,0.105076 1.90249,-8.12831 3.90604,-16.236164 5.70064,-24.3878 C 77.684298,8.3721335 50.461701,6.0351672 23.244603,3.7510941 Z" + id="path15310" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 131.94592,75.08961 c -2.54719,4.151215 -5.09439,8.302428 -7.64159,12.453643 3.01648,3.379635 5.91493,6.871678 9.05797,10.13286 0.43532,0.577992 0.88677,-0.362441 1.30514,-0.495892 7.10325,-5.296198 14.28111,-10.510867 21.33416,-15.862984 -0.67834,-1.295656 -1.87313,-2.291297 -2.78184,-3.437096 -4.53251,-5.088551 -9.10726,-10.139868 -13.64431,-15.224338 -2.54317,4.144604 -5.08635,8.289203 -7.62953,12.433807 z" + id="path15312" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 143.48498,56.290667 c -1.10322,1.933757 -2.46642,3.74506 -3.36485,5.783466 0.26368,0.740882 1.08942,1.240157 1.54002,1.896739 5.03551,5.603319 10.01124,11.263707 15.15097,16.770055 5.43907,-3.982364 10.84761,-8.009552 16.23129,-12.067649 -8.67801,-6.041941 -17.38215,-12.046548 -26.04544,-18.109517 -1.17066,1.908971 -2.34133,3.817939 -3.51199,5.726906 z" + id="path15314" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 158.81802,31.427882 c -1.23857,1.666287 -2.24692,3.577211 -3.38122,5.344477 -2.67363,4.42141 -5.39572,8.816417 -7.96216,13.300068 8.71241,6.060837 17.37013,12.209653 26.21457,18.077077 1.12709,-0.621895 2.209,-1.60197 3.31446,-2.357746 4.50509,-3.350754 9.02276,-6.685402 13.48831,-10.088657 -3.3546,-2.857542 -6.9753,-5.403932 -10.43982,-8.132147 -7.01966,-5.369686 -14.03279,-10.755728 -21.06902,-16.099114 -0.0508,-0.02434 -0.10695,-0.05081 -0.16512,-0.04396 z" + id="path15316" /></g><g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="R-Tree Objects 1" + style="display:none"><rect + style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ff0000;fill-opacity:0.25;stroke:#ff0000;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect14336" + width="107.99667" + height="54.904438" + x="46.881836" + y="26.405735" + rx="0.027438877" + ry="1.8746314" /></g></svg> diff --git a/content/html/_images/localization_with_bus_step2.svg b/content/html/_images/localization_with_bus_step2.svg index b7a36670e2912058e7cd0bf808bd2e664ce7316d..ee4f0ad7a71c236ff21fa2ac90a6495d0ff6081f 100644 --- a/content/html/_images/localization_with_bus_step2.svg +++ b/content/html/_images/localization_with_bus_step2.svg @@ -1,586 +1,586 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="99.376884mm" - viewBox="1 0.5 208 98.430438" - version="1.1" - id="svg297" - xml:space="preserve" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - sodipodi:docname="localization_with_bus_step2.svg" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"><title - id="title795">Localization</title><sodipodi:namedview - id="namedview299" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1.4142136" - inkscape:cx="376.53435" - inkscape:cy="177.4838" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="svg297" /><defs - id="defs294"><linearGradient - inkscape:collect="always" - id="linearGradient4195"><stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop4191" /><stop - style="stop-color:#404040;stop-opacity:1;" - offset="1" - id="stop4193" /></linearGradient><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3774" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3770" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3766" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3762" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3758" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3735" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3729" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3723" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3717" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3711" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter4160" - x="-0.007103069" - y="-0.2978693" - width="1.0142061" - height="1.5957386"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.097700015" - id="feGaussianBlur4162" /></filter><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter4164" - x="-0.007103069" - y="-0.2978693" - width="1.0142061" - height="1.5957386"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.097700015" - id="feGaussianBlur4166" /></filter><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4195" - id="linearGradient4197" - x1="87.013039" - y1="40.983868" - x2="88.879921" - y2="40.983868" - gradientUnits="userSpaceOnUse" /></defs><rect - style="font-variation-settings:normal;display:inline;vector-effect:none;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.693291;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;opacity:0.2" - id="rect51006" - width="209.41541" - height="98.979736" - x="0.11753607" - y="0" - inkscape:label="Background" /><g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Road" - style="display:inline;opacity:0.2"><path - id="path9093" - style="fill:#808080;stroke:none;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 209.53295,98.979749 H 133.89762 C 125.55121,87.990292 115.01163,78.071967 97.53503,69.160579 72.081706,56.181838 36.586237,56.576481 0.01866037,57.458419 L 0.12215197,3.7037819 C 40.831749,3.401259 76.804855,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658 z" - sodipodi:nodetypes="ccsccscc" - inkscape:label="Road" /><path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 0.01866037,57.458419 C 36.586237,56.576481 72.081706,56.181838 97.53503,69.160579 c 17.4766,8.911388 28.01618,18.829713 36.36259,29.81917" - id="path7339" - sodipodi:nodetypes="csc" - inkscape:label="Right Lane Marking" /><path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 102.13944,37.994908 c 11.37856,4.457223 34.80599,20.480688 44.06322,30.300555 9.25723,9.819867 22.58881,30.393118 22.58881,30.393118" - id="path7525" - sodipodi:nodetypes="czc" - inkscape:label="Right Lane Left Boudnary Marking" /><path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1" - d="M 0.01857674,30.122358 C 58.039953,28.420795 72.35031,30.880502 110.66003,37.524041 c 37.2424,6.458448 65.44977,30.530429 78.8974,47.997656 0.26118,0.339256 6.61369,8.244939 10.79382,13.458052" - id="path6399" - sodipodi:nodetypes="cssc" - inkscape:label="Left Lane Right Boundary Marking" /><path - style="fill:none;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 0.1221461,3.7037819 C 40.83174,3.401259 76.804846,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658" - id="path6401" - sodipodi:nodetypes="czc" - inkscape:label="Left Lane Marking" /></g><metadata - id="metadata972"><rdf:RDF><cc:Work - rdf:about=""><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:title>Localization</dc:title><dc:rights><cc:Agent><dc:title>2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights></cc:Work></rdf:RDF></metadata><g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="R-Tree Objects" - style="display:inline"><rect - style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect11550" - width="82.437019" - height="32.24387" - x="22.910805" - y="3.3456895" - rx="0.036079962" - ry="2.0597696" /><rect - style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12281" - width="76.165298" - height="31.102114" - x="23.298027" - y="35.589558" - rx="0.033335041" - ry="1.9868332" /><rect - style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12283" - width="59.138081" - height="39.661373" - x="99.548042" - y="10.442811" - rx="0.03371926" - ry="1.9158162" /><rect - style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12285" - width="59.138081" - height="39.661373" - x="99.548042" - y="10.442811" - rx="0.03371926" - ry="1.9158162" /><rect - style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12300" - width="47.335266" - height="51.565762" - x="91.999733" - y="35.593773" - rx="0.026989549" - ry="2.4908497" /><rect - style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12302" - width="47.141182" - height="26.431166" - x="99.569237" - y="35.593773" - rx="0.026878884" - ry="1.2767398" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ff00ff;fill-opacity:0.25;stroke:#ff00ff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12304" - width="44.326191" - height="37.685013" - x="-191.07913" - y="30.858921" - rx="0.025273839" - ry="1.8203492" - transform="scale(-1,1)" /><rect - style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12306" - width="34.101662" - height="30.822912" - x="-173.51215" - y="50.141434" - rx="0.019444034" - ry="1.4888799" - transform="scale(-1,1)" /><rect - style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12308" - width="32.866482" - height="36.518456" - x="-156.63138" - y="62.012878" - rx="0.01873976" - ry="1.7639993" - transform="scale(-1,1)" /></g><g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Bus" - inkscape:highlight-color="#21f335" - transform="matrix(1.2595586,0.43358335,-0.43358335,1.2595586,-7.4772654,17.310292)" - style="display:inline;opacity:1"><g - id="g4813" - inkscape:label="Bus" - style="display:none;opacity:1" - transform="matrix(1.4671336,0,0,1.4671336,-6.1097123,-60.685604)"><g - id="g4678" - style="fill:#ff6600" - inkscape:label="Chassis"><path - id="rect3089" - style="font-variation-settings:normal;display:inline;opacity:1;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 36.060331,36.193656 c -0.368588,0 -0.665075,0.296488 -0.665075,0.665076 v 8.250143 c 0,0.368588 0.296487,0.665075 0.665075,0.665075 h 50.963815 c 0.02233,0 0.04439,-9.72e-4 0.06614,-0.0031 0.0011,-0.94223 0.480591,-0.49939 0.480591,-4.786788 0,-4.287417 -0.47945,-3.845061 -0.480591,-4.787305 -0.02175,-0.0021 -0.04381,-0.0031 -0.06614,-0.0031 z" - inkscape:label="Main Chassis" /><rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect3653" - width="0.80169088" - height="0.31897762" - x="-58.444439" - y="77.124367" - ry="0.1337648" - rx="0.01318328" - transform="rotate(-105,0.02296293,0.02992587)" - inkscape:label="Left Mirror" /><rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect3776" - width="0.80169088" - height="0.31897762" - x="-21.595352" - y="-98.675133" - ry="0.1337648" - rx="0.01318328" - transform="matrix(0.25881905,-0.96592583,-0.96592583,-0.25881905,-3.0000001e-6,-0.12556493)" - inkscape:label="Right Mirror" /><path - style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 87.09004,36.193544 c 0.603254,-0.249097 1.899251,0.05157 2.429165,-0.08899" - id="path3706" - sodipodi:nodetypes="cc" - transform="translate(0,0.05985174)" /><path - style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 87.105303,45.794684 c 0.536962,0.221724 1.852198,-0.0084 2.413906,0.134084" - id="path3778" - sodipodi:nodetypes="cc" - transform="translate(-3.0000001e-6,-0.12556493)" /></g><path - id="path3393" - style="font-variation-settings:normal;display:inline;opacity:1;fill:url(#linearGradient4197);fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 87.090041,36.193546 c 0,0.946678 0.480709,0.497797 0.480709,4.790323 0,4.292524 -0.480709,3.843646 -0.480709,4.790323 0.682089,0 1.158355,-0.307687 1.442478,-0.927801 0.284126,-0.620114 0.270291,-3.862522 0.270291,-3.862522 0,0 0.01384,-3.24241 -0.270291,-3.862524 -0.284123,-0.620113 -0.760389,-0.927799 -1.442478,-0.927799 z" - sodipodi:nodetypes="czcscsc" - inkscape:label="Windshield" /><g - id="g3819" - inkscape:label="Brake Lights" - style="stroke:#000000;stroke-width:0.228785;stroke-dasharray:none" - transform="matrix(0.79824418,0,0,0.95734129,7.1565329,1.7370124)"><path - style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 35.397831,37.661018 c 0.0043,-1.02308 8e-5,-0.96507 0.08178,-1.127752 0.04974,-0.09905 0.168103,-0.219649 0.266912,-0.271952 0.06189,-0.03276 0.233875,-0.08629 0.244173,-0.07599 0.009,0.009 -0.01934,0.676484 -0.03558,0.838613 -0.04692,0.468847 -0.135385,0.821036 -0.284104,1.131046 -0.06598,0.137533 -0.206875,0.362643 -0.253005,0.404222 l -0.02403,0.02167 z" - id="path3597" /><path - style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 35.397831,44.330203 c 0.0043,1.02308 8e-5,0.96507 0.08178,1.127752 0.04974,0.09905 0.168103,0.219649 0.266912,0.271952 0.06189,0.03276 0.233875,0.08629 0.244173,0.07599 0.009,-0.009 -0.01934,-0.676484 -0.03558,-0.838613 -0.04692,-0.468847 -0.135385,-0.821037 -0.284104,-1.131046 -0.06598,-0.137533 -0.206875,-0.362643 -0.253005,-0.404223 l -0.02403,-0.02167 z" - id="path3599" /></g><g - id="g3742" - transform="matrix(1.3533759,0,0,1,-13.287574,0)" - style="fill:#000000;stroke-width:0.859589;filter:url(#filter4160)" - inkscape:label="Side Windows Left"><path - id="rect3708" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3711" - inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3713" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3717" - inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3719" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3723" - inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3725" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3729" - inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3731" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3735" - inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g - id="g3754" - transform="matrix(1.3533759,0,0,-1,-13.287574,81.967607)" - style="stroke-width:0.859589;filter:url(#filter4164)" - inkscape:label="Side Windows Right"><path - id="path3744" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3758" - inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3746" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3762" - inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3748" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3766" - inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3750" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3770" - inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3752" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3774" - inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g - id="g4671" - inkscape:label="Outlets" - style="display:inline"><rect - style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="rect3145" - width="4.2580633" - height="2.5725811" - x="45.330647" - y="39.697514" - ry="0.17865145" - inkscape:label="Outlet Rear" /><rect - style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="rect3147" - width="4.2580633" - height="2.5725811" - x="70.036293" - y="39.697514" - ry="0.17865145" - inkscape:label="Outlet Front" /></g></g><rect - style="font-variation-settings:normal;display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.366757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect4734" - width="80.083046" - height="15.679524" - x="45.780243" - y="-8.3966522" - rx="0.027102947" - ry="0.34118721" - inkscape:label="Bounding Box" /><path - style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.393965;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.1819, 0.393965, 0.787931;stroke-dashoffset:0;stroke-opacity:1" - d="m 122.43702,0.94798317 c 0.43071,0.0498385 0.61005,0.27360863 1.69829,0.42116713" - id="path17623" - sodipodi:nodetypes="cc" /><path - style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.347686;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.04306, 0.347686, 0.695373;stroke-dashoffset:0;stroke-opacity:1" - d="m 124.04233,-3.2580159 c -0.38106,-0.1080544 -1.17763,-0.2514946 -1.56381,-0.2408608" - id="path17625" - sodipodi:nodetypes="cc" /></g><g - id="g11364" - inkscape:label="Localization Grid" - style="display:inline;opacity:0.75;stroke:#ff00ff;stroke-width:0.3;stroke-dasharray:none" - transform="matrix(1.4671336,0,0,1.4671336,-36.842209,-51.139017)"><path - style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 40.711213,37.136846 0.478454,36.48215" - id="path10617" - sodipodi:nodetypes="cc" /><path - style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 87.826885,80.445464 96.937437,41.986238" - id="path10619" - sodipodi:nodetypes="cc" /><path - style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 109.54837,94.559905 133.311,55.843819" - id="path11347" - sodipodi:nodetypes="cc" /><path - style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 116.10869,101.97055 155.421,72.811089" - id="path11349" /><path - style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 40.711212,37.136845 96.937435,41.986237 133.30829,55.848232 155.421,72.811091" - id="path11351" /><path - style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 40.946252,55.058624 51.933742,4.055679 32.351586,9.893184 18.23736,12.668904" - id="path11353" /><path - style="display:inline;fill:none;stroke:#ff00ff;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.06, 0.265;stroke-dashoffset:0;stroke-opacity:1" - d="M 133.28272,55.889892 155.421,72.811089 143.46894,81.676391 125.23158,69.007489 Z" - id="path12310" - sodipodi:nodetypes="ccccc" /><path - style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 92.879999,59.114306 27.330281,18.074311 11.71158,13.052691" - id="path11355" /><path - style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 41.189666,73.618994 46.637217,6.826469 21.721487,14.114442 6.56032,7.410645" - id="path11417" /></g><g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Touched Areas" - style="display:none"><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 23.602453,30.061089 c 0.06425,8.839436 0.161707,17.679044 0.306917,26.517468 22.543392,3.311975 45.083496,6.681001 67.640486,9.879014 0.707805,-1.584808 0.927844,-3.38045 1.409296,-5.054527 2.016873,-8.485505 4.096791,-17.013236 5.983816,-25.494426 C 73.834384,33.893685 48.719639,31.929235 23.603792,30.021951 Z" - id="path15302" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 105.70964,10.9949 c -2.04723,7.988726 -3.95537,16.018757 -5.760411,24.0651 -0.09181,0.399129 0.668121,0.305275 0.895981,0.503177 14.76867,4.724151 29.6277,9.159921 44.45413,13.697574 0.56266,0.0132 1.43127,0.822603 1.69088,0.02356 3.76738,-6.101923 7.50908,-12.219653 11.26222,-18.330345 C 140.73118,24.319841 123.2414,17.598552 105.7201,10.965954 Z" - id="path15304" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 99.538574,36.605015 c -2.404498,10.038575 -4.773209,20.08571 -7.157223,30.12918 10.469959,6.751144 20.856609,13.63389 31.372939,20.310217 5.09774,-8.059891 10.03938,-16.22106 14.93,-24.407994 0.68337,-0.665596 -0.55019,-0.877565 -0.92829,-1.284439 -12.52259,-8.268237 -24.97639,-16.645421 -37.61205,-24.738898 -0.254222,-0.05276 -0.6197,-0.629312 -0.605376,-0.0081 z" - id="path15306" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 102.125,36.891025 c 12.36769,8.299778 24.80002,16.506962 37.26148,24.666305 2.38774,-3.696043 4.70184,-7.455837 6.91276,-11.255455 -14.77094,-4.581048 -29.56403,-9.089092 -44.37206,-13.548898 l 0.11254,0.07854 z" - id="path15308" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 23.242995,3.7918378 c 0.05421,8.4942852 0.175988,16.9953832 0.382775,25.4835952 24.367795,2.026047 48.747686,3.911498 73.129097,5.767918 0.8139,0.03904 1.625054,0.167764 2.440603,0.105076 1.90249,-8.12831 3.90604,-16.236164 5.70064,-24.3878 C 77.684298,8.3721335 50.461701,6.0351672 23.244603,3.7510941 Z" - id="path15310" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 131.94592,75.08961 c -2.54719,4.151215 -5.09439,8.302428 -7.64159,12.453643 3.01648,3.379635 5.91493,6.871678 9.05797,10.13286 0.43532,0.577992 0.88677,-0.362441 1.30514,-0.495892 7.10325,-5.296198 14.28111,-10.510867 21.33416,-15.862984 -0.67834,-1.295656 -1.87313,-2.291297 -2.78184,-3.437096 -4.53251,-5.088551 -9.10726,-10.139868 -13.64431,-15.224338 -2.54317,4.144604 -5.08635,8.289203 -7.62953,12.433807 z" - id="path15312" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 143.48498,56.290667 c -1.10322,1.933757 -2.46642,3.74506 -3.36485,5.783466 0.26368,0.740882 1.08942,1.240157 1.54002,1.896739 5.03551,5.603319 10.01124,11.263707 15.15097,16.770055 5.43907,-3.982364 10.84761,-8.009552 16.23129,-12.067649 -8.67801,-6.041941 -17.38215,-12.046548 -26.04544,-18.109517 -1.17066,1.908971 -2.34133,3.817939 -3.51199,5.726906 z" - id="path15314" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 158.81802,31.427882 c -1.23857,1.666287 -2.24692,3.577211 -3.38122,5.344477 -2.67363,4.42141 -5.39572,8.816417 -7.96216,13.300068 8.71241,6.060837 17.37013,12.209653 26.21457,18.077077 1.12709,-0.621895 2.209,-1.60197 3.31446,-2.357746 4.50509,-3.350754 9.02276,-6.685402 13.48831,-10.088657 -3.3546,-2.857542 -6.9753,-5.403932 -10.43982,-8.132147 -7.01966,-5.369686 -14.03279,-10.755728 -21.06902,-16.099114 -0.0508,-0.02434 -0.10695,-0.05081 -0.16512,-0.04396 z" - id="path15316" /></g><g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="R-Tree Objects 1" - style="display:inline"><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ff0000;fill-opacity:0.25;stroke:#ff0000;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect14336" - width="107.99667" - height="54.904438" - x="46.881836" - y="26.405735" - rx="0.027438877" - ry="1.8746314" /></g></svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="99.376884mm" + viewBox="1 0.5 208 98.430438" + version="1.1" + id="svg297" + xml:space="preserve" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + sodipodi:docname="localization_with_bus_step2.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"><title + id="title795">Localization</title><sodipodi:namedview + id="namedview299" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1.4142136" + inkscape:cx="376.53435" + inkscape:cy="177.4838" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="svg297" /><defs + id="defs294"><linearGradient + inkscape:collect="always" + id="linearGradient4195"><stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop4191" /><stop + style="stop-color:#404040;stop-opacity:1;" + offset="1" + id="stop4193" /></linearGradient><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3774" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3770" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3766" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3762" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3758" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3735" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3729" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3723" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3717" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3711" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter4160" + x="-0.007103069" + y="-0.2978693" + width="1.0142061" + height="1.5957386"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.097700015" + id="feGaussianBlur4162" /></filter><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter4164" + x="-0.007103069" + y="-0.2978693" + width="1.0142061" + height="1.5957386"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.097700015" + id="feGaussianBlur4166" /></filter><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4195" + id="linearGradient4197" + x1="87.013039" + y1="40.983868" + x2="88.879921" + y2="40.983868" + gradientUnits="userSpaceOnUse" /></defs><rect + style="font-variation-settings:normal;display:inline;vector-effect:none;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.693291;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;opacity:0.2" + id="rect51006" + width="209.41541" + height="98.979736" + x="0.11753607" + y="0" + inkscape:label="Background" /><g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Road" + style="display:inline;opacity:0.2"><path + id="path9093" + style="fill:#808080;stroke:none;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 209.53295,98.979749 H 133.89762 C 125.55121,87.990292 115.01163,78.071967 97.53503,69.160579 72.081706,56.181838 36.586237,56.576481 0.01866037,57.458419 L 0.12215197,3.7037819 C 40.831749,3.401259 76.804855,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658 z" + sodipodi:nodetypes="ccsccscc" + inkscape:label="Road" /><path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 0.01866037,57.458419 C 36.586237,56.576481 72.081706,56.181838 97.53503,69.160579 c 17.4766,8.911388 28.01618,18.829713 36.36259,29.81917" + id="path7339" + sodipodi:nodetypes="csc" + inkscape:label="Right Lane Marking" /><path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 102.13944,37.994908 c 11.37856,4.457223 34.80599,20.480688 44.06322,30.300555 9.25723,9.819867 22.58881,30.393118 22.58881,30.393118" + id="path7525" + sodipodi:nodetypes="czc" + inkscape:label="Right Lane Left Boudnary Marking" /><path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1" + d="M 0.01857674,30.122358 C 58.039953,28.420795 72.35031,30.880502 110.66003,37.524041 c 37.2424,6.458448 65.44977,30.530429 78.8974,47.997656 0.26118,0.339256 6.61369,8.244939 10.79382,13.458052" + id="path6399" + sodipodi:nodetypes="cssc" + inkscape:label="Left Lane Right Boundary Marking" /><path + style="fill:none;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 0.1221461,3.7037819 C 40.83174,3.401259 76.804846,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658" + id="path6401" + sodipodi:nodetypes="czc" + inkscape:label="Left Lane Marking" /></g><metadata + id="metadata972"><rdf:RDF><cc:Work + rdf:about=""><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:title>Localization</dc:title><dc:rights><cc:Agent><dc:title>2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights></cc:Work></rdf:RDF></metadata><g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="R-Tree Objects" + style="display:inline"><rect + style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect11550" + width="82.437019" + height="32.24387" + x="22.910805" + y="3.3456895" + rx="0.036079962" + ry="2.0597696" /><rect + style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12281" + width="76.165298" + height="31.102114" + x="23.298027" + y="35.589558" + rx="0.033335041" + ry="1.9868332" /><rect + style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12283" + width="59.138081" + height="39.661373" + x="99.548042" + y="10.442811" + rx="0.03371926" + ry="1.9158162" /><rect + style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12285" + width="59.138081" + height="39.661373" + x="99.548042" + y="10.442811" + rx="0.03371926" + ry="1.9158162" /><rect + style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12300" + width="47.335266" + height="51.565762" + x="91.999733" + y="35.593773" + rx="0.026989549" + ry="2.4908497" /><rect + style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12302" + width="47.141182" + height="26.431166" + x="99.569237" + y="35.593773" + rx="0.026878884" + ry="1.2767398" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ff00ff;fill-opacity:0.25;stroke:#ff00ff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12304" + width="44.326191" + height="37.685013" + x="-191.07913" + y="30.858921" + rx="0.025273839" + ry="1.8203492" + transform="scale(-1,1)" /><rect + style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12306" + width="34.101662" + height="30.822912" + x="-173.51215" + y="50.141434" + rx="0.019444034" + ry="1.4888799" + transform="scale(-1,1)" /><rect + style="font-variation-settings:normal;display:none;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12308" + width="32.866482" + height="36.518456" + x="-156.63138" + y="62.012878" + rx="0.01873976" + ry="1.7639993" + transform="scale(-1,1)" /></g><g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Bus" + inkscape:highlight-color="#21f335" + transform="matrix(1.2595586,0.43358335,-0.43358335,1.2595586,-7.4772654,17.310292)" + style="display:inline;opacity:1"><g + id="g4813" + inkscape:label="Bus" + style="display:none;opacity:1" + transform="matrix(1.4671336,0,0,1.4671336,-6.1097123,-60.685604)"><g + id="g4678" + style="fill:#ff6600" + inkscape:label="Chassis"><path + id="rect3089" + style="font-variation-settings:normal;display:inline;opacity:1;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 36.060331,36.193656 c -0.368588,0 -0.665075,0.296488 -0.665075,0.665076 v 8.250143 c 0,0.368588 0.296487,0.665075 0.665075,0.665075 h 50.963815 c 0.02233,0 0.04439,-9.72e-4 0.06614,-0.0031 0.0011,-0.94223 0.480591,-0.49939 0.480591,-4.786788 0,-4.287417 -0.47945,-3.845061 -0.480591,-4.787305 -0.02175,-0.0021 -0.04381,-0.0031 -0.06614,-0.0031 z" + inkscape:label="Main Chassis" /><rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect3653" + width="0.80169088" + height="0.31897762" + x="-58.444439" + y="77.124367" + ry="0.1337648" + rx="0.01318328" + transform="rotate(-105,0.02296293,0.02992587)" + inkscape:label="Left Mirror" /><rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect3776" + width="0.80169088" + height="0.31897762" + x="-21.595352" + y="-98.675133" + ry="0.1337648" + rx="0.01318328" + transform="matrix(0.25881905,-0.96592583,-0.96592583,-0.25881905,-3.0000001e-6,-0.12556493)" + inkscape:label="Right Mirror" /><path + style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 87.09004,36.193544 c 0.603254,-0.249097 1.899251,0.05157 2.429165,-0.08899" + id="path3706" + sodipodi:nodetypes="cc" + transform="translate(0,0.05985174)" /><path + style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 87.105303,45.794684 c 0.536962,0.221724 1.852198,-0.0084 2.413906,0.134084" + id="path3778" + sodipodi:nodetypes="cc" + transform="translate(-3.0000001e-6,-0.12556493)" /></g><path + id="path3393" + style="font-variation-settings:normal;display:inline;opacity:1;fill:url(#linearGradient4197);fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 87.090041,36.193546 c 0,0.946678 0.480709,0.497797 0.480709,4.790323 0,4.292524 -0.480709,3.843646 -0.480709,4.790323 0.682089,0 1.158355,-0.307687 1.442478,-0.927801 0.284126,-0.620114 0.270291,-3.862522 0.270291,-3.862522 0,0 0.01384,-3.24241 -0.270291,-3.862524 -0.284123,-0.620113 -0.760389,-0.927799 -1.442478,-0.927799 z" + sodipodi:nodetypes="czcscsc" + inkscape:label="Windshield" /><g + id="g3819" + inkscape:label="Brake Lights" + style="stroke:#000000;stroke-width:0.228785;stroke-dasharray:none" + transform="matrix(0.79824418,0,0,0.95734129,7.1565329,1.7370124)"><path + style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 35.397831,37.661018 c 0.0043,-1.02308 8e-5,-0.96507 0.08178,-1.127752 0.04974,-0.09905 0.168103,-0.219649 0.266912,-0.271952 0.06189,-0.03276 0.233875,-0.08629 0.244173,-0.07599 0.009,0.009 -0.01934,0.676484 -0.03558,0.838613 -0.04692,0.468847 -0.135385,0.821036 -0.284104,1.131046 -0.06598,0.137533 -0.206875,0.362643 -0.253005,0.404222 l -0.02403,0.02167 z" + id="path3597" /><path + style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 35.397831,44.330203 c 0.0043,1.02308 8e-5,0.96507 0.08178,1.127752 0.04974,0.09905 0.168103,0.219649 0.266912,0.271952 0.06189,0.03276 0.233875,0.08629 0.244173,0.07599 0.009,-0.009 -0.01934,-0.676484 -0.03558,-0.838613 -0.04692,-0.468847 -0.135385,-0.821037 -0.284104,-1.131046 -0.06598,-0.137533 -0.206875,-0.362643 -0.253005,-0.404223 l -0.02403,-0.02167 z" + id="path3599" /></g><g + id="g3742" + transform="matrix(1.3533759,0,0,1,-13.287574,0)" + style="fill:#000000;stroke-width:0.859589;filter:url(#filter4160)" + inkscape:label="Side Windows Left"><path + id="rect3708" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3711" + inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3713" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3717" + inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3719" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3723" + inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3725" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3729" + inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3731" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3735" + inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g + id="g3754" + transform="matrix(1.3533759,0,0,-1,-13.287574,81.967607)" + style="stroke-width:0.859589;filter:url(#filter4164)" + inkscape:label="Side Windows Right"><path + id="path3744" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3758" + inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3746" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3762" + inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3748" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3766" + inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3750" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3770" + inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3752" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3774" + inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g + id="g4671" + inkscape:label="Outlets" + style="display:inline"><rect + style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="rect3145" + width="4.2580633" + height="2.5725811" + x="45.330647" + y="39.697514" + ry="0.17865145" + inkscape:label="Outlet Rear" /><rect + style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="rect3147" + width="4.2580633" + height="2.5725811" + x="70.036293" + y="39.697514" + ry="0.17865145" + inkscape:label="Outlet Front" /></g></g><rect + style="font-variation-settings:normal;display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.366757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect4734" + width="80.083046" + height="15.679524" + x="45.780243" + y="-8.3966522" + rx="0.027102947" + ry="0.34118721" + inkscape:label="Bounding Box" /><path + style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.393965;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.1819, 0.393965, 0.787931;stroke-dashoffset:0;stroke-opacity:1" + d="m 122.43702,0.94798317 c 0.43071,0.0498385 0.61005,0.27360863 1.69829,0.42116713" + id="path17623" + sodipodi:nodetypes="cc" /><path + style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.347686;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.04306, 0.347686, 0.695373;stroke-dashoffset:0;stroke-opacity:1" + d="m 124.04233,-3.2580159 c -0.38106,-0.1080544 -1.17763,-0.2514946 -1.56381,-0.2408608" + id="path17625" + sodipodi:nodetypes="cc" /></g><g + id="g11364" + inkscape:label="Localization Grid" + style="display:inline;opacity:0.75;stroke:#ff00ff;stroke-width:0.3;stroke-dasharray:none" + transform="matrix(1.4671336,0,0,1.4671336,-36.842209,-51.139017)"><path + style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 40.711213,37.136846 0.478454,36.48215" + id="path10617" + sodipodi:nodetypes="cc" /><path + style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 87.826885,80.445464 96.937437,41.986238" + id="path10619" + sodipodi:nodetypes="cc" /><path + style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 109.54837,94.559905 133.311,55.843819" + id="path11347" + sodipodi:nodetypes="cc" /><path + style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 116.10869,101.97055 155.421,72.811089" + id="path11349" /><path + style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 40.711212,37.136845 96.937435,41.986237 133.30829,55.848232 155.421,72.811091" + id="path11351" /><path + style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 40.946252,55.058624 51.933742,4.055679 32.351586,9.893184 18.23736,12.668904" + id="path11353" /><path + style="display:inline;fill:none;stroke:#ff00ff;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.06, 0.265;stroke-dashoffset:0;stroke-opacity:1" + d="M 133.28272,55.889892 155.421,72.811089 143.46894,81.676391 125.23158,69.007489 Z" + id="path12310" + sodipodi:nodetypes="ccccc" /><path + style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 92.879999,59.114306 27.330281,18.074311 11.71158,13.052691" + id="path11355" /><path + style="display:none;fill:none;stroke:#ff00ff;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 41.189666,73.618994 46.637217,6.826469 21.721487,14.114442 6.56032,7.410645" + id="path11417" /></g><g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Touched Areas" + style="display:none"><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 23.602453,30.061089 c 0.06425,8.839436 0.161707,17.679044 0.306917,26.517468 22.543392,3.311975 45.083496,6.681001 67.640486,9.879014 0.707805,-1.584808 0.927844,-3.38045 1.409296,-5.054527 2.016873,-8.485505 4.096791,-17.013236 5.983816,-25.494426 C 73.834384,33.893685 48.719639,31.929235 23.603792,30.021951 Z" + id="path15302" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 105.70964,10.9949 c -2.04723,7.988726 -3.95537,16.018757 -5.760411,24.0651 -0.09181,0.399129 0.668121,0.305275 0.895981,0.503177 14.76867,4.724151 29.6277,9.159921 44.45413,13.697574 0.56266,0.0132 1.43127,0.822603 1.69088,0.02356 3.76738,-6.101923 7.50908,-12.219653 11.26222,-18.330345 C 140.73118,24.319841 123.2414,17.598552 105.7201,10.965954 Z" + id="path15304" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 99.538574,36.605015 c -2.404498,10.038575 -4.773209,20.08571 -7.157223,30.12918 10.469959,6.751144 20.856609,13.63389 31.372939,20.310217 5.09774,-8.059891 10.03938,-16.22106 14.93,-24.407994 0.68337,-0.665596 -0.55019,-0.877565 -0.92829,-1.284439 -12.52259,-8.268237 -24.97639,-16.645421 -37.61205,-24.738898 -0.254222,-0.05276 -0.6197,-0.629312 -0.605376,-0.0081 z" + id="path15306" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 102.125,36.891025 c 12.36769,8.299778 24.80002,16.506962 37.26148,24.666305 2.38774,-3.696043 4.70184,-7.455837 6.91276,-11.255455 -14.77094,-4.581048 -29.56403,-9.089092 -44.37206,-13.548898 l 0.11254,0.07854 z" + id="path15308" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 23.242995,3.7918378 c 0.05421,8.4942852 0.175988,16.9953832 0.382775,25.4835952 24.367795,2.026047 48.747686,3.911498 73.129097,5.767918 0.8139,0.03904 1.625054,0.167764 2.440603,0.105076 1.90249,-8.12831 3.90604,-16.236164 5.70064,-24.3878 C 77.684298,8.3721335 50.461701,6.0351672 23.244603,3.7510941 Z" + id="path15310" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 131.94592,75.08961 c -2.54719,4.151215 -5.09439,8.302428 -7.64159,12.453643 3.01648,3.379635 5.91493,6.871678 9.05797,10.13286 0.43532,0.577992 0.88677,-0.362441 1.30514,-0.495892 7.10325,-5.296198 14.28111,-10.510867 21.33416,-15.862984 -0.67834,-1.295656 -1.87313,-2.291297 -2.78184,-3.437096 -4.53251,-5.088551 -9.10726,-10.139868 -13.64431,-15.224338 -2.54317,4.144604 -5.08635,8.289203 -7.62953,12.433807 z" + id="path15312" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 143.48498,56.290667 c -1.10322,1.933757 -2.46642,3.74506 -3.36485,5.783466 0.26368,0.740882 1.08942,1.240157 1.54002,1.896739 5.03551,5.603319 10.01124,11.263707 15.15097,16.770055 5.43907,-3.982364 10.84761,-8.009552 16.23129,-12.067649 -8.67801,-6.041941 -17.38215,-12.046548 -26.04544,-18.109517 -1.17066,1.908971 -2.34133,3.817939 -3.51199,5.726906 z" + id="path15314" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 158.81802,31.427882 c -1.23857,1.666287 -2.24692,3.577211 -3.38122,5.344477 -2.67363,4.42141 -5.39572,8.816417 -7.96216,13.300068 8.71241,6.060837 17.37013,12.209653 26.21457,18.077077 1.12709,-0.621895 2.209,-1.60197 3.31446,-2.357746 4.50509,-3.350754 9.02276,-6.685402 13.48831,-10.088657 -3.3546,-2.857542 -6.9753,-5.403932 -10.43982,-8.132147 -7.01966,-5.369686 -14.03279,-10.755728 -21.06902,-16.099114 -0.0508,-0.02434 -0.10695,-0.05081 -0.16512,-0.04396 z" + id="path15316" /></g><g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="R-Tree Objects 1" + style="display:inline"><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ff0000;fill-opacity:0.25;stroke:#ff0000;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect14336" + width="107.99667" + height="54.904438" + x="46.881836" + y="26.405735" + rx="0.027438877" + ry="1.8746314" /></g></svg> diff --git a/content/html/_images/localization_with_bus_step3.svg b/content/html/_images/localization_with_bus_step3.svg index 5f27fa2302d1bdfbd5dd8af682d0ef5424f31857..1e603b6d490e24eff17e58bc655ab75f6cdd9d84 100644 --- a/content/html/_images/localization_with_bus_step3.svg +++ b/content/html/_images/localization_with_bus_step3.svg @@ -1,586 +1,586 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="99.376884mm" - viewBox="1 0.5 208 98.430438" - version="1.1" - id="svg297" - xml:space="preserve" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - sodipodi:docname="localization_with_bus_step5.svg" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"><title - id="title795">Localization</title><sodipodi:namedview - id="namedview299" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1.4142136" - inkscape:cx="293.80286" - inkscape:cy="181.01933" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="svg297" /><defs - id="defs294"><linearGradient - inkscape:collect="always" - id="linearGradient4195"><stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop4191" /><stop - style="stop-color:#404040;stop-opacity:1;" - offset="1" - id="stop4193" /></linearGradient><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3774" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3770" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3766" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3762" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3758" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3735" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3729" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3723" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3717" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3711" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter4160" - x="-0.007103069" - y="-0.2978693" - width="1.0142061" - height="1.5957386"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.097700015" - id="feGaussianBlur4162" /></filter><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter4164" - x="-0.007103069" - y="-0.2978693" - width="1.0142061" - height="1.5957386"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.097700015" - id="feGaussianBlur4166" /></filter><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4195" - id="linearGradient4197" - x1="87.013039" - y1="40.983868" - x2="88.879921" - y2="40.983868" - gradientUnits="userSpaceOnUse" /></defs><rect - style="font-variation-settings:normal;display:inline;vector-effect:none;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.693291;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;opacity:0.2" - id="rect51006" - width="209.41541" - height="98.979736" - x="0.11753607" - y="0" - inkscape:label="Background" /><g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Road" - style="display:inline;opacity:0.2"><path - id="path9093" - style="fill:#808080;stroke:none;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 209.53295,98.979749 H 133.89762 C 125.55121,87.990292 115.01163,78.071967 97.53503,69.160579 72.081706,56.181838 36.586237,56.576481 0.01866037,57.458419 L 0.12215197,3.7037819 C 40.831749,3.401259 76.804855,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658 z" - sodipodi:nodetypes="ccsccscc" - inkscape:label="Road" /><path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 0.01866037,57.458419 C 36.586237,56.576481 72.081706,56.181838 97.53503,69.160579 c 17.4766,8.911388 28.01618,18.829713 36.36259,29.81917" - id="path7339" - sodipodi:nodetypes="csc" - inkscape:label="Right Lane Marking" /><path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 102.13944,37.994908 c 11.37856,4.457223 34.80599,20.480688 44.06322,30.300555 9.25723,9.819867 22.58881,30.393118 22.58881,30.393118" - id="path7525" - sodipodi:nodetypes="czc" - inkscape:label="Right Lane Left Boudnary Marking" /><path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1" - d="M 0.01857674,30.122358 C 58.039953,28.420795 72.35031,30.880502 110.66003,37.524041 c 37.2424,6.458448 65.44977,30.530429 78.8974,47.997656 0.26118,0.339256 6.61369,8.244939 10.79382,13.458052" - id="path6399" - sodipodi:nodetypes="cssc" - inkscape:label="Left Lane Right Boundary Marking" /><path - style="fill:none;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 0.1221461,3.7037819 C 40.83174,3.401259 76.804846,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658" - id="path6401" - sodipodi:nodetypes="czc" - inkscape:label="Left Lane Marking" /></g><metadata - id="metadata972"><rdf:RDF><cc:Work - rdf:about=""><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:title>Localization</dc:title><dc:rights><cc:Agent><dc:title>2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights></cc:Work></rdf:RDF></metadata><g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="R-Tree Objects" - style="display:inline"><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect11550" - width="82.437019" - height="32.24387" - x="22.910805" - y="3.3456895" - rx="0.036079962" - ry="2.0597696" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12281" - width="76.165298" - height="31.102114" - x="23.298027" - y="35.589558" - rx="0.033335041" - ry="1.9868332" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12283" - width="59.138081" - height="39.661373" - x="99.548042" - y="10.442811" - rx="0.03371926" - ry="1.9158162" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12285" - width="59.138081" - height="39.661373" - x="99.548042" - y="10.442811" - rx="0.03371926" - ry="1.9158162" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12300" - width="47.335266" - height="51.565762" - x="91.999733" - y="35.593773" - rx="0.026989549" - ry="2.4908497" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12302" - width="47.141182" - height="26.431166" - x="99.569237" - y="35.593773" - rx="0.026878884" - ry="1.2767398" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1;vector-effect:none;-inkscape-stroke:none" - id="rect12304" - width="44.326191" - height="37.685013" - x="-191.07913" - y="30.858921" - rx="0.025273839" - ry="1.8203492" - transform="scale(-1,1)" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12306" - width="34.101662" - height="30.822912" - x="-173.51215" - y="50.141434" - rx="0.019444034" - ry="1.4888799" - transform="scale(-1,1)" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12308" - width="32.866482" - height="36.518456" - x="-156.63138" - y="62.012878" - rx="0.01873976" - ry="1.7639993" - transform="scale(-1,1)" /></g><g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Bus" - inkscape:highlight-color="#21f335" - transform="matrix(1.2595586,0.43358335,-0.43358335,1.2595586,-7.4772654,17.310292)" - style="display:inline;opacity:1"><g - id="g4813" - inkscape:label="Bus" - style="display:none;opacity:1" - transform="matrix(1.4671336,0,0,1.4671336,-6.1097123,-60.685604)"><g - id="g4678" - style="fill:#ff6600" - inkscape:label="Chassis"><path - id="rect3089" - style="font-variation-settings:normal;display:inline;opacity:1;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 36.060331,36.193656 c -0.368588,0 -0.665075,0.296488 -0.665075,0.665076 v 8.250143 c 0,0.368588 0.296487,0.665075 0.665075,0.665075 h 50.963815 c 0.02233,0 0.04439,-9.72e-4 0.06614,-0.0031 0.0011,-0.94223 0.480591,-0.49939 0.480591,-4.786788 0,-4.287417 -0.47945,-3.845061 -0.480591,-4.787305 -0.02175,-0.0021 -0.04381,-0.0031 -0.06614,-0.0031 z" - inkscape:label="Main Chassis" /><rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect3653" - width="0.80169088" - height="0.31897762" - x="-58.444439" - y="77.124367" - ry="0.1337648" - rx="0.01318328" - transform="rotate(-105,0.02296293,0.02992587)" - inkscape:label="Left Mirror" /><rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect3776" - width="0.80169088" - height="0.31897762" - x="-21.595352" - y="-98.675133" - ry="0.1337648" - rx="0.01318328" - transform="matrix(0.25881905,-0.96592583,-0.96592583,-0.25881905,-3.0000001e-6,-0.12556493)" - inkscape:label="Right Mirror" /><path - style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 87.09004,36.193544 c 0.603254,-0.249097 1.899251,0.05157 2.429165,-0.08899" - id="path3706" - sodipodi:nodetypes="cc" - transform="translate(0,0.05985174)" /><path - style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 87.105303,45.794684 c 0.536962,0.221724 1.852198,-0.0084 2.413906,0.134084" - id="path3778" - sodipodi:nodetypes="cc" - transform="translate(-3.0000001e-6,-0.12556493)" /></g><path - id="path3393" - style="font-variation-settings:normal;display:inline;opacity:1;fill:url(#linearGradient4197);fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 87.090041,36.193546 c 0,0.946678 0.480709,0.497797 0.480709,4.790323 0,4.292524 -0.480709,3.843646 -0.480709,4.790323 0.682089,0 1.158355,-0.307687 1.442478,-0.927801 0.284126,-0.620114 0.270291,-3.862522 0.270291,-3.862522 0,0 0.01384,-3.24241 -0.270291,-3.862524 -0.284123,-0.620113 -0.760389,-0.927799 -1.442478,-0.927799 z" - sodipodi:nodetypes="czcscsc" - inkscape:label="Windshield" /><g - id="g3819" - inkscape:label="Brake Lights" - style="stroke:#000000;stroke-width:0.228785;stroke-dasharray:none" - transform="matrix(0.79824418,0,0,0.95734129,7.1565329,1.7370124)"><path - style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 35.397831,37.661018 c 0.0043,-1.02308 8e-5,-0.96507 0.08178,-1.127752 0.04974,-0.09905 0.168103,-0.219649 0.266912,-0.271952 0.06189,-0.03276 0.233875,-0.08629 0.244173,-0.07599 0.009,0.009 -0.01934,0.676484 -0.03558,0.838613 -0.04692,0.468847 -0.135385,0.821036 -0.284104,1.131046 -0.06598,0.137533 -0.206875,0.362643 -0.253005,0.404222 l -0.02403,0.02167 z" - id="path3597" /><path - style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 35.397831,44.330203 c 0.0043,1.02308 8e-5,0.96507 0.08178,1.127752 0.04974,0.09905 0.168103,0.219649 0.266912,0.271952 0.06189,0.03276 0.233875,0.08629 0.244173,0.07599 0.009,-0.009 -0.01934,-0.676484 -0.03558,-0.838613 -0.04692,-0.468847 -0.135385,-0.821037 -0.284104,-1.131046 -0.06598,-0.137533 -0.206875,-0.362643 -0.253005,-0.404223 l -0.02403,-0.02167 z" - id="path3599" /></g><g - id="g3742" - transform="matrix(1.3533759,0,0,1,-13.287574,0)" - style="fill:#000000;stroke-width:0.859589;filter:url(#filter4160)" - inkscape:label="Side Windows Left"><path - id="rect3708" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3711" - inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3713" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3717" - inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3719" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3723" - inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3725" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3729" - inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3731" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3735" - inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g - id="g3754" - transform="matrix(1.3533759,0,0,-1,-13.287574,81.967607)" - style="stroke-width:0.859589;filter:url(#filter4164)" - inkscape:label="Side Windows Right"><path - id="path3744" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3758" - inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3746" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3762" - inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3748" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3766" - inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3750" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3770" - inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3752" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3774" - inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g - id="g4671" - inkscape:label="Outlets" - style="display:inline"><rect - style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="rect3145" - width="4.2580633" - height="2.5725811" - x="45.330647" - y="39.697514" - ry="0.17865145" - inkscape:label="Outlet Rear" /><rect - style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="rect3147" - width="4.2580633" - height="2.5725811" - x="70.036293" - y="39.697514" - ry="0.17865145" - inkscape:label="Outlet Front" /></g></g><rect - style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.366757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect4734" - width="80.083046" - height="15.679524" - x="45.780243" - y="-8.3966522" - rx="0.027102947" - ry="0.34118721" - inkscape:label="Bounding Box" /><path - style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.393965;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.1819, 0.393965, 0.787931;stroke-dashoffset:0;stroke-opacity:1" - d="m 122.43702,0.94798317 c 0.43071,0.0498385 0.61005,0.27360863 1.69829,0.42116713" - id="path17623" - sodipodi:nodetypes="cc" /><path - style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.347686;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.04306, 0.347686, 0.695373;stroke-dashoffset:0;stroke-opacity:1" - d="m 124.04233,-3.2580159 c -0.38106,-0.1080544 -1.17763,-0.2514946 -1.56381,-0.2408608" - id="path17625" - sodipodi:nodetypes="cc" /></g><g - id="g11364" - inkscape:label="Localization Grid" - style="display:inline;opacity:0.75;stroke:#ff0000;stroke-width:0.3;stroke-dasharray:none" - transform="matrix(1.4671336,0,0,1.4671336,-36.842209,-51.139017)"><path - style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 40.711213,37.136846 0.478454,36.48215" - id="path10617" - sodipodi:nodetypes="cc" /><path - style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 87.826885,80.445464 96.937437,41.986238" - id="path10619" - sodipodi:nodetypes="cc" /><path - style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 109.54837,94.559905 133.311,55.843819" - id="path11347" - sodipodi:nodetypes="cc" /><path - style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 116.10869,101.97055 155.421,72.811089" - id="path11349" /><path - style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 40.711212,37.136845 96.937435,41.986237 133.30829,55.848232 155.421,72.811091" - id="path11351" /><path - style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 40.946252,55.058624 51.933742,4.055679 32.351586,9.893184 18.23736,12.668904" - id="path11353" /><path - style="display:none;fill:none;stroke:#ffaf80;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.06, 0.265;stroke-dashoffset:0;stroke-opacity:1" - d="M 133.28272,55.889892 155.421,72.811089 143.46894,81.676391 125.23158,69.007489 Z" - id="path12310" - sodipodi:nodetypes="ccccc" /><path - style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 92.879999,59.114306 27.330281,18.074311 11.71158,13.052691" - id="path11355" /><path - style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 41.189666,73.618994 46.637217,6.826469 21.721487,14.114442 6.56032,7.410645" - id="path11417" /></g><g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Touched Areas" - style="display:none"><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 23.602453,30.061089 c 0.06425,8.839436 0.161707,17.679044 0.306917,26.517468 22.543392,3.311975 45.083496,6.681001 67.640486,9.879014 0.707805,-1.584808 0.927844,-3.38045 1.409296,-5.054527 2.016873,-8.485505 4.096791,-17.013236 5.983816,-25.494426 C 73.834384,33.893685 48.719639,31.929235 23.603792,30.021951 Z" - id="path15302" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 105.70964,10.9949 c -2.04723,7.988726 -3.95537,16.018757 -5.760411,24.0651 -0.09181,0.399129 0.668121,0.305275 0.895981,0.503177 14.76867,4.724151 29.6277,9.159921 44.45413,13.697574 0.56266,0.0132 1.43127,0.822603 1.69088,0.02356 3.76738,-6.101923 7.50908,-12.219653 11.26222,-18.330345 C 140.73118,24.319841 123.2414,17.598552 105.7201,10.965954 Z" - id="path15304" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 99.538574,36.605015 c -2.404498,10.038575 -4.773209,20.08571 -7.157223,30.12918 10.469959,6.751144 20.856609,13.63389 31.372939,20.310217 5.09774,-8.059891 10.03938,-16.22106 14.93,-24.407994 0.68337,-0.665596 -0.55019,-0.877565 -0.92829,-1.284439 -12.52259,-8.268237 -24.97639,-16.645421 -37.61205,-24.738898 -0.254222,-0.05276 -0.6197,-0.629312 -0.605376,-0.0081 z" - id="path15306" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 102.125,36.891025 c 12.36769,8.299778 24.80002,16.506962 37.26148,24.666305 2.38774,-3.696043 4.70184,-7.455837 6.91276,-11.255455 -14.77094,-4.581048 -29.56403,-9.089092 -44.37206,-13.548898 l 0.11254,0.07854 z" - id="path15308" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 23.242995,3.7918378 c 0.05421,8.4942852 0.175988,16.9953832 0.382775,25.4835952 24.367795,2.026047 48.747686,3.911498 73.129097,5.767918 0.8139,0.03904 1.625054,0.167764 2.440603,0.105076 1.90249,-8.12831 3.90604,-16.236164 5.70064,-24.3878 C 77.684298,8.3721335 50.461701,6.0351672 23.244603,3.7510941 Z" - id="path15310" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 131.94592,75.08961 c -2.54719,4.151215 -5.09439,8.302428 -7.64159,12.453643 3.01648,3.379635 5.91493,6.871678 9.05797,10.13286 0.43532,0.577992 0.88677,-0.362441 1.30514,-0.495892 7.10325,-5.296198 14.28111,-10.510867 21.33416,-15.862984 -0.67834,-1.295656 -1.87313,-2.291297 -2.78184,-3.437096 -4.53251,-5.088551 -9.10726,-10.139868 -13.64431,-15.224338 -2.54317,4.144604 -5.08635,8.289203 -7.62953,12.433807 z" - id="path15312" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 143.48498,56.290667 c -1.10322,1.933757 -2.46642,3.74506 -3.36485,5.783466 0.26368,0.740882 1.08942,1.240157 1.54002,1.896739 5.03551,5.603319 10.01124,11.263707 15.15097,16.770055 5.43907,-3.982364 10.84761,-8.009552 16.23129,-12.067649 -8.67801,-6.041941 -17.38215,-12.046548 -26.04544,-18.109517 -1.17066,1.908971 -2.34133,3.817939 -3.51199,5.726906 z" - id="path15314" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 158.81802,31.427882 c -1.23857,1.666287 -2.24692,3.577211 -3.38122,5.344477 -2.67363,4.42141 -5.39572,8.816417 -7.96216,13.300068 8.71241,6.060837 17.37013,12.209653 26.21457,18.077077 1.12709,-0.621895 2.209,-1.60197 3.31446,-2.357746 4.50509,-3.350754 9.02276,-6.685402 13.48831,-10.088657 -3.3546,-2.857542 -6.9753,-5.403932 -10.43982,-8.132147 -7.01966,-5.369686 -14.03279,-10.755728 -21.06902,-16.099114 -0.0508,-0.02434 -0.10695,-0.05081 -0.16512,-0.04396 z" - id="path15316" /></g><g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="R-Tree Objects 1" - style="display:inline"><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ff0000;fill-opacity:0.25;stroke:#ff0000;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect14336" - width="107.99667" - height="54.904438" - x="46.881836" - y="26.405735" - rx="0.027438877" - ry="1.8746314" /></g></svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="99.376884mm" + viewBox="1 0.5 208 98.430438" + version="1.1" + id="svg297" + xml:space="preserve" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + sodipodi:docname="localization_with_bus_step5.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"><title + id="title795">Localization</title><sodipodi:namedview + id="namedview299" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1.4142136" + inkscape:cx="293.80286" + inkscape:cy="181.01933" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="svg297" /><defs + id="defs294"><linearGradient + inkscape:collect="always" + id="linearGradient4195"><stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop4191" /><stop + style="stop-color:#404040;stop-opacity:1;" + offset="1" + id="stop4193" /></linearGradient><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3774" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3770" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3766" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3762" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3758" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3735" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3729" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3723" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3717" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3711" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter4160" + x="-0.007103069" + y="-0.2978693" + width="1.0142061" + height="1.5957386"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.097700015" + id="feGaussianBlur4162" /></filter><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter4164" + x="-0.007103069" + y="-0.2978693" + width="1.0142061" + height="1.5957386"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.097700015" + id="feGaussianBlur4166" /></filter><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4195" + id="linearGradient4197" + x1="87.013039" + y1="40.983868" + x2="88.879921" + y2="40.983868" + gradientUnits="userSpaceOnUse" /></defs><rect + style="font-variation-settings:normal;display:inline;vector-effect:none;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.693291;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;opacity:0.2" + id="rect51006" + width="209.41541" + height="98.979736" + x="0.11753607" + y="0" + inkscape:label="Background" /><g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Road" + style="display:inline;opacity:0.2"><path + id="path9093" + style="fill:#808080;stroke:none;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 209.53295,98.979749 H 133.89762 C 125.55121,87.990292 115.01163,78.071967 97.53503,69.160579 72.081706,56.181838 36.586237,56.576481 0.01866037,57.458419 L 0.12215197,3.7037819 C 40.831749,3.401259 76.804855,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658 z" + sodipodi:nodetypes="ccsccscc" + inkscape:label="Road" /><path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 0.01866037,57.458419 C 36.586237,56.576481 72.081706,56.181838 97.53503,69.160579 c 17.4766,8.911388 28.01618,18.829713 36.36259,29.81917" + id="path7339" + sodipodi:nodetypes="csc" + inkscape:label="Right Lane Marking" /><path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 102.13944,37.994908 c 11.37856,4.457223 34.80599,20.480688 44.06322,30.300555 9.25723,9.819867 22.58881,30.393118 22.58881,30.393118" + id="path7525" + sodipodi:nodetypes="czc" + inkscape:label="Right Lane Left Boudnary Marking" /><path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1" + d="M 0.01857674,30.122358 C 58.039953,28.420795 72.35031,30.880502 110.66003,37.524041 c 37.2424,6.458448 65.44977,30.530429 78.8974,47.997656 0.26118,0.339256 6.61369,8.244939 10.79382,13.458052" + id="path6399" + sodipodi:nodetypes="cssc" + inkscape:label="Left Lane Right Boundary Marking" /><path + style="fill:none;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 0.1221461,3.7037819 C 40.83174,3.401259 76.804846,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658" + id="path6401" + sodipodi:nodetypes="czc" + inkscape:label="Left Lane Marking" /></g><metadata + id="metadata972"><rdf:RDF><cc:Work + rdf:about=""><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:title>Localization</dc:title><dc:rights><cc:Agent><dc:title>2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights></cc:Work></rdf:RDF></metadata><g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="R-Tree Objects" + style="display:inline"><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect11550" + width="82.437019" + height="32.24387" + x="22.910805" + y="3.3456895" + rx="0.036079962" + ry="2.0597696" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12281" + width="76.165298" + height="31.102114" + x="23.298027" + y="35.589558" + rx="0.033335041" + ry="1.9868332" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12283" + width="59.138081" + height="39.661373" + x="99.548042" + y="10.442811" + rx="0.03371926" + ry="1.9158162" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12285" + width="59.138081" + height="39.661373" + x="99.548042" + y="10.442811" + rx="0.03371926" + ry="1.9158162" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12300" + width="47.335266" + height="51.565762" + x="91.999733" + y="35.593773" + rx="0.026989549" + ry="2.4908497" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12302" + width="47.141182" + height="26.431166" + x="99.569237" + y="35.593773" + rx="0.026878884" + ry="1.2767398" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1;vector-effect:none;-inkscape-stroke:none" + id="rect12304" + width="44.326191" + height="37.685013" + x="-191.07913" + y="30.858921" + rx="0.025273839" + ry="1.8203492" + transform="scale(-1,1)" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12306" + width="34.101662" + height="30.822912" + x="-173.51215" + y="50.141434" + rx="0.019444034" + ry="1.4888799" + transform="scale(-1,1)" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12308" + width="32.866482" + height="36.518456" + x="-156.63138" + y="62.012878" + rx="0.01873976" + ry="1.7639993" + transform="scale(-1,1)" /></g><g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Bus" + inkscape:highlight-color="#21f335" + transform="matrix(1.2595586,0.43358335,-0.43358335,1.2595586,-7.4772654,17.310292)" + style="display:inline;opacity:1"><g + id="g4813" + inkscape:label="Bus" + style="display:none;opacity:1" + transform="matrix(1.4671336,0,0,1.4671336,-6.1097123,-60.685604)"><g + id="g4678" + style="fill:#ff6600" + inkscape:label="Chassis"><path + id="rect3089" + style="font-variation-settings:normal;display:inline;opacity:1;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 36.060331,36.193656 c -0.368588,0 -0.665075,0.296488 -0.665075,0.665076 v 8.250143 c 0,0.368588 0.296487,0.665075 0.665075,0.665075 h 50.963815 c 0.02233,0 0.04439,-9.72e-4 0.06614,-0.0031 0.0011,-0.94223 0.480591,-0.49939 0.480591,-4.786788 0,-4.287417 -0.47945,-3.845061 -0.480591,-4.787305 -0.02175,-0.0021 -0.04381,-0.0031 -0.06614,-0.0031 z" + inkscape:label="Main Chassis" /><rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect3653" + width="0.80169088" + height="0.31897762" + x="-58.444439" + y="77.124367" + ry="0.1337648" + rx="0.01318328" + transform="rotate(-105,0.02296293,0.02992587)" + inkscape:label="Left Mirror" /><rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect3776" + width="0.80169088" + height="0.31897762" + x="-21.595352" + y="-98.675133" + ry="0.1337648" + rx="0.01318328" + transform="matrix(0.25881905,-0.96592583,-0.96592583,-0.25881905,-3.0000001e-6,-0.12556493)" + inkscape:label="Right Mirror" /><path + style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 87.09004,36.193544 c 0.603254,-0.249097 1.899251,0.05157 2.429165,-0.08899" + id="path3706" + sodipodi:nodetypes="cc" + transform="translate(0,0.05985174)" /><path + style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 87.105303,45.794684 c 0.536962,0.221724 1.852198,-0.0084 2.413906,0.134084" + id="path3778" + sodipodi:nodetypes="cc" + transform="translate(-3.0000001e-6,-0.12556493)" /></g><path + id="path3393" + style="font-variation-settings:normal;display:inline;opacity:1;fill:url(#linearGradient4197);fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 87.090041,36.193546 c 0,0.946678 0.480709,0.497797 0.480709,4.790323 0,4.292524 -0.480709,3.843646 -0.480709,4.790323 0.682089,0 1.158355,-0.307687 1.442478,-0.927801 0.284126,-0.620114 0.270291,-3.862522 0.270291,-3.862522 0,0 0.01384,-3.24241 -0.270291,-3.862524 -0.284123,-0.620113 -0.760389,-0.927799 -1.442478,-0.927799 z" + sodipodi:nodetypes="czcscsc" + inkscape:label="Windshield" /><g + id="g3819" + inkscape:label="Brake Lights" + style="stroke:#000000;stroke-width:0.228785;stroke-dasharray:none" + transform="matrix(0.79824418,0,0,0.95734129,7.1565329,1.7370124)"><path + style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 35.397831,37.661018 c 0.0043,-1.02308 8e-5,-0.96507 0.08178,-1.127752 0.04974,-0.09905 0.168103,-0.219649 0.266912,-0.271952 0.06189,-0.03276 0.233875,-0.08629 0.244173,-0.07599 0.009,0.009 -0.01934,0.676484 -0.03558,0.838613 -0.04692,0.468847 -0.135385,0.821036 -0.284104,1.131046 -0.06598,0.137533 -0.206875,0.362643 -0.253005,0.404222 l -0.02403,0.02167 z" + id="path3597" /><path + style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 35.397831,44.330203 c 0.0043,1.02308 8e-5,0.96507 0.08178,1.127752 0.04974,0.09905 0.168103,0.219649 0.266912,0.271952 0.06189,0.03276 0.233875,0.08629 0.244173,0.07599 0.009,-0.009 -0.01934,-0.676484 -0.03558,-0.838613 -0.04692,-0.468847 -0.135385,-0.821037 -0.284104,-1.131046 -0.06598,-0.137533 -0.206875,-0.362643 -0.253005,-0.404223 l -0.02403,-0.02167 z" + id="path3599" /></g><g + id="g3742" + transform="matrix(1.3533759,0,0,1,-13.287574,0)" + style="fill:#000000;stroke-width:0.859589;filter:url(#filter4160)" + inkscape:label="Side Windows Left"><path + id="rect3708" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3711" + inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3713" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3717" + inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3719" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3723" + inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3725" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3729" + inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3731" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3735" + inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g + id="g3754" + transform="matrix(1.3533759,0,0,-1,-13.287574,81.967607)" + style="stroke-width:0.859589;filter:url(#filter4164)" + inkscape:label="Side Windows Right"><path + id="path3744" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3758" + inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3746" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3762" + inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3748" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3766" + inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3750" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3770" + inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3752" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3774" + inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g + id="g4671" + inkscape:label="Outlets" + style="display:inline"><rect + style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="rect3145" + width="4.2580633" + height="2.5725811" + x="45.330647" + y="39.697514" + ry="0.17865145" + inkscape:label="Outlet Rear" /><rect + style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="rect3147" + width="4.2580633" + height="2.5725811" + x="70.036293" + y="39.697514" + ry="0.17865145" + inkscape:label="Outlet Front" /></g></g><rect + style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.366757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect4734" + width="80.083046" + height="15.679524" + x="45.780243" + y="-8.3966522" + rx="0.027102947" + ry="0.34118721" + inkscape:label="Bounding Box" /><path + style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.393965;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.1819, 0.393965, 0.787931;stroke-dashoffset:0;stroke-opacity:1" + d="m 122.43702,0.94798317 c 0.43071,0.0498385 0.61005,0.27360863 1.69829,0.42116713" + id="path17623" + sodipodi:nodetypes="cc" /><path + style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.347686;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.04306, 0.347686, 0.695373;stroke-dashoffset:0;stroke-opacity:1" + d="m 124.04233,-3.2580159 c -0.38106,-0.1080544 -1.17763,-0.2514946 -1.56381,-0.2408608" + id="path17625" + sodipodi:nodetypes="cc" /></g><g + id="g11364" + inkscape:label="Localization Grid" + style="display:inline;opacity:0.75;stroke:#ff0000;stroke-width:0.3;stroke-dasharray:none" + transform="matrix(1.4671336,0,0,1.4671336,-36.842209,-51.139017)"><path + style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 40.711213,37.136846 0.478454,36.48215" + id="path10617" + sodipodi:nodetypes="cc" /><path + style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 87.826885,80.445464 96.937437,41.986238" + id="path10619" + sodipodi:nodetypes="cc" /><path + style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 109.54837,94.559905 133.311,55.843819" + id="path11347" + sodipodi:nodetypes="cc" /><path + style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 116.10869,101.97055 155.421,72.811089" + id="path11349" /><path + style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 40.711212,37.136845 96.937435,41.986237 133.30829,55.848232 155.421,72.811091" + id="path11351" /><path + style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 40.946252,55.058624 51.933742,4.055679 32.351586,9.893184 18.23736,12.668904" + id="path11353" /><path + style="display:none;fill:none;stroke:#ffaf80;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.06, 0.265;stroke-dashoffset:0;stroke-opacity:1" + d="M 133.28272,55.889892 155.421,72.811089 143.46894,81.676391 125.23158,69.007489 Z" + id="path12310" + sodipodi:nodetypes="ccccc" /><path + style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 92.879999,59.114306 27.330281,18.074311 11.71158,13.052691" + id="path11355" /><path + style="display:none;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 41.189666,73.618994 46.637217,6.826469 21.721487,14.114442 6.56032,7.410645" + id="path11417" /></g><g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Touched Areas" + style="display:none"><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 23.602453,30.061089 c 0.06425,8.839436 0.161707,17.679044 0.306917,26.517468 22.543392,3.311975 45.083496,6.681001 67.640486,9.879014 0.707805,-1.584808 0.927844,-3.38045 1.409296,-5.054527 2.016873,-8.485505 4.096791,-17.013236 5.983816,-25.494426 C 73.834384,33.893685 48.719639,31.929235 23.603792,30.021951 Z" + id="path15302" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 105.70964,10.9949 c -2.04723,7.988726 -3.95537,16.018757 -5.760411,24.0651 -0.09181,0.399129 0.668121,0.305275 0.895981,0.503177 14.76867,4.724151 29.6277,9.159921 44.45413,13.697574 0.56266,0.0132 1.43127,0.822603 1.69088,0.02356 3.76738,-6.101923 7.50908,-12.219653 11.26222,-18.330345 C 140.73118,24.319841 123.2414,17.598552 105.7201,10.965954 Z" + id="path15304" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 99.538574,36.605015 c -2.404498,10.038575 -4.773209,20.08571 -7.157223,30.12918 10.469959,6.751144 20.856609,13.63389 31.372939,20.310217 5.09774,-8.059891 10.03938,-16.22106 14.93,-24.407994 0.68337,-0.665596 -0.55019,-0.877565 -0.92829,-1.284439 -12.52259,-8.268237 -24.97639,-16.645421 -37.61205,-24.738898 -0.254222,-0.05276 -0.6197,-0.629312 -0.605376,-0.0081 z" + id="path15306" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 102.125,36.891025 c 12.36769,8.299778 24.80002,16.506962 37.26148,24.666305 2.38774,-3.696043 4.70184,-7.455837 6.91276,-11.255455 -14.77094,-4.581048 -29.56403,-9.089092 -44.37206,-13.548898 l 0.11254,0.07854 z" + id="path15308" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 23.242995,3.7918378 c 0.05421,8.4942852 0.175988,16.9953832 0.382775,25.4835952 24.367795,2.026047 48.747686,3.911498 73.129097,5.767918 0.8139,0.03904 1.625054,0.167764 2.440603,0.105076 1.90249,-8.12831 3.90604,-16.236164 5.70064,-24.3878 C 77.684298,8.3721335 50.461701,6.0351672 23.244603,3.7510941 Z" + id="path15310" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 131.94592,75.08961 c -2.54719,4.151215 -5.09439,8.302428 -7.64159,12.453643 3.01648,3.379635 5.91493,6.871678 9.05797,10.13286 0.43532,0.577992 0.88677,-0.362441 1.30514,-0.495892 7.10325,-5.296198 14.28111,-10.510867 21.33416,-15.862984 -0.67834,-1.295656 -1.87313,-2.291297 -2.78184,-3.437096 -4.53251,-5.088551 -9.10726,-10.139868 -13.64431,-15.224338 -2.54317,4.144604 -5.08635,8.289203 -7.62953,12.433807 z" + id="path15312" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 143.48498,56.290667 c -1.10322,1.933757 -2.46642,3.74506 -3.36485,5.783466 0.26368,0.740882 1.08942,1.240157 1.54002,1.896739 5.03551,5.603319 10.01124,11.263707 15.15097,16.770055 5.43907,-3.982364 10.84761,-8.009552 16.23129,-12.067649 -8.67801,-6.041941 -17.38215,-12.046548 -26.04544,-18.109517 -1.17066,1.908971 -2.34133,3.817939 -3.51199,5.726906 z" + id="path15314" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 158.81802,31.427882 c -1.23857,1.666287 -2.24692,3.577211 -3.38122,5.344477 -2.67363,4.42141 -5.39572,8.816417 -7.96216,13.300068 8.71241,6.060837 17.37013,12.209653 26.21457,18.077077 1.12709,-0.621895 2.209,-1.60197 3.31446,-2.357746 4.50509,-3.350754 9.02276,-6.685402 13.48831,-10.088657 -3.3546,-2.857542 -6.9753,-5.403932 -10.43982,-8.132147 -7.01966,-5.369686 -14.03279,-10.755728 -21.06902,-16.099114 -0.0508,-0.02434 -0.10695,-0.05081 -0.16512,-0.04396 z" + id="path15316" /></g><g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="R-Tree Objects 1" + style="display:inline"><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ff0000;fill-opacity:0.25;stroke:#ff0000;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect14336" + width="107.99667" + height="54.904438" + x="46.881836" + y="26.405735" + rx="0.027438877" + ry="1.8746314" /></g></svg> diff --git a/content/html/_images/localization_with_bus_step4.svg b/content/html/_images/localization_with_bus_step4.svg index 9883438f19320ea190a75ce90cefeb26584f1c4a..1767842d01b31d91ce7d8ff901f31019c525f27c 100644 --- a/content/html/_images/localization_with_bus_step4.svg +++ b/content/html/_images/localization_with_bus_step4.svg @@ -1,586 +1,586 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="99.376884mm" - viewBox="1 0.5 208 98.430438" - version="1.1" - id="svg297" - xml:space="preserve" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - sodipodi:docname="localization_with_bus_step6.svg" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"><title - id="title795">Localization</title><sodipodi:namedview - id="namedview299" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1.4142136" - inkscape:cx="357.44247" - inkscape:cy="250.31579" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="svg297" /><defs - id="defs294"><linearGradient - inkscape:collect="always" - id="linearGradient4195"><stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop4191" /><stop - style="stop-color:#404040;stop-opacity:1;" - offset="1" - id="stop4193" /></linearGradient><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3774" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3770" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3766" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3762" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3758" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3735" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3729" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3723" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3717" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3711" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter4160" - x="-0.007103069" - y="-0.2978693" - width="1.0142061" - height="1.5957386"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.097700015" - id="feGaussianBlur4162" /></filter><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter4164" - x="-0.007103069" - y="-0.2978693" - width="1.0142061" - height="1.5957386"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.097700015" - id="feGaussianBlur4166" /></filter><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4195" - id="linearGradient4197" - x1="87.013039" - y1="40.983868" - x2="88.879921" - y2="40.983868" - gradientUnits="userSpaceOnUse" /></defs><rect - style="font-variation-settings:normal;display:inline;vector-effect:none;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.693291;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" - id="rect51006" - width="209.41541" - height="98.979736" - x="0.11753607" - y="0" - inkscape:label="Background" /><g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Road" - style="display:inline"><path - id="path9093" - style="fill:#808080;stroke:none;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 209.53295,98.979749 H 133.89762 C 125.55121,87.990292 115.01163,78.071967 97.53503,69.160579 72.081706,56.181838 36.586237,56.576481 0.01866037,57.458419 L 0.12215197,3.7037819 C 40.831749,3.401259 76.804855,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658 z" - sodipodi:nodetypes="ccsccscc" - inkscape:label="Road" /><path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 0.01866037,57.458419 C 36.586237,56.576481 72.081706,56.181838 97.53503,69.160579 c 17.4766,8.911388 28.01618,18.829713 36.36259,29.81917" - id="path7339" - sodipodi:nodetypes="csc" - inkscape:label="Right Lane Marking" /><path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 102.13944,37.994908 c 11.37856,4.457223 34.80599,20.480688 44.06322,30.300555 9.25723,9.819867 22.58881,30.393118 22.58881,30.393118" - id="path7525" - sodipodi:nodetypes="czc" - inkscape:label="Right Lane Left Boudnary Marking" /><path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1" - d="M 0.01857674,30.122358 C 58.039953,28.420795 72.35031,30.880502 110.66003,37.524041 c 37.2424,6.458448 65.44977,30.530429 78.8974,47.997656 0.26118,0.339256 6.61369,8.244939 10.79382,13.458052" - id="path6399" - sodipodi:nodetypes="cssc" - inkscape:label="Left Lane Right Boundary Marking" /><path - style="fill:none;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 0.1221461,3.7037819 C 40.83174,3.401259 76.804846,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658" - id="path6401" - sodipodi:nodetypes="czc" - inkscape:label="Left Lane Marking" /></g><metadata - id="metadata972"><rdf:RDF><cc:Work - rdf:about=""><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:title>Localization</dc:title><dc:rights><cc:Agent><dc:title>2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights></cc:Work></rdf:RDF></metadata><g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="R-Tree Objects" - style="display:none"><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect11550" - width="82.437019" - height="32.24387" - x="22.910805" - y="3.3456895" - rx="0.036079962" - ry="2.0597696" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12281" - width="76.165298" - height="31.102114" - x="23.298027" - y="35.589558" - rx="0.033335041" - ry="1.9868332" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12283" - width="59.138081" - height="39.661373" - x="99.548042" - y="10.442811" - rx="0.03371926" - ry="1.9158162" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12285" - width="59.138081" - height="39.661373" - x="99.548042" - y="10.442811" - rx="0.03371926" - ry="1.9158162" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12300" - width="47.335266" - height="51.565762" - x="91.999733" - y="35.593773" - rx="0.026989549" - ry="2.4908497" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12302" - width="47.141182" - height="26.431166" - x="99.569237" - y="35.593773" - rx="0.026878884" - ry="1.2767398" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;vector-effect:none;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12304" - width="44.326191" - height="37.685013" - x="-191.07913" - y="30.858921" - rx="0.025273839" - ry="1.8203492" - transform="scale(-1,1)" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12306" - width="34.101662" - height="30.822912" - x="-173.51215" - y="50.141434" - rx="0.019444034" - ry="1.4888799" - transform="scale(-1,1)" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12308" - width="32.866482" - height="36.518456" - x="-156.63138" - y="62.012878" - rx="0.01873976" - ry="1.7639993" - transform="scale(-1,1)" /></g><g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Bus" - inkscape:highlight-color="#21f335" - transform="matrix(1.2595586,0.43358335,-0.43358335,1.2595586,-7.4772654,17.310292)" - style="display:inline;opacity:1"><g - id="g4813" - inkscape:label="Bus" - style="display:inline;opacity:1" - transform="matrix(1.4671336,0,0,1.4671336,-6.1097123,-60.685604)"><g - id="g4678" - style="fill:#ff6600" - inkscape:label="Chassis"><path - id="rect3089" - style="font-variation-settings:normal;display:inline;opacity:1;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 36.060331,36.193656 c -0.368588,0 -0.665075,0.296488 -0.665075,0.665076 v 8.250143 c 0,0.368588 0.296487,0.665075 0.665075,0.665075 h 50.963815 c 0.02233,0 0.04439,-9.72e-4 0.06614,-0.0031 0.0011,-0.94223 0.480591,-0.49939 0.480591,-4.786788 0,-4.287417 -0.47945,-3.845061 -0.480591,-4.787305 -0.02175,-0.0021 -0.04381,-0.0031 -0.06614,-0.0031 z" - inkscape:label="Main Chassis" /><rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect3653" - width="0.80169088" - height="0.31897762" - x="-58.444439" - y="77.124367" - ry="0.1337648" - rx="0.01318328" - transform="rotate(-105,0.02296293,0.02992587)" - inkscape:label="Left Mirror" /><rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect3776" - width="0.80169088" - height="0.31897762" - x="-21.595352" - y="-98.675133" - ry="0.1337648" - rx="0.01318328" - transform="matrix(0.25881905,-0.96592583,-0.96592583,-0.25881905,-3.0000001e-6,-0.12556493)" - inkscape:label="Right Mirror" /><path - style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 87.09004,36.193544 c 0.603254,-0.249097 1.899251,0.05157 2.429165,-0.08899" - id="path3706" - sodipodi:nodetypes="cc" - transform="translate(0,0.05985174)" /><path - style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 87.105303,45.794684 c 0.536962,0.221724 1.852198,-0.0084 2.413906,0.134084" - id="path3778" - sodipodi:nodetypes="cc" - transform="translate(-3.0000001e-6,-0.12556493)" /></g><path - id="path3393" - style="font-variation-settings:normal;display:inline;opacity:1;fill:url(#linearGradient4197);fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 87.090041,36.193546 c 0,0.946678 0.480709,0.497797 0.480709,4.790323 0,4.292524 -0.480709,3.843646 -0.480709,4.790323 0.682089,0 1.158355,-0.307687 1.442478,-0.927801 0.284126,-0.620114 0.270291,-3.862522 0.270291,-3.862522 0,0 0.01384,-3.24241 -0.270291,-3.862524 -0.284123,-0.620113 -0.760389,-0.927799 -1.442478,-0.927799 z" - sodipodi:nodetypes="czcscsc" - inkscape:label="Windshield" /><g - id="g3819" - inkscape:label="Brake Lights" - style="stroke:#000000;stroke-width:0.228785;stroke-dasharray:none" - transform="matrix(0.79824418,0,0,0.95734129,7.1565329,1.7370124)"><path - style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 35.397831,37.661018 c 0.0043,-1.02308 8e-5,-0.96507 0.08178,-1.127752 0.04974,-0.09905 0.168103,-0.219649 0.266912,-0.271952 0.06189,-0.03276 0.233875,-0.08629 0.244173,-0.07599 0.009,0.009 -0.01934,0.676484 -0.03558,0.838613 -0.04692,0.468847 -0.135385,0.821036 -0.284104,1.131046 -0.06598,0.137533 -0.206875,0.362643 -0.253005,0.404222 l -0.02403,0.02167 z" - id="path3597" /><path - style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 35.397831,44.330203 c 0.0043,1.02308 8e-5,0.96507 0.08178,1.127752 0.04974,0.09905 0.168103,0.219649 0.266912,0.271952 0.06189,0.03276 0.233875,0.08629 0.244173,0.07599 0.009,-0.009 -0.01934,-0.676484 -0.03558,-0.838613 -0.04692,-0.468847 -0.135385,-0.821037 -0.284104,-1.131046 -0.06598,-0.137533 -0.206875,-0.362643 -0.253005,-0.404223 l -0.02403,-0.02167 z" - id="path3599" /></g><g - id="g3742" - transform="matrix(1.3533759,0,0,1,-13.287574,0)" - style="fill:#000000;stroke-width:0.859589;filter:url(#filter4160)" - inkscape:label="Side Windows Left"><path - id="rect3708" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3711" - inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3713" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3717" - inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3719" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3723" - inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3725" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3729" - inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3731" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3735" - inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g - id="g3754" - transform="matrix(1.3533759,0,0,-1,-13.287574,81.967607)" - style="stroke-width:0.859589;filter:url(#filter4164)" - inkscape:label="Side Windows Right"><path - id="path3744" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3758" - inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3746" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3762" - inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3748" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3766" - inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3750" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3770" - inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3752" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3774" - inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g - id="g4671" - inkscape:label="Outlets" - style="display:inline"><rect - style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="rect3145" - width="4.2580633" - height="2.5725811" - x="45.330647" - y="39.697514" - ry="0.17865145" - inkscape:label="Outlet Rear" /><rect - style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="rect3147" - width="4.2580633" - height="2.5725811" - x="70.036293" - y="39.697514" - ry="0.17865145" - inkscape:label="Outlet Front" /></g></g><rect - style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.366757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect4734" - width="80.083046" - height="15.679524" - x="45.780243" - y="-8.3966522" - rx="0.027102947" - ry="0.34118721" - inkscape:label="Bounding Box" /><path - style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.393965;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.1819, 0.393965, 0.787931;stroke-dashoffset:0;stroke-opacity:1" - d="m 122.43702,0.94798317 c 0.43071,0.0498385 0.61005,0.27360863 1.69829,0.42116713" - id="path17623" - sodipodi:nodetypes="cc" /><path - style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.347686;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.04306, 0.347686, 0.695373;stroke-dashoffset:0;stroke-opacity:1" - d="m 124.04233,-3.2580159 c -0.38106,-0.1080544 -1.17763,-0.2514946 -1.56381,-0.2408608" - id="path17625" - sodipodi:nodetypes="cc" /></g><g - id="g11364" - inkscape:label="Localization Grid" - style="display:inline;opacity:0.75;stroke:#ff0000;stroke-width:0.3;stroke-dasharray:none" - transform="matrix(1.4671336,0,0,1.4671336,-36.842209,-51.139017)"><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 40.711213,37.136846 0.478454,36.48215" - id="path10617" - sodipodi:nodetypes="cc" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 87.826885,80.445464 96.937437,41.986238" - id="path10619" - sodipodi:nodetypes="cc" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 109.54837,94.559905 133.311,55.843819" - id="path11347" - sodipodi:nodetypes="cc" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 116.10869,101.97055 155.421,72.811089" - id="path11349" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 40.711212,37.136845 96.937435,41.986237 133.30829,55.848232 155.421,72.811091" - id="path11351" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 40.946252,55.058624 51.933742,4.055679 32.351586,9.893184 18.23736,12.668904" - id="path11353" /><path - style="display:none;fill:none;stroke:#ffaf80;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.06, 0.265;stroke-dashoffset:0;stroke-opacity:1" - d="M 133.28272,55.889892 155.421,72.811089 143.46894,81.676391 125.23158,69.007489 Z" - id="path12310" - sodipodi:nodetypes="ccccc" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 92.879999,59.114306 27.330281,18.074311 11.71158,13.052691" - id="path11355" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 41.189666,73.618994 46.637217,6.826469 21.721487,14.114442 6.56032,7.410645" - id="path11417" /></g><g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Touched Areas" - style="display:inline"><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 23.602453,30.061089 c 0.06425,8.839436 0.161707,17.679044 0.306917,26.517468 22.543392,3.311975 45.083496,6.681001 67.640486,9.879014 0.707805,-1.584808 0.927844,-3.38045 1.409296,-5.054527 2.016873,-8.485505 4.096791,-17.013236 5.983816,-25.494426 C 73.834384,33.893685 48.719639,31.929235 23.603792,30.021951 Z" - id="path15302" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 105.70964,10.9949 c -2.04723,7.988726 -3.95537,16.018757 -5.760411,24.0651 -0.09181,0.399129 0.668121,0.305275 0.895981,0.503177 14.76867,4.724151 29.6277,9.159921 44.45413,13.697574 0.56266,0.0132 1.43127,0.822603 1.69088,0.02356 3.76738,-6.101923 7.50908,-12.219653 11.26222,-18.330345 C 140.73118,24.319841 123.2414,17.598552 105.7201,10.965954 Z" - id="path15304" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 99.538574,36.605015 c -2.404498,10.038575 -4.773209,20.08571 -7.157223,30.12918 10.469959,6.751144 20.856609,13.63389 31.372939,20.310217 5.09774,-8.059891 10.03938,-16.22106 14.93,-24.407994 0.68337,-0.665596 -0.55019,-0.877565 -0.92829,-1.284439 -12.52259,-8.268237 -24.97639,-16.645421 -37.61205,-24.738898 -0.254222,-0.05276 -0.6197,-0.629312 -0.605376,-0.0081 z" - id="path15306" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 102.125,36.891025 c 12.36769,8.299778 24.80002,16.506962 37.26148,24.666305 2.38774,-3.696043 4.70184,-7.455837 6.91276,-11.255455 -14.77094,-4.581048 -29.56403,-9.089092 -44.37206,-13.548898 l 0.11254,0.07854 z" - id="path15308" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 23.242995,3.7918378 c 0.05421,8.4942852 0.175988,16.9953832 0.382775,25.4835952 24.367795,2.026047 48.747686,3.911498 73.129097,5.767918 0.8139,0.03904 1.625054,0.167764 2.440603,0.105076 1.90249,-8.12831 3.90604,-16.236164 5.70064,-24.3878 C 77.684298,8.3721335 50.461701,6.0351672 23.244603,3.7510941 Z" - id="path15310" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 131.94592,75.08961 c -2.54719,4.151215 -5.09439,8.302428 -7.64159,12.453643 3.01648,3.379635 5.91493,6.871678 9.05797,10.13286 0.43532,0.577992 0.88677,-0.362441 1.30514,-0.495892 7.10325,-5.296198 14.28111,-10.510867 21.33416,-15.862984 -0.67834,-1.295656 -1.87313,-2.291297 -2.78184,-3.437096 -4.53251,-5.088551 -9.10726,-10.139868 -13.64431,-15.224338 -2.54317,4.144604 -5.08635,8.289203 -7.62953,12.433807 z" - id="path15312" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 143.48498,56.290667 c -1.10322,1.933757 -2.46642,3.74506 -3.36485,5.783466 0.26368,0.740882 1.08942,1.240157 1.54002,1.896739 5.03551,5.603319 10.01124,11.263707 15.15097,16.770055 5.43907,-3.982364 10.84761,-8.009552 16.23129,-12.067649 -8.67801,-6.041941 -17.38215,-12.046548 -26.04544,-18.109517 -1.17066,1.908971 -2.34133,3.817939 -3.51199,5.726906 z" - id="path15314" /><path - style="font-variation-settings:normal;display:inline;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 158.81802,31.427882 c -1.23857,1.666287 -2.24692,3.577211 -3.38122,5.344477 -2.67363,4.42141 -5.39572,8.816417 -7.96216,13.300068 8.71241,6.060837 17.37013,12.209653 26.21457,18.077077 1.12709,-0.621895 2.209,-1.60197 3.31446,-2.357746 4.50509,-3.350754 9.02276,-6.685402 13.48831,-10.088657 -3.3546,-2.857542 -6.9753,-5.403932 -10.43982,-8.132147 -7.01966,-5.369686 -14.03279,-10.755728 -21.06902,-16.099114 -0.0508,-0.02434 -0.10695,-0.05081 -0.16512,-0.04396 z" - id="path15316" /></g><g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="R-Tree Objects 1" - style="display:none"><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ff0000;fill-opacity:0.25;stroke:#ff0000;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect14336" - width="107.99667" - height="54.904438" - x="46.881836" - y="26.405735" - rx="0.027438877" - ry="1.8746314" /></g></svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="99.376884mm" + viewBox="1 0.5 208 98.430438" + version="1.1" + id="svg297" + xml:space="preserve" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + sodipodi:docname="localization_with_bus_step6.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"><title + id="title795">Localization</title><sodipodi:namedview + id="namedview299" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1.4142136" + inkscape:cx="357.44247" + inkscape:cy="250.31579" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="svg297" /><defs + id="defs294"><linearGradient + inkscape:collect="always" + id="linearGradient4195"><stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop4191" /><stop + style="stop-color:#404040;stop-opacity:1;" + offset="1" + id="stop4193" /></linearGradient><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3774" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3770" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3766" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3762" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3758" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3735" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3729" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3723" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3717" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3711" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter4160" + x="-0.007103069" + y="-0.2978693" + width="1.0142061" + height="1.5957386"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.097700015" + id="feGaussianBlur4162" /></filter><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter4164" + x="-0.007103069" + y="-0.2978693" + width="1.0142061" + height="1.5957386"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.097700015" + id="feGaussianBlur4166" /></filter><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4195" + id="linearGradient4197" + x1="87.013039" + y1="40.983868" + x2="88.879921" + y2="40.983868" + gradientUnits="userSpaceOnUse" /></defs><rect + style="font-variation-settings:normal;display:inline;vector-effect:none;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.693291;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" + id="rect51006" + width="209.41541" + height="98.979736" + x="0.11753607" + y="0" + inkscape:label="Background" /><g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Road" + style="display:inline"><path + id="path9093" + style="fill:#808080;stroke:none;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 209.53295,98.979749 H 133.89762 C 125.55121,87.990292 115.01163,78.071967 97.53503,69.160579 72.081706,56.181838 36.586237,56.576481 0.01866037,57.458419 L 0.12215197,3.7037819 C 40.831749,3.401259 76.804855,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658 z" + sodipodi:nodetypes="ccsccscc" + inkscape:label="Road" /><path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 0.01866037,57.458419 C 36.586237,56.576481 72.081706,56.181838 97.53503,69.160579 c 17.4766,8.911388 28.01618,18.829713 36.36259,29.81917" + id="path7339" + sodipodi:nodetypes="csc" + inkscape:label="Right Lane Marking" /><path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 102.13944,37.994908 c 11.37856,4.457223 34.80599,20.480688 44.06322,30.300555 9.25723,9.819867 22.58881,30.393118 22.58881,30.393118" + id="path7525" + sodipodi:nodetypes="czc" + inkscape:label="Right Lane Left Boudnary Marking" /><path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1" + d="M 0.01857674,30.122358 C 58.039953,28.420795 72.35031,30.880502 110.66003,37.524041 c 37.2424,6.458448 65.44977,30.530429 78.8974,47.997656 0.26118,0.339256 6.61369,8.244939 10.79382,13.458052" + id="path6399" + sodipodi:nodetypes="cssc" + inkscape:label="Left Lane Right Boundary Marking" /><path + style="fill:none;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 0.1221461,3.7037819 C 40.83174,3.401259 76.804846,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658" + id="path6401" + sodipodi:nodetypes="czc" + inkscape:label="Left Lane Marking" /></g><metadata + id="metadata972"><rdf:RDF><cc:Work + rdf:about=""><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:title>Localization</dc:title><dc:rights><cc:Agent><dc:title>2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights></cc:Work></rdf:RDF></metadata><g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="R-Tree Objects" + style="display:none"><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect11550" + width="82.437019" + height="32.24387" + x="22.910805" + y="3.3456895" + rx="0.036079962" + ry="2.0597696" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12281" + width="76.165298" + height="31.102114" + x="23.298027" + y="35.589558" + rx="0.033335041" + ry="1.9868332" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12283" + width="59.138081" + height="39.661373" + x="99.548042" + y="10.442811" + rx="0.03371926" + ry="1.9158162" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12285" + width="59.138081" + height="39.661373" + x="99.548042" + y="10.442811" + rx="0.03371926" + ry="1.9158162" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12300" + width="47.335266" + height="51.565762" + x="91.999733" + y="35.593773" + rx="0.026989549" + ry="2.4908497" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12302" + width="47.141182" + height="26.431166" + x="99.569237" + y="35.593773" + rx="0.026878884" + ry="1.2767398" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;vector-effect:none;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12304" + width="44.326191" + height="37.685013" + x="-191.07913" + y="30.858921" + rx="0.025273839" + ry="1.8203492" + transform="scale(-1,1)" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12306" + width="34.101662" + height="30.822912" + x="-173.51215" + y="50.141434" + rx="0.019444034" + ry="1.4888799" + transform="scale(-1,1)" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12308" + width="32.866482" + height="36.518456" + x="-156.63138" + y="62.012878" + rx="0.01873976" + ry="1.7639993" + transform="scale(-1,1)" /></g><g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Bus" + inkscape:highlight-color="#21f335" + transform="matrix(1.2595586,0.43358335,-0.43358335,1.2595586,-7.4772654,17.310292)" + style="display:inline;opacity:1"><g + id="g4813" + inkscape:label="Bus" + style="display:inline;opacity:1" + transform="matrix(1.4671336,0,0,1.4671336,-6.1097123,-60.685604)"><g + id="g4678" + style="fill:#ff6600" + inkscape:label="Chassis"><path + id="rect3089" + style="font-variation-settings:normal;display:inline;opacity:1;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 36.060331,36.193656 c -0.368588,0 -0.665075,0.296488 -0.665075,0.665076 v 8.250143 c 0,0.368588 0.296487,0.665075 0.665075,0.665075 h 50.963815 c 0.02233,0 0.04439,-9.72e-4 0.06614,-0.0031 0.0011,-0.94223 0.480591,-0.49939 0.480591,-4.786788 0,-4.287417 -0.47945,-3.845061 -0.480591,-4.787305 -0.02175,-0.0021 -0.04381,-0.0031 -0.06614,-0.0031 z" + inkscape:label="Main Chassis" /><rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect3653" + width="0.80169088" + height="0.31897762" + x="-58.444439" + y="77.124367" + ry="0.1337648" + rx="0.01318328" + transform="rotate(-105,0.02296293,0.02992587)" + inkscape:label="Left Mirror" /><rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect3776" + width="0.80169088" + height="0.31897762" + x="-21.595352" + y="-98.675133" + ry="0.1337648" + rx="0.01318328" + transform="matrix(0.25881905,-0.96592583,-0.96592583,-0.25881905,-3.0000001e-6,-0.12556493)" + inkscape:label="Right Mirror" /><path + style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 87.09004,36.193544 c 0.603254,-0.249097 1.899251,0.05157 2.429165,-0.08899" + id="path3706" + sodipodi:nodetypes="cc" + transform="translate(0,0.05985174)" /><path + style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 87.105303,45.794684 c 0.536962,0.221724 1.852198,-0.0084 2.413906,0.134084" + id="path3778" + sodipodi:nodetypes="cc" + transform="translate(-3.0000001e-6,-0.12556493)" /></g><path + id="path3393" + style="font-variation-settings:normal;display:inline;opacity:1;fill:url(#linearGradient4197);fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 87.090041,36.193546 c 0,0.946678 0.480709,0.497797 0.480709,4.790323 0,4.292524 -0.480709,3.843646 -0.480709,4.790323 0.682089,0 1.158355,-0.307687 1.442478,-0.927801 0.284126,-0.620114 0.270291,-3.862522 0.270291,-3.862522 0,0 0.01384,-3.24241 -0.270291,-3.862524 -0.284123,-0.620113 -0.760389,-0.927799 -1.442478,-0.927799 z" + sodipodi:nodetypes="czcscsc" + inkscape:label="Windshield" /><g + id="g3819" + inkscape:label="Brake Lights" + style="stroke:#000000;stroke-width:0.228785;stroke-dasharray:none" + transform="matrix(0.79824418,0,0,0.95734129,7.1565329,1.7370124)"><path + style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 35.397831,37.661018 c 0.0043,-1.02308 8e-5,-0.96507 0.08178,-1.127752 0.04974,-0.09905 0.168103,-0.219649 0.266912,-0.271952 0.06189,-0.03276 0.233875,-0.08629 0.244173,-0.07599 0.009,0.009 -0.01934,0.676484 -0.03558,0.838613 -0.04692,0.468847 -0.135385,0.821036 -0.284104,1.131046 -0.06598,0.137533 -0.206875,0.362643 -0.253005,0.404222 l -0.02403,0.02167 z" + id="path3597" /><path + style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 35.397831,44.330203 c 0.0043,1.02308 8e-5,0.96507 0.08178,1.127752 0.04974,0.09905 0.168103,0.219649 0.266912,0.271952 0.06189,0.03276 0.233875,0.08629 0.244173,0.07599 0.009,-0.009 -0.01934,-0.676484 -0.03558,-0.838613 -0.04692,-0.468847 -0.135385,-0.821037 -0.284104,-1.131046 -0.06598,-0.137533 -0.206875,-0.362643 -0.253005,-0.404223 l -0.02403,-0.02167 z" + id="path3599" /></g><g + id="g3742" + transform="matrix(1.3533759,0,0,1,-13.287574,0)" + style="fill:#000000;stroke-width:0.859589;filter:url(#filter4160)" + inkscape:label="Side Windows Left"><path + id="rect3708" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3711" + inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3713" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3717" + inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3719" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3723" + inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3725" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3729" + inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3731" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3735" + inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g + id="g3754" + transform="matrix(1.3533759,0,0,-1,-13.287574,81.967607)" + style="stroke-width:0.859589;filter:url(#filter4164)" + inkscape:label="Side Windows Right"><path + id="path3744" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3758" + inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3746" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3762" + inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3748" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3766" + inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3750" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3770" + inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3752" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3774" + inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g + id="g4671" + inkscape:label="Outlets" + style="display:inline"><rect + style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="rect3145" + width="4.2580633" + height="2.5725811" + x="45.330647" + y="39.697514" + ry="0.17865145" + inkscape:label="Outlet Rear" /><rect + style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="rect3147" + width="4.2580633" + height="2.5725811" + x="70.036293" + y="39.697514" + ry="0.17865145" + inkscape:label="Outlet Front" /></g></g><rect + style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.366757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect4734" + width="80.083046" + height="15.679524" + x="45.780243" + y="-8.3966522" + rx="0.027102947" + ry="0.34118721" + inkscape:label="Bounding Box" /><path + style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.393965;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.1819, 0.393965, 0.787931;stroke-dashoffset:0;stroke-opacity:1" + d="m 122.43702,0.94798317 c 0.43071,0.0498385 0.61005,0.27360863 1.69829,0.42116713" + id="path17623" + sodipodi:nodetypes="cc" /><path + style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.347686;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.04306, 0.347686, 0.695373;stroke-dashoffset:0;stroke-opacity:1" + d="m 124.04233,-3.2580159 c -0.38106,-0.1080544 -1.17763,-0.2514946 -1.56381,-0.2408608" + id="path17625" + sodipodi:nodetypes="cc" /></g><g + id="g11364" + inkscape:label="Localization Grid" + style="display:inline;opacity:0.75;stroke:#ff0000;stroke-width:0.3;stroke-dasharray:none" + transform="matrix(1.4671336,0,0,1.4671336,-36.842209,-51.139017)"><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 40.711213,37.136846 0.478454,36.48215" + id="path10617" + sodipodi:nodetypes="cc" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 87.826885,80.445464 96.937437,41.986238" + id="path10619" + sodipodi:nodetypes="cc" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 109.54837,94.559905 133.311,55.843819" + id="path11347" + sodipodi:nodetypes="cc" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 116.10869,101.97055 155.421,72.811089" + id="path11349" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 40.711212,37.136845 96.937435,41.986237 133.30829,55.848232 155.421,72.811091" + id="path11351" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 40.946252,55.058624 51.933742,4.055679 32.351586,9.893184 18.23736,12.668904" + id="path11353" /><path + style="display:none;fill:none;stroke:#ffaf80;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.06, 0.265;stroke-dashoffset:0;stroke-opacity:1" + d="M 133.28272,55.889892 155.421,72.811089 143.46894,81.676391 125.23158,69.007489 Z" + id="path12310" + sodipodi:nodetypes="ccccc" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 92.879999,59.114306 27.330281,18.074311 11.71158,13.052691" + id="path11355" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 41.189666,73.618994 46.637217,6.826469 21.721487,14.114442 6.56032,7.410645" + id="path11417" /></g><g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Touched Areas" + style="display:inline"><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 23.602453,30.061089 c 0.06425,8.839436 0.161707,17.679044 0.306917,26.517468 22.543392,3.311975 45.083496,6.681001 67.640486,9.879014 0.707805,-1.584808 0.927844,-3.38045 1.409296,-5.054527 2.016873,-8.485505 4.096791,-17.013236 5.983816,-25.494426 C 73.834384,33.893685 48.719639,31.929235 23.603792,30.021951 Z" + id="path15302" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 105.70964,10.9949 c -2.04723,7.988726 -3.95537,16.018757 -5.760411,24.0651 -0.09181,0.399129 0.668121,0.305275 0.895981,0.503177 14.76867,4.724151 29.6277,9.159921 44.45413,13.697574 0.56266,0.0132 1.43127,0.822603 1.69088,0.02356 3.76738,-6.101923 7.50908,-12.219653 11.26222,-18.330345 C 140.73118,24.319841 123.2414,17.598552 105.7201,10.965954 Z" + id="path15304" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 99.538574,36.605015 c -2.404498,10.038575 -4.773209,20.08571 -7.157223,30.12918 10.469959,6.751144 20.856609,13.63389 31.372939,20.310217 5.09774,-8.059891 10.03938,-16.22106 14.93,-24.407994 0.68337,-0.665596 -0.55019,-0.877565 -0.92829,-1.284439 -12.52259,-8.268237 -24.97639,-16.645421 -37.61205,-24.738898 -0.254222,-0.05276 -0.6197,-0.629312 -0.605376,-0.0081 z" + id="path15306" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 102.125,36.891025 c 12.36769,8.299778 24.80002,16.506962 37.26148,24.666305 2.38774,-3.696043 4.70184,-7.455837 6.91276,-11.255455 -14.77094,-4.581048 -29.56403,-9.089092 -44.37206,-13.548898 l 0.11254,0.07854 z" + id="path15308" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 23.242995,3.7918378 c 0.05421,8.4942852 0.175988,16.9953832 0.382775,25.4835952 24.367795,2.026047 48.747686,3.911498 73.129097,5.767918 0.8139,0.03904 1.625054,0.167764 2.440603,0.105076 1.90249,-8.12831 3.90604,-16.236164 5.70064,-24.3878 C 77.684298,8.3721335 50.461701,6.0351672 23.244603,3.7510941 Z" + id="path15310" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 131.94592,75.08961 c -2.54719,4.151215 -5.09439,8.302428 -7.64159,12.453643 3.01648,3.379635 5.91493,6.871678 9.05797,10.13286 0.43532,0.577992 0.88677,-0.362441 1.30514,-0.495892 7.10325,-5.296198 14.28111,-10.510867 21.33416,-15.862984 -0.67834,-1.295656 -1.87313,-2.291297 -2.78184,-3.437096 -4.53251,-5.088551 -9.10726,-10.139868 -13.64431,-15.224338 -2.54317,4.144604 -5.08635,8.289203 -7.62953,12.433807 z" + id="path15312" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 143.48498,56.290667 c -1.10322,1.933757 -2.46642,3.74506 -3.36485,5.783466 0.26368,0.740882 1.08942,1.240157 1.54002,1.896739 5.03551,5.603319 10.01124,11.263707 15.15097,16.770055 5.43907,-3.982364 10.84761,-8.009552 16.23129,-12.067649 -8.67801,-6.041941 -17.38215,-12.046548 -26.04544,-18.109517 -1.17066,1.908971 -2.34133,3.817939 -3.51199,5.726906 z" + id="path15314" /><path + style="font-variation-settings:normal;display:inline;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 158.81802,31.427882 c -1.23857,1.666287 -2.24692,3.577211 -3.38122,5.344477 -2.67363,4.42141 -5.39572,8.816417 -7.96216,13.300068 8.71241,6.060837 17.37013,12.209653 26.21457,18.077077 1.12709,-0.621895 2.209,-1.60197 3.31446,-2.357746 4.50509,-3.350754 9.02276,-6.685402 13.48831,-10.088657 -3.3546,-2.857542 -6.9753,-5.403932 -10.43982,-8.132147 -7.01966,-5.369686 -14.03279,-10.755728 -21.06902,-16.099114 -0.0508,-0.02434 -0.10695,-0.05081 -0.16512,-0.04396 z" + id="path15316" /></g><g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="R-Tree Objects 1" + style="display:none"><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ff0000;fill-opacity:0.25;stroke:#ff0000;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect14336" + width="107.99667" + height="54.904438" + x="46.881836" + y="26.405735" + rx="0.027438877" + ry="1.8746314" /></g></svg> diff --git a/content/html/_images/localization_with_bus_step5.svg b/content/html/_images/localization_with_bus_step5.svg index e9a1469f7cbeb03ea641d12a2940458544cff07a..df662483c8377c82f94e4e19e6a6fcaa093ee072 100644 --- a/content/html/_images/localization_with_bus_step5.svg +++ b/content/html/_images/localization_with_bus_step5.svg @@ -1,769 +1,769 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="99.376884mm" - viewBox="1 0.5 208 98.430438" - version="1.1" - id="svg297" - xml:space="preserve" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - sodipodi:docname="localization_with_bus_step5.svg" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"><title - id="title795">Localization</title><sodipodi:namedview - id="namedview299" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="2.0000001" - inkscape:cx="425.74999" - inkscape:cy="272.49999" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="svg297" /><defs - id="defs294"><marker - style="overflow:visible" - id="marker1422" - refX="3" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="TriangleStart" - markerWidth="5.3244081" - markerHeight="6.155385" - viewBox="0 0 5.3244081 6.1553851" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"><path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path1420" /></marker><marker - style="overflow:visible" - id="TriangleStart" - refX="2" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="TriangleStart" - markerWidth="5.3244081" - markerHeight="6.155385" - viewBox="0 0 5.3244081 6.1553851" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"><path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path135" /></marker><inkscape:perspective - sodipodi:type="inkscape:persp3d" - inkscape:vp_x="0 : 49.215219 : 1" - inkscape:vp_y="0 : 1000 : 0" - inkscape:vp_z="208 : 49.215219 : 1" - inkscape:persp3d-origin="104 : 32.810146 : 1" - id="perspective378" /><linearGradient - inkscape:collect="always" - id="linearGradient4195"><stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop4191" /><stop - style="stop-color:#404040;stop-opacity:1;" - offset="1" - id="stop4193" /></linearGradient><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3774" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3770" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3766" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3762" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3758" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3735" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3729" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3723" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3717" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><inkscape:path-effect - effect="fillet_chamfer" - id="path-effect3711" - is_visible="true" - lpeversion="1" - nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" - unit="px" - method="auto" - mode="F" - radius="2" - chamfer_steps="1" - flexible="false" - use_knot_distance="true" - apply_no_radius="true" - apply_with_radius="true" - only_selected="true" - hide_knots="false" /><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter4160" - x="-0.007103069" - y="-0.2978693" - width="1.0142061" - height="1.5957386"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.097700015" - id="feGaussianBlur4162" /></filter><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter4164" - x="-0.007103069" - y="-0.2978693" - width="1.0142061" - height="1.5957386"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.097700015" - id="feGaussianBlur4166" /></filter><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient4195" - id="linearGradient4197" - x1="87.013039" - y1="40.983868" - x2="88.879921" - y2="40.983868" - gradientUnits="userSpaceOnUse" /><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter8239" - x="-0.21967968" - y="-0.47290614" - width="1.4393594" - height="1.9458123"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.6553888" - id="feGaussianBlur8241" /></filter><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter8273" - x="-0.21212014" - y="-0.51220139" - width="1.4242403" - height="2.0244028"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.71905369" - id="feGaussianBlur8275" /></filter><filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter1150" - x="-0.20776648" - y="-0.5027827" - width="1.415533" - height="2.0055654"><feGaussianBlur - inkscape:collect="always" - stdDeviation="0.95196942" - id="feGaussianBlur1152" /></filter></defs><rect - style="font-variation-settings:normal;display:inline;vector-effect:none;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.693291;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;opacity:0.2" - id="rect51006" - width="209.41541" - height="98.979736" - x="0.11753607" - y="0" - inkscape:label="Background" /><g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Road" - style="display:inline;opacity:0.2"><path - id="path9093" - style="fill:#808080;stroke:none;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="M 209.53295,98.979749 H 133.89762 C 125.55121,87.990292 115.01163,78.071967 97.53503,69.160579 72.081706,56.181838 36.586237,56.576481 0.01866037,57.458419 L 0.12215197,3.7037819 C 40.831749,3.401259 76.804855,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658 z" - sodipodi:nodetypes="ccsccscc" - inkscape:label="Road" /><path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 0.01866037,57.458419 C 36.586237,56.576481 72.081706,56.181838 97.53503,69.160579 c 17.4766,8.911388 28.01618,18.829713 36.36259,29.81917" - id="path7339" - sodipodi:nodetypes="csc" - inkscape:label="Right Lane Marking" /><path - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 102.13944,37.994908 c 11.37856,4.457223 34.80599,20.480688 44.06322,30.300555 9.25723,9.819867 22.58881,30.393118 22.58881,30.393118" - id="path7525" - sodipodi:nodetypes="czc" - inkscape:label="Right Lane Left Boudnary Marking" /><path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1" - d="M 0.01857674,30.122358 C 58.039953,28.420795 72.35031,30.880502 110.66003,37.524041 c 37.2424,6.458448 65.44977,30.530429 78.8974,47.997656 0.26118,0.339256 6.61369,8.244939 10.79382,13.458052" - id="path6399" - sodipodi:nodetypes="cssc" - inkscape:label="Left Lane Right Boundary Marking" /><path - style="fill:none;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 0.1221461,3.7037819 C 40.83174,3.401259 76.804846,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658" - id="path6401" - sodipodi:nodetypes="czc" - inkscape:label="Left Lane Marking" /></g><metadata - id="metadata972"><rdf:RDF><cc:Work - rdf:about=""><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:title>Localization</dc:title><dc:rights><cc:Agent><dc:title>2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights></cc:Work></rdf:RDF></metadata><g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="R-Tree Objects" - style="display:none"><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect11550" - width="82.437019" - height="32.24387" - x="22.910805" - y="3.3456895" - rx="0.036079962" - ry="2.0597696" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12281" - width="76.165298" - height="31.102114" - x="23.298027" - y="35.589558" - rx="0.033335041" - ry="1.9868332" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12283" - width="59.138081" - height="39.661373" - x="99.548042" - y="10.442811" - rx="0.03371926" - ry="1.9158162" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12285" - width="59.138081" - height="39.661373" - x="99.548042" - y="10.442811" - rx="0.03371926" - ry="1.9158162" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12300" - width="47.335266" - height="51.565762" - x="91.999733" - y="35.593773" - rx="0.026989549" - ry="2.4908497" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12302" - width="47.141182" - height="26.431166" - x="99.569237" - y="35.593773" - rx="0.026878884" - ry="1.2767398" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;vector-effect:none;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12304" - width="44.326191" - height="37.685013" - x="-191.07913" - y="30.858921" - rx="0.025273839" - ry="1.8203492" - transform="scale(-1,1)" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12306" - width="34.101662" - height="30.822912" - x="-173.51215" - y="50.141434" - rx="0.019444034" - ry="1.4888799" - transform="scale(-1,1)" /><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect12308" - width="32.866482" - height="36.518456" - x="-156.63138" - y="62.012878" - rx="0.01873976" - ry="1.7639993" - transform="scale(-1,1)" /></g><g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Bus" - inkscape:highlight-color="#21f335" - transform="matrix(1.2595586,0.43358335,-0.43358335,1.2595586,-7.4772654,17.310292)" - style="display:inline;opacity:1"><g - id="g4813" - inkscape:label="Bus" - style="display:none;opacity:1" - transform="matrix(1.4671336,0,0,1.4671336,-6.1097123,-60.685604)"><g - id="g4678" - style="fill:#ff6600" - inkscape:label="Chassis"><path - id="rect3089" - style="font-variation-settings:normal;display:inline;opacity:1;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 36.060331,36.193656 c -0.368588,0 -0.665075,0.296488 -0.665075,0.665076 v 8.250143 c 0,0.368588 0.296487,0.665075 0.665075,0.665075 h 50.963815 c 0.02233,0 0.04439,-9.72e-4 0.06614,-0.0031 0.0011,-0.94223 0.480591,-0.49939 0.480591,-4.786788 0,-4.287417 -0.47945,-3.845061 -0.480591,-4.787305 -0.02175,-0.0021 -0.04381,-0.0031 -0.06614,-0.0031 z" - inkscape:label="Main Chassis" /><rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect3653" - width="0.80169088" - height="0.31897762" - x="-58.444439" - y="77.124367" - ry="0.1337648" - rx="0.01318328" - transform="rotate(-105,0.02296293,0.02992587)" - inkscape:label="Left Mirror" /><rect - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect3776" - width="0.80169088" - height="0.31897762" - x="-21.595352" - y="-98.675133" - ry="0.1337648" - rx="0.01318328" - transform="matrix(0.25881905,-0.96592583,-0.96592583,-0.25881905,-3.0000001e-6,-0.12556493)" - inkscape:label="Right Mirror" /><path - style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 87.09004,36.193544 c 0.603254,-0.249097 1.899251,0.05157 2.429165,-0.08899" - id="path3706" - sodipodi:nodetypes="cc" - transform="translate(0,0.05985174)" /><path - style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - d="m 87.105303,45.794684 c 0.536962,0.221724 1.852198,-0.0084 2.413906,0.134084" - id="path3778" - sodipodi:nodetypes="cc" - transform="translate(-3.0000001e-6,-0.12556493)" /></g><path - id="path3393" - style="font-variation-settings:normal;display:inline;opacity:1;fill:url(#linearGradient4197);fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 87.090041,36.193546 c 0,0.946678 0.480709,0.497797 0.480709,4.790323 0,4.292524 -0.480709,3.843646 -0.480709,4.790323 0.682089,0 1.158355,-0.307687 1.442478,-0.927801 0.284126,-0.620114 0.270291,-3.862522 0.270291,-3.862522 0,0 0.01384,-3.24241 -0.270291,-3.862524 -0.284123,-0.620113 -0.760389,-0.927799 -1.442478,-0.927799 z" - sodipodi:nodetypes="czcscsc" - inkscape:label="Windshield" /><g - id="g3819" - inkscape:label="Brake Lights" - style="stroke:#000000;stroke-width:0.228785;stroke-dasharray:none" - transform="matrix(0.79824418,0,0,0.95734129,7.1565329,1.7370124)"><path - style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 35.397831,37.661018 c 0.0043,-1.02308 8e-5,-0.96507 0.08178,-1.127752 0.04974,-0.09905 0.168103,-0.219649 0.266912,-0.271952 0.06189,-0.03276 0.233875,-0.08629 0.244173,-0.07599 0.009,0.009 -0.01934,0.676484 -0.03558,0.838613 -0.04692,0.468847 -0.135385,0.821036 -0.284104,1.131046 -0.06598,0.137533 -0.206875,0.362643 -0.253005,0.404222 l -0.02403,0.02167 z" - id="path3597" /><path - style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 35.397831,44.330203 c 0.0043,1.02308 8e-5,0.96507 0.08178,1.127752 0.04974,0.09905 0.168103,0.219649 0.266912,0.271952 0.06189,0.03276 0.233875,0.08629 0.244173,0.07599 0.009,-0.009 -0.01934,-0.676484 -0.03558,-0.838613 -0.04692,-0.468847 -0.135385,-0.821037 -0.284104,-1.131046 -0.06598,-0.137533 -0.206875,-0.362643 -0.253005,-0.404223 l -0.02403,-0.02167 z" - id="path3599" /></g><g - id="g3742" - transform="matrix(1.3533759,0,0,1,-13.287574,0)" - style="fill:#000000;stroke-width:0.859589;filter:url(#filter4160)" - inkscape:label="Side Windows Left"><path - id="rect3708" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3711" - inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3713" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3717" - inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3719" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3723" - inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3725" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3729" - inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3731" - style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3735" - inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g - id="g3754" - transform="matrix(1.3533759,0,0,-1,-13.287574,81.967607)" - style="stroke-width:0.859589;filter:url(#filter4164)" - inkscape:label="Side Windows Right"><path - id="path3744" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3758" - inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3746" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3762" - inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3748" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3766" - inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3750" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3770" - inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path - id="path3752" - style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" - inkscape:path-effect="#path-effect3774" - inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g - id="g4671" - inkscape:label="Outlets" - style="display:inline"><rect - style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="rect3145" - width="4.2580633" - height="2.5725811" - x="45.330647" - y="39.697514" - ry="0.17865145" - inkscape:label="Outlet Rear" /><rect - style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="rect3147" - width="4.2580633" - height="2.5725811" - x="70.036293" - y="39.697514" - ry="0.17865145" - inkscape:label="Outlet Front" /></g></g><rect - style="font-variation-settings:normal;display:inline;opacity:0.25;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.366757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect4734" - width="80.083046" - height="15.679524" - x="45.780243" - y="-8.3966522" - rx="0.027102947" - ry="0.34118721" - inkscape:label="Bounding Box" /><path - style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.393965;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.1819, 0.393965, 0.787931;stroke-dashoffset:0;stroke-opacity:1" - d="m 122.43702,0.94798317 c 0.43071,0.0498385 0.61005,0.27360863 1.69829,0.42116713" - id="path17623" - sodipodi:nodetypes="cc" /><path - style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.347686;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.04306, 0.347686, 0.695373;stroke-dashoffset:0;stroke-opacity:1" - d="m 124.04233,-3.2580159 c -0.38106,-0.1080544 -1.17763,-0.2514946 -1.56381,-0.2408608" - id="path17625" - sodipodi:nodetypes="cc" /></g><path - id="path7999" - style="fill:#00ff00;stroke:none;stroke-width:0.262063px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.4265928" - d="M 133.50475,98.465401 156.74816,81.315805 139.52234,62.107 l -15.64246,25.485995 9.62487,10.872408" - sodipodi:nodetypes="ccccc" /><g - id="g11364" - inkscape:label="Localization Grid" - style="display:inline;opacity:0.75;stroke:#ff0000;stroke-width:0.3;stroke-dasharray:none" - transform="matrix(1.4671336,0,0,1.4671336,-36.842209,-51.139017)"><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 40.711213,37.136846 0.478454,36.48215" - id="path10617" - sodipodi:nodetypes="cc" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 87.826885,80.445464 96.937437,41.986238" - id="path10619" - sodipodi:nodetypes="cc" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 109.54837,94.559905 133.311,55.843819" - id="path11347" - sodipodi:nodetypes="cc" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 116.10869,101.97055 155.421,72.811089" - id="path11349" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="M 40.711212,37.136845 96.937435,41.986237 133.30829,55.848232 155.421,72.811091" - id="path11351" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 40.946252,55.058624 51.933742,4.055679 32.351586,9.893184 18.23736,12.668904" - id="path11353" /><path - style="display:none;fill:none;stroke:#ffaf80;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.06, 0.265;stroke-dashoffset:0;stroke-opacity:1" - d="M 133.28272,55.889892 155.421,72.811089 143.46894,81.676391 125.23158,69.007489 Z" - id="path12310" - sodipodi:nodetypes="ccccc" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 92.879999,59.114306 27.330281,18.074311 11.71158,13.052691" - id="path11355" /><path - style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" - d="m 41.189666,73.618994 46.637217,6.826469 21.721487,14.114442 6.56032,7.410645" - id="path11417" /></g><g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Touched Areas" - style="display:none"><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 23.602453,30.061089 c 0.06425,8.839436 0.161707,17.679044 0.306917,26.517468 22.543392,3.311975 45.083496,6.681001 67.640486,9.879014 0.707805,-1.584808 0.927844,-3.38045 1.409296,-5.054527 2.016873,-8.485505 4.096791,-17.013236 5.983816,-25.494426 C 73.834384,33.893685 48.719639,31.929235 23.603792,30.021951 Z" - id="path15302" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 105.70964,10.9949 c -2.04723,7.988726 -3.95537,16.018757 -5.760411,24.0651 -0.09181,0.399129 0.668121,0.305275 0.895981,0.503177 14.76867,4.724151 29.6277,9.159921 44.45413,13.697574 0.56266,0.0132 1.43127,0.822603 1.69088,0.02356 3.76738,-6.101923 7.50908,-12.219653 11.26222,-18.330345 C 140.73118,24.319841 123.2414,17.598552 105.7201,10.965954 Z" - id="path15304" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 99.538574,36.605015 c -2.404498,10.038575 -4.773209,20.08571 -7.157223,30.12918 10.469959,6.751144 20.856609,13.63389 31.372939,20.310217 5.09774,-8.059891 10.03938,-16.22106 14.93,-24.407994 0.68337,-0.665596 -0.55019,-0.877565 -0.92829,-1.284439 -12.52259,-8.268237 -24.97639,-16.645421 -37.61205,-24.738898 -0.254222,-0.05276 -0.6197,-0.629312 -0.605376,-0.0081 z" - id="path15306" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 102.125,36.891025 c 12.36769,8.299778 24.80002,16.506962 37.26148,24.666305 2.38774,-3.696043 4.70184,-7.455837 6.91276,-11.255455 -14.77094,-4.581048 -29.56403,-9.089092 -44.37206,-13.548898 l 0.11254,0.07854 z" - id="path15308" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 23.242995,3.7918378 c 0.05421,8.4942852 0.175988,16.9953832 0.382775,25.4835952 24.367795,2.026047 48.747686,3.911498 73.129097,5.767918 0.8139,0.03904 1.625054,0.167764 2.440603,0.105076 1.90249,-8.12831 3.90604,-16.236164 5.70064,-24.3878 C 77.684298,8.3721335 50.461701,6.0351672 23.244603,3.7510941 Z" - id="path15310" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 131.94592,75.08961 c -2.54719,4.151215 -5.09439,8.302428 -7.64159,12.453643 3.01648,3.379635 5.91493,6.871678 9.05797,10.13286 0.43532,0.577992 0.88677,-0.362441 1.30514,-0.495892 7.10325,-5.296198 14.28111,-10.510867 21.33416,-15.862984 -0.67834,-1.295656 -1.87313,-2.291297 -2.78184,-3.437096 -4.53251,-5.088551 -9.10726,-10.139868 -13.64431,-15.224338 -2.54317,4.144604 -5.08635,8.289203 -7.62953,12.433807 z" - id="path15312" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 143.48498,56.290667 c -1.10322,1.933757 -2.46642,3.74506 -3.36485,5.783466 0.26368,0.740882 1.08942,1.240157 1.54002,1.896739 5.03551,5.603319 10.01124,11.263707 15.15097,16.770055 5.43907,-3.982364 10.84761,-8.009552 16.23129,-12.067649 -8.67801,-6.041941 -17.38215,-12.046548 -26.04544,-18.109517 -1.17066,1.908971 -2.34133,3.817939 -3.51199,5.726906 z" - id="path15314" /><path - style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - d="m 158.81802,31.427882 c -1.23857,1.666287 -2.24692,3.577211 -3.38122,5.344477 -2.67363,4.42141 -5.39572,8.816417 -7.96216,13.300068 8.71241,6.060837 17.37013,12.209653 26.21457,18.077077 1.12709,-0.621895 2.209,-1.60197 3.31446,-2.357746 4.50509,-3.350754 9.02276,-6.685402 13.48831,-10.088657 -3.3546,-2.857542 -6.9753,-5.403932 -10.43982,-8.132147 -7.01966,-5.369686 -14.03279,-10.755728 -21.06902,-16.099114 -0.0508,-0.02434 -0.10695,-0.05081 -0.16512,-0.04396 z" - id="path15316" /></g><g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="R-Tree Objects 1" - style="display:none"><rect - style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ff0000;fill-opacity:0.25;stroke:#ff0000;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="rect14336" - width="107.99667" - height="54.904438" - x="46.881836" - y="26.405735" - rx="0.027438877" - ry="1.8746314" /></g><g - inkscape:groupmode="layer" - id="layer1" - inkscape:label="Points" - style="stroke-width:1.00038092;stroke-dasharray:none"><path - style="fill:#0000ff;stroke:none;stroke-width:0.262063px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.50138503" - d="m 150.28761,74.11154 -2.39042,6.944182 -16.51555,-5.685219 8.15375,-13.248953" - id="path8167" /><path - style="display:inline;opacity:1;fill:#010101;stroke:#000000;stroke-width:0.49523808;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;stroke-dasharray:0.49523808,0.49523808;stroke-dashoffset:0" - d="M 130.02785,95.023973 152.96532,77.115901" - id="path6415" - sodipodi:nodetypes="cc" /><circle - style="opacity:1;fill:#0000ff;fill-opacity:1;stroke:#000080;stroke-width:1.00038;stroke-dasharray:none;paint-order:stroke fill markers;stop-color:#000000" - id="path5101" - cx="139.41573" - cy="62.353184" - r="0.49028572" /><circle - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;stroke:#000080;stroke-width:1.00038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="circle5571" - cx="150.12383" - cy="74.047104" - r="0.49028572" /><circle - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;stroke:#000080;stroke-width:1.00038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="circle5573" - cx="147.71544" - cy="81.048965" - r="0.49028572" /><circle - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;stroke:#000080;stroke-width:1.00038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" - id="circle5575" - cx="131.3083" - cy="75.185196" - r="0.49028614" /></g><text - xml:space="preserve" - style="font-size:4.38456px;line-height:1.25;font-family:sans-serif;stroke-width:0.262063;fill:#ffffff;filter:url(#filter8239)" - x="140.76222" - y="61.158321" - id="text8237"><tspan - sodipodi:role="line" - id="tspan8235" - style="stroke-width:0.262063;fill:#ffffff" - x="140.76222" - y="61.158321">s<tspan - style="font-size:2.84996px;baseline-shift:sub;stroke-width:0.262063;fill:#ffffff" - id="tspan8233">min</tspan></tspan></text><text - xml:space="preserve" - style="font-size:4.38456px;line-height:1.25;font-family:sans-serif;stroke-width:0.262063" - x="140.76222" - y="61.158321" - id="text8056"><tspan - sodipodi:role="line" - id="tspan8054" - style="stroke-width:0.262063" - x="140.76222" - y="61.158321">s<tspan - style="font-size:2.84996px;baseline-shift:sub;stroke-width:0.262063" - id="tspan8058">min</tspan></tspan></text><text - xml:space="preserve" - style="font-size:4.38456px;line-height:1.25;font-family:sans-serif;stroke-width:0.262063;fill:#ffffff;filter:url(#filter8273)" - x="153.58638" - y="76.279175" - id="text8247"><tspan - sodipodi:role="line" - id="tspan8245" - style="stroke-width:0.262063;fill:#ffffff" - x="153.58638" - y="76.279175">s<tspan - style="font-size:2.84996px;baseline-shift:sub;stroke-width:0.262063;fill:#ffffff" - id="tspan8243">max</tspan></tspan></text><text - xml:space="preserve" - style="font-size:4.38456px;line-height:1.25;font-family:sans-serif;stroke-width:0.262063" - x="153.58638" - y="76.279175" - id="text8112"><tspan - sodipodi:role="line" - id="tspan8110" - style="stroke-width:0.262063" - x="153.58638" - y="76.279175">s<tspan - style="font-size:2.84996px;baseline-shift:sub;stroke-width:0.262063" - id="tspan8114">max</tspan></tspan></text><text - xml:space="preserve" - style="font-size:4.38456px;line-height:1.25;font-family:sans-serif;mix-blend-mode:normal;fill:#ffffff;stroke-width:0.262063;filter:url(#filter1150)" - x="116.08276" - y="79.552177" - id="text592"><tspan - sodipodi:role="line" - id="tspan590" - style="fill:#ffffff;stroke-width:0.262063" - x="116.08276" - y="79.552177"><tspan - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Symbol;-inkscape-font-specification:Symbol;fill:#ffffff" - id="tspan586">D</tspan>t<tspan - style="font-size:2.84996px;baseline-shift:sub;fill:#ffffff;stroke-width:0.262063" - id="tspan588">right</tspan></tspan></text><text - xml:space="preserve" - style="font-size:4.38456px;line-height:1.25;font-family:sans-serif;stroke-width:0.262063" - x="116.08276" - y="79.552177" - id="text8231"><tspan - sodipodi:role="line" - id="tspan8229" - style="stroke-width:0.262063" - x="116.08276" - y="79.552177"><tspan - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Symbol;-inkscape-font-specification:Symbol" - id="tspan519">D</tspan>t<tspan - style="font-size:2.84996px;baseline-shift:sub;stroke-width:0.262063" - id="tspan8227">right</tspan></tspan></text><path - style="fill:none;stroke:#000000;stroke-width:0.361524;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleStart);marker-end:url(#marker1422)" - d="M 123.87989,87.592997 131.22994,75.85221" - id="path1154" - sodipodi:nodetypes="cc" /></svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="99.376884mm" + viewBox="1 0.5 208 98.430438" + version="1.1" + id="svg297" + xml:space="preserve" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + sodipodi:docname="localization_with_bus_step5.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"><title + id="title795">Localization</title><sodipodi:namedview + id="namedview299" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="2.0000001" + inkscape:cx="425.74999" + inkscape:cy="272.49999" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="svg297" /><defs + id="defs294"><marker + style="overflow:visible" + id="marker1422" + refX="3" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="5.3244081" + markerHeight="6.155385" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"><path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path1420" /></marker><marker + style="overflow:visible" + id="TriangleStart" + refX="2" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="5.3244081" + markerHeight="6.155385" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"><path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135" /></marker><inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 49.215219 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="208 : 49.215219 : 1" + inkscape:persp3d-origin="104 : 32.810146 : 1" + id="perspective378" /><linearGradient + inkscape:collect="always" + id="linearGradient4195"><stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop4191" /><stop + style="stop-color:#404040;stop-opacity:1;" + offset="1" + id="stop4193" /></linearGradient><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3774" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3770" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3766" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3762" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3758" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3735" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3729" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3723" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3717" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><inkscape:path-effect + effect="fillet_chamfer" + id="path-effect3711" + is_visible="true" + lpeversion="1" + nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,0.52916667,0,1 @ F,0,1,1,0,0.52916667,0,1" + unit="px" + method="auto" + mode="F" + radius="2" + chamfer_steps="1" + flexible="false" + use_knot_distance="true" + apply_no_radius="true" + apply_with_radius="true" + only_selected="true" + hide_knots="false" /><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter4160" + x="-0.007103069" + y="-0.2978693" + width="1.0142061" + height="1.5957386"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.097700015" + id="feGaussianBlur4162" /></filter><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter4164" + x="-0.007103069" + y="-0.2978693" + width="1.0142061" + height="1.5957386"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.097700015" + id="feGaussianBlur4166" /></filter><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4195" + id="linearGradient4197" + x1="87.013039" + y1="40.983868" + x2="88.879921" + y2="40.983868" + gradientUnits="userSpaceOnUse" /><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter8239" + x="-0.21967968" + y="-0.47290614" + width="1.4393594" + height="1.9458123"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.6553888" + id="feGaussianBlur8241" /></filter><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter8273" + x="-0.21212014" + y="-0.51220139" + width="1.4242403" + height="2.0244028"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.71905369" + id="feGaussianBlur8275" /></filter><filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter1150" + x="-0.20776648" + y="-0.5027827" + width="1.415533" + height="2.0055654"><feGaussianBlur + inkscape:collect="always" + stdDeviation="0.95196942" + id="feGaussianBlur1152" /></filter></defs><rect + style="font-variation-settings:normal;display:inline;vector-effect:none;fill:#008000;fill-opacity:1;stroke:none;stroke-width:0.693291;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;opacity:0.2" + id="rect51006" + width="209.41541" + height="98.979736" + x="0.11753607" + y="0" + inkscape:label="Background" /><g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Road" + style="display:inline;opacity:0.2"><path + id="path9093" + style="fill:#808080;stroke:none;stroke-width:0.388179px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 209.53295,98.979749 H 133.89762 C 125.55121,87.990292 115.01163,78.071967 97.53503,69.160579 72.081706,56.181838 36.586237,56.576481 0.01866037,57.458419 L 0.12215197,3.7037819 C 40.831749,3.401259 76.804855,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658 z" + sodipodi:nodetypes="ccsccscc" + inkscape:label="Road" /><path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 0.01866037,57.458419 C 36.586237,56.576481 72.081706,56.181838 97.53503,69.160579 c 17.4766,8.911388 28.01618,18.829713 36.36259,29.81917" + id="path7339" + sodipodi:nodetypes="csc" + inkscape:label="Right Lane Marking" /><path + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 102.13944,37.994908 c 11.37856,4.457223 34.80599,20.480688 44.06322,30.300555 9.25723,9.819867 22.58881,30.393118 22.58881,30.393118" + id="path7525" + sodipodi:nodetypes="czc" + inkscape:label="Right Lane Left Boudnary Marking" /><path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.26907;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:10.1526, 1.26907;stroke-dashoffset:0;stroke-opacity:1" + d="M 0.01857674,30.122358 C 58.039953,28.420795 72.35031,30.880502 110.66003,37.524041 c 37.2424,6.458448 65.44977,30.530429 78.8974,47.997656 0.26118,0.339256 6.61369,8.244939 10.79382,13.458052" + id="path6399" + sodipodi:nodetypes="cssc" + inkscape:label="Left Lane Right Boundary Marking" /><path + style="fill:none;stroke:#ffffff;stroke-width:1.12236;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 0.1221461,3.7037819 C 40.83174,3.401259 76.804846,3.8117043 115.67686,12.562308 c 38.87202,8.750596 78.05941,40.664861 93.85609,64.379658" + id="path6401" + sodipodi:nodetypes="czc" + inkscape:label="Left Lane Marking" /></g><metadata + id="metadata972"><rdf:RDF><cc:Work + rdf:about=""><dc:creator><cc:Agent><dc:title>René Paris</dc:title></cc:Agent></dc:creator><cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /><dc:title>Localization</dc:title><dc:rights><cc:Agent><dc:title>2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title></cc:Agent></dc:rights></cc:Work></rdf:RDF></metadata><g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="R-Tree Objects" + style="display:none"><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect11550" + width="82.437019" + height="32.24387" + x="22.910805" + y="3.3456895" + rx="0.036079962" + ry="2.0597696" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12281" + width="76.165298" + height="31.102114" + x="23.298027" + y="35.589558" + rx="0.033335041" + ry="1.9868332" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12283" + width="59.138081" + height="39.661373" + x="99.548042" + y="10.442811" + rx="0.03371926" + ry="1.9158162" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12285" + width="59.138081" + height="39.661373" + x="99.548042" + y="10.442811" + rx="0.03371926" + ry="1.9158162" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12300" + width="47.335266" + height="51.565762" + x="91.999733" + y="35.593773" + rx="0.026989549" + ry="2.4908497" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12302" + width="47.141182" + height="26.431166" + x="99.569237" + y="35.593773" + rx="0.026878884" + ry="1.2767398" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;vector-effect:none;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12304" + width="44.326191" + height="37.685013" + x="-191.07913" + y="30.858921" + rx="0.025273839" + ry="1.8203492" + transform="scale(-1,1)" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12306" + width="34.101662" + height="30.822912" + x="-173.51215" + y="50.141434" + rx="0.019444034" + ry="1.4888799" + transform="scale(-1,1)" /><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ffffff;fill-opacity:0.25;stroke:#ffffff;stroke-width:0.488554;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect12308" + width="32.866482" + height="36.518456" + x="-156.63138" + y="62.012878" + rx="0.01873976" + ry="1.7639993" + transform="scale(-1,1)" /></g><g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Bus" + inkscape:highlight-color="#21f335" + transform="matrix(1.2595586,0.43358335,-0.43358335,1.2595586,-7.4772654,17.310292)" + style="display:inline;opacity:1"><g + id="g4813" + inkscape:label="Bus" + style="display:none;opacity:1" + transform="matrix(1.4671336,0,0,1.4671336,-6.1097123,-60.685604)"><g + id="g4678" + style="fill:#ff6600" + inkscape:label="Chassis"><path + id="rect3089" + style="font-variation-settings:normal;display:inline;opacity:1;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 36.060331,36.193656 c -0.368588,0 -0.665075,0.296488 -0.665075,0.665076 v 8.250143 c 0,0.368588 0.296487,0.665075 0.665075,0.665075 h 50.963815 c 0.02233,0 0.04439,-9.72e-4 0.06614,-0.0031 0.0011,-0.94223 0.480591,-0.49939 0.480591,-4.786788 0,-4.287417 -0.47945,-3.845061 -0.480591,-4.787305 -0.02175,-0.0021 -0.04381,-0.0031 -0.06614,-0.0031 z" + inkscape:label="Main Chassis" /><rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect3653" + width="0.80169088" + height="0.31897762" + x="-58.444439" + y="77.124367" + ry="0.1337648" + rx="0.01318328" + transform="rotate(-105,0.02296293,0.02992587)" + inkscape:label="Left Mirror" /><rect + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ff6600;fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect3776" + width="0.80169088" + height="0.31897762" + x="-21.595352" + y="-98.675133" + ry="0.1337648" + rx="0.01318328" + transform="matrix(0.25881905,-0.96592583,-0.96592583,-0.25881905,-3.0000001e-6,-0.12556493)" + inkscape:label="Right Mirror" /><path + style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 87.09004,36.193544 c 0.603254,-0.249097 1.899251,0.05157 2.429165,-0.08899" + id="path3706" + sodipodi:nodetypes="cc" + transform="translate(0,0.05985174)" /><path + style="fill:#ff6600;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 87.105303,45.794684 c 0.536962,0.221724 1.852198,-0.0084 2.413906,0.134084" + id="path3778" + sodipodi:nodetypes="cc" + transform="translate(-3.0000001e-6,-0.12556493)" /></g><path + id="path3393" + style="font-variation-settings:normal;display:inline;opacity:1;fill:url(#linearGradient4197);fill-opacity:1;stroke:#000000;stroke-width:0.154;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 87.090041,36.193546 c 0,0.946678 0.480709,0.497797 0.480709,4.790323 0,4.292524 -0.480709,3.843646 -0.480709,4.790323 0.682089,0 1.158355,-0.307687 1.442478,-0.927801 0.284126,-0.620114 0.270291,-3.862522 0.270291,-3.862522 0,0 0.01384,-3.24241 -0.270291,-3.862524 -0.284123,-0.620113 -0.760389,-0.927799 -1.442478,-0.927799 z" + sodipodi:nodetypes="czcscsc" + inkscape:label="Windshield" /><g + id="g3819" + inkscape:label="Brake Lights" + style="stroke:#000000;stroke-width:0.228785;stroke-dasharray:none" + transform="matrix(0.79824418,0,0,0.95734129,7.1565329,1.7370124)"><path + style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 35.397831,37.661018 c 0.0043,-1.02308 8e-5,-0.96507 0.08178,-1.127752 0.04974,-0.09905 0.168103,-0.219649 0.266912,-0.271952 0.06189,-0.03276 0.233875,-0.08629 0.244173,-0.07599 0.009,0.009 -0.01934,0.676484 -0.03558,0.838613 -0.04692,0.468847 -0.135385,0.821036 -0.284104,1.131046 -0.06598,0.137533 -0.206875,0.362643 -0.253005,0.404222 l -0.02403,0.02167 z" + id="path3597" /><path + style="font-variation-settings:normal;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.228785;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 35.397831,44.330203 c 0.0043,1.02308 8e-5,0.96507 0.08178,1.127752 0.04974,0.09905 0.168103,0.219649 0.266912,0.271952 0.06189,0.03276 0.233875,0.08629 0.244173,0.07599 0.009,-0.009 -0.01934,-0.676484 -0.03558,-0.838613 -0.04692,-0.468847 -0.135385,-0.821037 -0.284104,-1.131046 -0.06598,-0.137533 -0.206875,-0.362643 -0.253005,-0.404223 l -0.02403,-0.02167 z" + id="path3599" /></g><g + id="g3742" + transform="matrix(1.3533759,0,0,1,-13.287574,0)" + style="fill:#000000;stroke-width:0.859589;filter:url(#filter4160)" + inkscape:label="Side Windows Left"><path + id="rect3708" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3711" + inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3713" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3717" + inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3719" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3723" + inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3725" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3729" + inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3731" + style="opacity:1;vector-effect:none;fill:#000000;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3735" + inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g + id="g3754" + transform="matrix(1.3533759,0,0,-1,-13.287574,81.967607)" + style="stroke-width:0.859589;filter:url(#filter4164)" + inkscape:label="Side Windows Right"><path + id="path3744" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 37.601814,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3758" + inkscape:original-d="m 37.601814,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3746" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 44.388104,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3762" + inkscape:original-d="m 44.388104,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3748" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 51.174394,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3766" + inkscape:original-d="m 51.174394,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3750" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 57.960684,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3770" + inkscape:original-d="m 57.960684,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /><path + id="path3752" + style="opacity:1;vector-effect:none;stroke:none;stroke-width:0.257877;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 64.746974,36.193657 h 5.865928 v 0.258024 a 0.52916667,0.52916667 135 0 1 -0.529167,0.529167 h -4.807594 a 0.52916667,0.52916667 45 0 1 -0.529167,-0.529167 z" + inkscape:path-effect="#path-effect3774" + inkscape:original-d="m 64.746974,36.193657 h 5.865928 v 0.787191 h -5.865928 z" /></g><g + id="g4671" + inkscape:label="Outlets" + style="display:inline"><rect + style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="rect3145" + width="4.2580633" + height="2.5725811" + x="45.330647" + y="39.697514" + ry="0.17865145" + inkscape:label="Outlet Rear" /><rect + style="opacity:0.25;fill:#000000;fill-opacity:1;stroke:#656565;stroke-width:0.3;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="rect3147" + width="4.2580633" + height="2.5725811" + x="70.036293" + y="39.697514" + ry="0.17865145" + inkscape:label="Outlet Front" /></g></g><rect + style="font-variation-settings:normal;display:inline;opacity:0.25;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.366757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect4734" + width="80.083046" + height="15.679524" + x="45.780243" + y="-8.3966522" + rx="0.027102947" + ry="0.34118721" + inkscape:label="Bounding Box" /><path + style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.393965;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.1819, 0.393965, 0.787931;stroke-dashoffset:0;stroke-opacity:1" + d="m 122.43702,0.94798317 c 0.43071,0.0498385 0.61005,0.27360863 1.69829,0.42116713" + id="path17623" + sodipodi:nodetypes="cc" /><path + style="display:none;opacity:0.456853;fill:none;stroke:#ffffff;stroke-width:0.347686;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.04306, 0.347686, 0.695373;stroke-dashoffset:0;stroke-opacity:1" + d="m 124.04233,-3.2580159 c -0.38106,-0.1080544 -1.17763,-0.2514946 -1.56381,-0.2408608" + id="path17625" + sodipodi:nodetypes="cc" /></g><path + id="path7999" + style="fill:#00ff00;stroke:none;stroke-width:0.262063px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.4265928" + d="M 133.50475,98.465401 156.74816,81.315805 139.52234,62.107 l -15.64246,25.485995 9.62487,10.872408" + sodipodi:nodetypes="ccccc" /><g + id="g11364" + inkscape:label="Localization Grid" + style="display:inline;opacity:0.75;stroke:#ff0000;stroke-width:0.3;stroke-dasharray:none" + transform="matrix(1.4671336,0,0,1.4671336,-36.842209,-51.139017)"><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 40.711213,37.136846 0.478454,36.48215" + id="path10617" + sodipodi:nodetypes="cc" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 87.826885,80.445464 96.937437,41.986238" + id="path10619" + sodipodi:nodetypes="cc" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 109.54837,94.559905 133.311,55.843819" + id="path11347" + sodipodi:nodetypes="cc" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 116.10869,101.97055 155.421,72.811089" + id="path11349" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="M 40.711212,37.136845 96.937435,41.986237 133.30829,55.848232 155.421,72.811091" + id="path11351" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 40.946252,55.058624 51.933742,4.055679 32.351586,9.893184 18.23736,12.668904" + id="path11353" /><path + style="display:none;fill:none;stroke:#ffaf80;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:1.06, 0.265;stroke-dashoffset:0;stroke-opacity:1" + d="M 133.28272,55.889892 155.421,72.811089 143.46894,81.676391 125.23158,69.007489 Z" + id="path12310" + sodipodi:nodetypes="ccccc" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 92.879999,59.114306 27.330281,18.074311 11.71158,13.052691" + id="path11355" /><path + style="display:inline;fill:none;stroke:#ff0000;stroke-width:0.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1" + d="m 41.189666,73.618994 46.637217,6.826469 21.721487,14.114442 6.56032,7.410645" + id="path11417" /></g><g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Touched Areas" + style="display:none"><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 23.602453,30.061089 c 0.06425,8.839436 0.161707,17.679044 0.306917,26.517468 22.543392,3.311975 45.083496,6.681001 67.640486,9.879014 0.707805,-1.584808 0.927844,-3.38045 1.409296,-5.054527 2.016873,-8.485505 4.096791,-17.013236 5.983816,-25.494426 C 73.834384,33.893685 48.719639,31.929235 23.603792,30.021951 Z" + id="path15302" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 105.70964,10.9949 c -2.04723,7.988726 -3.95537,16.018757 -5.760411,24.0651 -0.09181,0.399129 0.668121,0.305275 0.895981,0.503177 14.76867,4.724151 29.6277,9.159921 44.45413,13.697574 0.56266,0.0132 1.43127,0.822603 1.69088,0.02356 3.76738,-6.101923 7.50908,-12.219653 11.26222,-18.330345 C 140.73118,24.319841 123.2414,17.598552 105.7201,10.965954 Z" + id="path15304" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 99.538574,36.605015 c -2.404498,10.038575 -4.773209,20.08571 -7.157223,30.12918 10.469959,6.751144 20.856609,13.63389 31.372939,20.310217 5.09774,-8.059891 10.03938,-16.22106 14.93,-24.407994 0.68337,-0.665596 -0.55019,-0.877565 -0.92829,-1.284439 -12.52259,-8.268237 -24.97639,-16.645421 -37.61205,-24.738898 -0.254222,-0.05276 -0.6197,-0.629312 -0.605376,-0.0081 z" + id="path15306" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 102.125,36.891025 c 12.36769,8.299778 24.80002,16.506962 37.26148,24.666305 2.38774,-3.696043 4.70184,-7.455837 6.91276,-11.255455 -14.77094,-4.581048 -29.56403,-9.089092 -44.37206,-13.548898 l 0.11254,0.07854 z" + id="path15308" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 23.242995,3.7918378 c 0.05421,8.4942852 0.175988,16.9953832 0.382775,25.4835952 24.367795,2.026047 48.747686,3.911498 73.129097,5.767918 0.8139,0.03904 1.625054,0.167764 2.440603,0.105076 1.90249,-8.12831 3.90604,-16.236164 5.70064,-24.3878 C 77.684298,8.3721335 50.461701,6.0351672 23.244603,3.7510941 Z" + id="path15310" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 131.94592,75.08961 c -2.54719,4.151215 -5.09439,8.302428 -7.64159,12.453643 3.01648,3.379635 5.91493,6.871678 9.05797,10.13286 0.43532,0.577992 0.88677,-0.362441 1.30514,-0.495892 7.10325,-5.296198 14.28111,-10.510867 21.33416,-15.862984 -0.67834,-1.295656 -1.87313,-2.291297 -2.78184,-3.437096 -4.53251,-5.088551 -9.10726,-10.139868 -13.64431,-15.224338 -2.54317,4.144604 -5.08635,8.289203 -7.62953,12.433807 z" + id="path15312" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffffff;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 143.48498,56.290667 c -1.10322,1.933757 -2.46642,3.74506 -3.36485,5.783466 0.26368,0.740882 1.08942,1.240157 1.54002,1.896739 5.03551,5.603319 10.01124,11.263707 15.15097,16.770055 5.43907,-3.982364 10.84761,-8.009552 16.23129,-12.067649 -8.67801,-6.041941 -17.38215,-12.046548 -26.04544,-18.109517 -1.17066,1.908971 -2.34133,3.817939 -3.51199,5.726906 z" + id="path15314" /><path + style="font-variation-settings:normal;opacity:0.6;fill:#ffb380;fill-opacity:0.75;stroke:#ffffff;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + d="m 158.81802,31.427882 c -1.23857,1.666287 -2.24692,3.577211 -3.38122,5.344477 -2.67363,4.42141 -5.39572,8.816417 -7.96216,13.300068 8.71241,6.060837 17.37013,12.209653 26.21457,18.077077 1.12709,-0.621895 2.209,-1.60197 3.31446,-2.357746 4.50509,-3.350754 9.02276,-6.685402 13.48831,-10.088657 -3.3546,-2.857542 -6.9753,-5.403932 -10.43982,-8.132147 -7.01966,-5.369686 -14.03279,-10.755728 -21.06902,-16.099114 -0.0508,-0.02434 -0.10695,-0.05081 -0.16512,-0.04396 z" + id="path15316" /></g><g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="R-Tree Objects 1" + style="display:none"><rect + style="font-variation-settings:normal;display:inline;opacity:0.75;fill:#ff0000;fill-opacity:0.25;stroke:#ff0000;stroke-width:0.388789;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="rect14336" + width="107.99667" + height="54.904438" + x="46.881836" + y="26.405735" + rx="0.027438877" + ry="1.8746314" /></g><g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Points" + style="stroke-width:1.00038092;stroke-dasharray:none"><path + style="fill:#0000ff;stroke:none;stroke-width:0.262063px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0.50138503" + d="m 150.28761,74.11154 -2.39042,6.944182 -16.51555,-5.685219 8.15375,-13.248953" + id="path8167" /><path + style="display:inline;opacity:1;fill:#010101;stroke:#000000;stroke-width:0.49523808;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;stroke-dasharray:0.49523808,0.49523808;stroke-dashoffset:0" + d="M 130.02785,95.023973 152.96532,77.115901" + id="path6415" + sodipodi:nodetypes="cc" /><circle + style="opacity:1;fill:#0000ff;fill-opacity:1;stroke:#000080;stroke-width:1.00038;stroke-dasharray:none;paint-order:stroke fill markers;stop-color:#000000" + id="path5101" + cx="139.41573" + cy="62.353184" + r="0.49028572" /><circle + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;stroke:#000080;stroke-width:1.00038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="circle5571" + cx="150.12383" + cy="74.047104" + r="0.49028572" /><circle + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;stroke:#000080;stroke-width:1.00038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="circle5573" + cx="147.71544" + cy="81.048965" + r="0.49028572" /><circle + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#0000ff;fill-opacity:1;stroke:#000080;stroke-width:1.00038;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000;stop-opacity:1" + id="circle5575" + cx="131.3083" + cy="75.185196" + r="0.49028614" /></g><text + xml:space="preserve" + style="font-size:4.38456px;line-height:1.25;font-family:sans-serif;stroke-width:0.262063;fill:#ffffff;filter:url(#filter8239)" + x="140.76222" + y="61.158321" + id="text8237"><tspan + sodipodi:role="line" + id="tspan8235" + style="stroke-width:0.262063;fill:#ffffff" + x="140.76222" + y="61.158321">s<tspan + style="font-size:2.84996px;baseline-shift:sub;stroke-width:0.262063;fill:#ffffff" + id="tspan8233">min</tspan></tspan></text><text + xml:space="preserve" + style="font-size:4.38456px;line-height:1.25;font-family:sans-serif;stroke-width:0.262063" + x="140.76222" + y="61.158321" + id="text8056"><tspan + sodipodi:role="line" + id="tspan8054" + style="stroke-width:0.262063" + x="140.76222" + y="61.158321">s<tspan + style="font-size:2.84996px;baseline-shift:sub;stroke-width:0.262063" + id="tspan8058">min</tspan></tspan></text><text + xml:space="preserve" + style="font-size:4.38456px;line-height:1.25;font-family:sans-serif;stroke-width:0.262063;fill:#ffffff;filter:url(#filter8273)" + x="153.58638" + y="76.279175" + id="text8247"><tspan + sodipodi:role="line" + id="tspan8245" + style="stroke-width:0.262063;fill:#ffffff" + x="153.58638" + y="76.279175">s<tspan + style="font-size:2.84996px;baseline-shift:sub;stroke-width:0.262063;fill:#ffffff" + id="tspan8243">max</tspan></tspan></text><text + xml:space="preserve" + style="font-size:4.38456px;line-height:1.25;font-family:sans-serif;stroke-width:0.262063" + x="153.58638" + y="76.279175" + id="text8112"><tspan + sodipodi:role="line" + id="tspan8110" + style="stroke-width:0.262063" + x="153.58638" + y="76.279175">s<tspan + style="font-size:2.84996px;baseline-shift:sub;stroke-width:0.262063" + id="tspan8114">max</tspan></tspan></text><text + xml:space="preserve" + style="font-size:4.38456px;line-height:1.25;font-family:sans-serif;mix-blend-mode:normal;fill:#ffffff;stroke-width:0.262063;filter:url(#filter1150)" + x="116.08276" + y="79.552177" + id="text592"><tspan + sodipodi:role="line" + id="tspan590" + style="fill:#ffffff;stroke-width:0.262063" + x="116.08276" + y="79.552177"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Symbol;-inkscape-font-specification:Symbol;fill:#ffffff" + id="tspan586">D</tspan>t<tspan + style="font-size:2.84996px;baseline-shift:sub;fill:#ffffff;stroke-width:0.262063" + id="tspan588">right</tspan></tspan></text><text + xml:space="preserve" + style="font-size:4.38456px;line-height:1.25;font-family:sans-serif;stroke-width:0.262063" + x="116.08276" + y="79.552177" + id="text8231"><tspan + sodipodi:role="line" + id="tspan8229" + style="stroke-width:0.262063" + x="116.08276" + y="79.552177"><tspan + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Symbol;-inkscape-font-specification:Symbol" + id="tspan519">D</tspan>t<tspan + style="font-size:2.84996px;baseline-shift:sub;stroke-width:0.262063" + id="tspan8227">right</tspan></tspan></text><path + style="fill:none;stroke:#000000;stroke-width:0.361524;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#TriangleStart);marker-end:url(#marker1422)" + d="M 123.87989,87.592997 131.22994,75.85221" + id="path1154" + sodipodi:nodetypes="cc" /></svg> diff --git a/content/html/_images/sensor2d_five_corner_polygon.svg b/content/html/_images/sensor2d_five_corner_polygon.svg index 23a02c2cc448db55add7e50d601b44832fbcb70f..20207ff8e6e1c493092ffec4f8f9ffea573a0cf8 100644 --- a/content/html/_images/sensor2d_five_corner_polygon.svg +++ b/content/html/_images/sensor2d_five_corner_polygon.svg @@ -1,1401 +1,1401 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="218.62463mm" - viewBox="0 0 210 218.62463" - version="1.1" - id="svg12177" - sodipodi:docname="sensor2d_five_corner_polygon.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - inkscape:export-filename="shadowing_2.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title1365">Sensor2D</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1.0776786" - inkscape:cx="305.74978" - inkscape:cy="386.0149" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="layer1" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <pattern - inkscape:collect="always" - xlink:href="#Strips1_1" - id="pattern19283" - patternTransform="matrix(0.66231135,0.66231135,-0.66231135,0.66231135,107.52927,83.94669)" /> - <pattern - inkscape:collect="always" - patternUnits="userSpaceOnUse" - width="2" - height="1" - patternTransform="translate(0,0) scale(10,10)" - id="Strips1_1" - inkscape:stockid="Stripes 1:1" - inkscape:isstock="true"> - <rect - style="fill:black;stroke:none" - x="0" - y="-0.5" - width="1" - height="2" - id="rect7558" /> - </pattern> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-2" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-2" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-5" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-4" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-6" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-1" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-0" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-4" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-1" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-3" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-2-6" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-1-8" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-2-8" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-2-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-5-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-4-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-6-1" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-1-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-1-1" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-5-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-0-0" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-5-8" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-4-3" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-7-9" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-1-1" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-3-8" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-3-2" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-1-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-2-6-7" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-1-8-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-2-8-9" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-2-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-5-1-0" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-4-6-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-6-1-4" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-1-0-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-1-1-8" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-5-6-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-0-0-8" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-5-8-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-4-3-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-7-9-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-1-1-0" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-3-8-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-3-2-6" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-1-0-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-2-6-7-1-2" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-1-8-0-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-2-8-9-5-7" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-2-7-5-0-4" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-5-1-0-2-3" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-4-6-5-5-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-6-1-4-0-4" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-1-0-1-5-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-1-1-8-3-3" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-5-6-0-5-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-0-0-8-9-7" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-5-8-3-8-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-4-3-1-9-9" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-7-9-7-3-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-1-1-0-3-0" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-3-8-0-9-8" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-3-2-6-6-2" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-1-0-3-5-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-2-6-7-1-2-8" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-1-8-0-7-5-9" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-2-8-9-5-7-7" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-2-7-5-0-4-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-5-1-0-2-3-6" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-4-6-5-5-7-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-6-1-4-0-4-2" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-1-0-1-5-0-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-1-1-8-3-3-4" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-5-6-0-5-0-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-0-0-8-9-7-8" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-5-8-3-8-2-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-4-3-1-9-9-7" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-7-9-7-3-3-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-1-1-0-3-0-8" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-3-8-0-9-8-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-3-2-6-6-2-7" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-1-0-3-5-1-4" /> - </filter> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,8.9307861,6.9345449)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> - <rect - style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.428742, 0.214372;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="276.09979" - height="242.5226" - x="-11.648958" - y="-7.6925635" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline"> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" - id="rect846" - width="209.99998" - height="30.350033" - x="1.1100143e-05" - y="66.27169" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" - id="rect846-6" - width="209.99998" - height="30.350033" - x="1.1100143e-05" - y="5.5716209" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.24429;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 0,5.5716241 H 209.99999" - id="path1858-1" - sodipodi:nodetypes="cc" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" - id="rect18825" - width="209.99998" - height="30.350033" - x="1.1100143e-05" - y="35.921654" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.03692;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.14767, 4.14767;stroke-dashoffset:0;stroke-opacity:1" - d="M 1.7340269e-5,66.271691 H 210" - id="path1858-1-7" - sodipodi:nodetypes="cc" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" - id="rect16747" - width="209.99998" - height="30.350033" - x="1.1100143e-05" - y="126.86807" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" - id="rect16749" - width="209.99998" - height="30.350033" - x="1.1100143e-05" - y="96.518028" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.24429;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 8.6701347e-6,96.518029 H 210" - id="path1858" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.24429;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 8.6701347e-6,157.11441 H 210" - id="path16751" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.03692;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.14767, 4.14767;stroke-dashoffset:0;stroke-opacity:1" - d="M 1.7340269e-5,126.86807 H 210" - id="path16753" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.03692;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.14767, 4.14767;stroke-dashoffset:0;stroke-opacity:1" - d="M 8.6701347e-6,35.921654 H 209.99999" - id="path18827" - sodipodi:nodetypes="cc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Cones" - style="display:inline" - transform="translate(-19.018925)"> - <ellipse - style="opacity:1;fill:none;fill-opacity:0.25;stroke:#000000;stroke-width:0.51449;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.51449, 1.54347;stroke-dashoffset:0;stroke-opacity:1" - id="path18687" - cx="117.01175" - cy="112.70363" - rx="75.089951" - ry="74.818748" /> - <path - id="path18579" - style="display:inline;opacity:1;fill:#ffffff;fill-opacity:0.25;stroke:#000000;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="M 117.23028,37.884865 A 74.872499,74.818654 0 0 0 95.630026,41.10428 l 21.600254,71.38102 -21.600254,71.81733 a 74.872499,74.818654 0 0 0 21.600254,3.21941 74.872499,74.818654 0 0 0 74.87142,-74.81859 74.872499,74.818654 0 0 0 -74.87142,-74.818585 z" /> - </g> - <g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="Inner Cones" - inkscape:highlight-color="#21d7f3" - style="display:inline" - transform="translate(-19.018925)"> - <path - style="font-variation-settings:normal;display:inline;opacity:0.25;vector-effect:none;fill:url(#pattern19283);fill-opacity:1;stroke:#000000;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000" - d="M 191.88759,214.79975 95.630026,184.30263 117.23028,112.48531 95.630026,41.10428 191.88759,10.607164" - id="path18811" - sodipodi:nodetypes="ccccc" /> - <path - style="font-variation-settings:normal;display:inline;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000" - d="M 95.630026,41.10428 191.88759,10.607164 V 214.79975 L 95.630026,184.30263" - id="path18813" - sodipodi:nodetypes="cccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - transform="translate(-19.018925)"> - <g - id="g10977" - inkscape:label="Orange Car" - style="display:inline" - transform="matrix(0.86701347,0,0,0.86701347,107.52927,83.94669)"> - <path - id="rect5329-3-5" - style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4-8" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6-0" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1-6" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect13708-8-42" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect15650-6-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9-3" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect11566-1-1-2" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - <path - id="rect13708-8-4-7" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5-7" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - </g> - <g - id="g10977-9" - inkscape:label="Orange Car" - style="display:inline" - transform="matrix(0.86701347,0,0,0.86701347,12.977822,117.95671)"> - <path - id="rect5329-3-5-8" - style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4-8-5" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6-0-9" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1-6-8" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect13708-8-42-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect15650-6-6-5" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9-3-5" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect11566-1-1-2-7" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - <path - id="rect13708-8-4-7-7" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5-7-3" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - </g> - <g - id="g10977-9-6" - inkscape:label="Orange Car" - style="display:inline" - transform="matrix(-0.86701347,0,0,-0.86701347,139.16981,105.84532)"> - <path - id="rect5329-3-5-8-5" - style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4-8-5-8" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6-0-9-0" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1-6-8-3" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect13708-8-42-4-7" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect15650-6-6-5-9" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9-3-5-4" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect11566-1-1-2-7-5" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - <path - id="rect13708-8-4-7-7-3" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5-7-3-0" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - </g> - <g - id="g10977-9-6-9-9" - inkscape:label="Orange Car" - style="display:inline" - transform="matrix(-0.86701347,0,0,-0.86701347,147.65647,46.740974)"> - <path - id="rect5329-3-5-8-5-5-2" - style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4-8-5-8-0-2" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7-1-2)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6-0-9-0-0-1" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9-5-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1-6-8-3-0-3" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0-2-3)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect13708-8-42-4-7-6-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4-0-4)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect15650-6-6-5-9-5-8" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8-3-3)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8-9-7)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9-3-5-4-7-9" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect11566-1-1-2-7-5-5-2" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1-9-9)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - <path - id="rect13708-8-4-7-7-3-5-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0-3-0)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6-6-2)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5-7-3-0-8-1" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - </g> - <g - id="g10977-9-6-9-9-9" - inkscape:label="Orange Car" - style="display:inline" - transform="matrix(-0.86701347,0,0,-0.86701347,187.10494,46.417813)"> - <path - id="rect5329-3-5-8-5-5-2-7" - style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4-8-5-8-0-2-9" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7-1-2-8)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6-0-9-0-0-1-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9-5-7-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1-6-8-3-0-3-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0-2-3-6)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect13708-8-42-4-7-6-8-2" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4-0-4-2)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect15650-6-6-5-9-5-8-9" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8-3-3-4)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8-9-7-8)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9-3-5-4-7-9-0" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect11566-1-1-2-7-5-5-2-6" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1-9-9-7)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - <path - id="rect13708-8-4-7-7-3-5-4-9" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0-3-0-8)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6-6-2-7)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5-7-3-0-8-1-6" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - </g> - <g - id="g10990" - inkscape:label="Green Car" - transform="matrix(0.86701347,0,0,0.86701347,107.52927,83.94669)"> - <g - id="g3439" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect5329-3" - style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer1" - inkscape:label="Labels" - style="display:inline" - transform="translate(-19.018925)"> - <text - xml:space="preserve" - style="font-size:6.98079px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" - x="142.18013" - y="111.68221" - id="text39715" - transform="scale(1.0000124,0.9999876)"><tspan - sodipodi:role="line" - id="tspan39713" - style="font-size:6.98079px;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" - x="142.18013" - y="111.68221">C</tspan></text> - <text - xml:space="preserve" - style="font-size:6.98079px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" - x="99.423454" - y="83.187538" - id="text39719" - transform="scale(1.0000124,0.9999876)"><tspan - sodipodi:role="line" - id="tspan39717" - style="font-size:6.98079px;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" - x="99.423454" - y="83.187538">B</tspan></text> - <text - xml:space="preserve" - style="font-size:6.98079px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" - x="108.05316" - y="24.08246" - id="text39727" - transform="scale(1.0000124,0.9999876)"><tspan - sodipodi:role="line" - id="tspan39725" - style="font-size:6.98079px;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" - x="108.05316" - y="24.08246">E</tspan></text> - <text - xml:space="preserve" - style="font-size:6.98079px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" - x="147.55228" - y="23.759298" - id="text39731" - transform="scale(1.0000124,0.9999876)"><tspan - sodipodi:role="line" - id="tspan39729" - style="font-size:6.98079px;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" - x="147.55228" - y="23.759298">A</tspan></text> - <text - xml:space="preserve" - style="font-size:6.98079px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" - x="47.839489" - y="145.69266" - id="text39711" - transform="scale(1.0000124,0.9999876)"><tspan - sodipodi:role="line" - id="tspan39709" - style="font-size:6.98079px;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" - x="47.839489" - y="145.69266">D</tspan></text> - </g> - <metadata - id="metadata1361"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>Sensor2D</dc:title> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="218.62463mm" + viewBox="0 0 210 218.62463" + version="1.1" + id="svg12177" + sodipodi:docname="sensor2d_five_corner_polygon.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:export-filename="shadowing_2.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title1365">Sensor2D</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1.0776786" + inkscape:cx="305.74978" + inkscape:cy="386.0149" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <pattern + inkscape:collect="always" + xlink:href="#Strips1_1" + id="pattern19283" + patternTransform="matrix(0.66231135,0.66231135,-0.66231135,0.66231135,107.52927,83.94669)" /> + <pattern + inkscape:collect="always" + patternUnits="userSpaceOnUse" + width="2" + height="1" + patternTransform="translate(0,0) scale(10,10)" + id="Strips1_1" + inkscape:stockid="Stripes 1:1" + inkscape:isstock="true"> + <rect + style="fill:black;stroke:none" + x="0" + y="-0.5" + width="1" + height="2" + id="rect7558" /> + </pattern> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-2" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-2" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-5" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-4" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-6" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-1" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-0" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-4" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-1" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-3" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-2-6" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-1-8" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-2-8" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-2-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-5-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-4-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-6-1" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-1-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-1-1" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-5-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-0-0" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-5-8" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-4-3" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-7-9" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-1-1" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-3-8" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-3-2" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-1-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-2-6-7" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-1-8-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-2-8-9" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-2-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-5-1-0" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-4-6-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-6-1-4" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-1-0-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-1-1-8" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-5-6-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-0-0-8" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-5-8-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-4-3-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-7-9-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-1-1-0" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-3-8-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-3-2-6" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-1-0-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-2-6-7-1-2" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-1-8-0-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-2-8-9-5-7" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-2-7-5-0-4" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-5-1-0-2-3" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-4-6-5-5-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-6-1-4-0-4" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-1-0-1-5-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-1-1-8-3-3" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-5-6-0-5-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-0-0-8-9-7" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-5-8-3-8-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-4-3-1-9-9" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-7-9-7-3-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-1-1-0-3-0" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-3-8-0-9-8" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-3-2-6-6-2" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-1-0-3-5-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-2-6-7-1-2-8" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-1-8-0-7-5-9" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-2-8-9-5-7-7" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-2-7-5-0-4-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-5-1-0-2-3-6" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-4-6-5-5-7-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-6-1-4-0-4-2" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-1-0-1-5-0-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-1-1-8-3-3-4" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-5-6-0-5-0-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-0-0-8-9-7-8" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-5-8-3-8-2-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-4-3-1-9-9-7" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-7-9-7-3-3-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-1-1-0-3-0-8" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-3-8-0-9-8-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-3-2-6-6-2-7" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-1-0-3-5-1-4" /> + </filter> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,8.9307861,6.9345449)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> + <rect + style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.428742, 0.214372;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="276.09979" + height="242.5226" + x="-11.648958" + y="-7.6925635" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline"> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" + id="rect846" + width="209.99998" + height="30.350033" + x="1.1100143e-05" + y="66.27169" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" + id="rect846-6" + width="209.99998" + height="30.350033" + x="1.1100143e-05" + y="5.5716209" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.24429;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 0,5.5716241 H 209.99999" + id="path1858-1" + sodipodi:nodetypes="cc" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" + id="rect18825" + width="209.99998" + height="30.350033" + x="1.1100143e-05" + y="35.921654" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.03692;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.14767, 4.14767;stroke-dashoffset:0;stroke-opacity:1" + d="M 1.7340269e-5,66.271691 H 210" + id="path1858-1-7" + sodipodi:nodetypes="cc" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" + id="rect16747" + width="209.99998" + height="30.350033" + x="1.1100143e-05" + y="126.86807" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" + id="rect16749" + width="209.99998" + height="30.350033" + x="1.1100143e-05" + y="96.518028" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.24429;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 8.6701347e-6,96.518029 H 210" + id="path1858" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.24429;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 8.6701347e-6,157.11441 H 210" + id="path16751" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.03692;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.14767, 4.14767;stroke-dashoffset:0;stroke-opacity:1" + d="M 1.7340269e-5,126.86807 H 210" + id="path16753" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.03692;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.14767, 4.14767;stroke-dashoffset:0;stroke-opacity:1" + d="M 8.6701347e-6,35.921654 H 209.99999" + id="path18827" + sodipodi:nodetypes="cc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Cones" + style="display:inline" + transform="translate(-19.018925)"> + <ellipse + style="opacity:1;fill:none;fill-opacity:0.25;stroke:#000000;stroke-width:0.51449;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.51449, 1.54347;stroke-dashoffset:0;stroke-opacity:1" + id="path18687" + cx="117.01175" + cy="112.70363" + rx="75.089951" + ry="74.818748" /> + <path + id="path18579" + style="display:inline;opacity:1;fill:#ffffff;fill-opacity:0.25;stroke:#000000;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 117.23028,37.884865 A 74.872499,74.818654 0 0 0 95.630026,41.10428 l 21.600254,71.38102 -21.600254,71.81733 a 74.872499,74.818654 0 0 0 21.600254,3.21941 74.872499,74.818654 0 0 0 74.87142,-74.81859 74.872499,74.818654 0 0 0 -74.87142,-74.818585 z" /> + </g> + <g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="Inner Cones" + inkscape:highlight-color="#21d7f3" + style="display:inline" + transform="translate(-19.018925)"> + <path + style="font-variation-settings:normal;display:inline;opacity:0.25;vector-effect:none;fill:url(#pattern19283);fill-opacity:1;stroke:#000000;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000" + d="M 191.88759,214.79975 95.630026,184.30263 117.23028,112.48531 95.630026,41.10428 191.88759,10.607164" + id="path18811" + sodipodi:nodetypes="ccccc" /> + <path + style="font-variation-settings:normal;display:inline;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000" + d="M 95.630026,41.10428 191.88759,10.607164 V 214.79975 L 95.630026,184.30263" + id="path18813" + sodipodi:nodetypes="cccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + transform="translate(-19.018925)"> + <g + id="g10977" + inkscape:label="Orange Car" + style="display:inline" + transform="matrix(0.86701347,0,0,0.86701347,107.52927,83.94669)"> + <path + id="rect5329-3-5" + style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4-8" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6-0" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1-6" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect13708-8-42" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect15650-6-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9-3" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect11566-1-1-2" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + <path + id="rect13708-8-4-7" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5-7" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + </g> + <g + id="g10977-9" + inkscape:label="Orange Car" + style="display:inline" + transform="matrix(0.86701347,0,0,0.86701347,12.977822,117.95671)"> + <path + id="rect5329-3-5-8" + style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4-8-5" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6-0-9" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1-6-8" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect13708-8-42-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect15650-6-6-5" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9-3-5" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect11566-1-1-2-7" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + <path + id="rect13708-8-4-7-7" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5-7-3" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + </g> + <g + id="g10977-9-6" + inkscape:label="Orange Car" + style="display:inline" + transform="matrix(-0.86701347,0,0,-0.86701347,139.16981,105.84532)"> + <path + id="rect5329-3-5-8-5" + style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4-8-5-8" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6-0-9-0" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1-6-8-3" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect13708-8-42-4-7" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect15650-6-6-5-9" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9-3-5-4" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect11566-1-1-2-7-5" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + <path + id="rect13708-8-4-7-7-3" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5-7-3-0" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + </g> + <g + id="g10977-9-6-9-9" + inkscape:label="Orange Car" + style="display:inline" + transform="matrix(-0.86701347,0,0,-0.86701347,147.65647,46.740974)"> + <path + id="rect5329-3-5-8-5-5-2" + style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4-8-5-8-0-2" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7-1-2)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6-0-9-0-0-1" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9-5-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1-6-8-3-0-3" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0-2-3)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect13708-8-42-4-7-6-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4-0-4)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect15650-6-6-5-9-5-8" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8-3-3)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8-9-7)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9-3-5-4-7-9" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect11566-1-1-2-7-5-5-2" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1-9-9)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + <path + id="rect13708-8-4-7-7-3-5-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0-3-0)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6-6-2)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5-7-3-0-8-1" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + </g> + <g + id="g10977-9-6-9-9-9" + inkscape:label="Orange Car" + style="display:inline" + transform="matrix(-0.86701347,0,0,-0.86701347,187.10494,46.417813)"> + <path + id="rect5329-3-5-8-5-5-2-7" + style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4-8-5-8-0-2-9" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7-1-2-8)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6-0-9-0-0-1-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9-5-7-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1-6-8-3-0-3-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0-2-3-6)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect13708-8-42-4-7-6-8-2" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4-0-4-2)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect15650-6-6-5-9-5-8-9" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8-3-3-4)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8-9-7-8)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9-3-5-4-7-9-0" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect11566-1-1-2-7-5-5-2-6" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1-9-9-7)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + <path + id="rect13708-8-4-7-7-3-5-4-9" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0-3-0-8)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6-6-2-7)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5-7-3-0-8-1-6" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + </g> + <g + id="g10990" + inkscape:label="Green Car" + transform="matrix(0.86701347,0,0,0.86701347,107.52927,83.94669)"> + <g + id="g3439" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect5329-3" + style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Labels" + style="display:inline" + transform="translate(-19.018925)"> + <text + xml:space="preserve" + style="font-size:6.98079px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" + x="142.18013" + y="111.68221" + id="text39715" + transform="scale(1.0000124,0.9999876)"><tspan + sodipodi:role="line" + id="tspan39713" + style="font-size:6.98079px;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" + x="142.18013" + y="111.68221">C</tspan></text> + <text + xml:space="preserve" + style="font-size:6.98079px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" + x="99.423454" + y="83.187538" + id="text39719" + transform="scale(1.0000124,0.9999876)"><tspan + sodipodi:role="line" + id="tspan39717" + style="font-size:6.98079px;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" + x="99.423454" + y="83.187538">B</tspan></text> + <text + xml:space="preserve" + style="font-size:6.98079px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" + x="108.05316" + y="24.08246" + id="text39727" + transform="scale(1.0000124,0.9999876)"><tspan + sodipodi:role="line" + id="tspan39725" + style="font-size:6.98079px;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" + x="108.05316" + y="24.08246">E</tspan></text> + <text + xml:space="preserve" + style="font-size:6.98079px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" + x="147.55228" + y="23.759298" + id="text39731" + transform="scale(1.0000124,0.9999876)"><tspan + sodipodi:role="line" + id="tspan39729" + style="font-size:6.98079px;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" + x="147.55228" + y="23.759298">A</tspan></text> + <text + xml:space="preserve" + style="font-size:6.98079px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" + x="47.839489" + y="145.69266" + id="text39711" + transform="scale(1.0000124,0.9999876)"><tspan + sodipodi:role="line" + id="tspan39709" + style="font-size:6.98079px;fill:#ffffff;fill-opacity:1;stroke-width:0.872597" + x="47.839489" + y="145.69266">D</tspan></text> + </g> + <metadata + id="metadata1361"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>Sensor2D</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/sensor2d_kite_polygon.svg b/content/html/_images/sensor2d_kite_polygon.svg index c4a72378e134fefc6d44ebfe554f0237a5bf3f69..bb64ad17b736beaac6d318e5ae2fa579165a5156 100644 --- a/content/html/_images/sensor2d_kite_polygon.svg +++ b/content/html/_images/sensor2d_kite_polygon.svg @@ -1,1426 +1,1426 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="218.62462mm" - viewBox="0 0 210 218.62462" - version="1.1" - id="svg12177" - sodipodi:docname="sensor2d_kite_polygon.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - inkscape:export-filename="shadowing_3.png" - inkscape:export-xdpi="300" - inkscape:export-ydpi="300" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title485">Sensor2D</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1.1544643" - inkscape:cx="301.87161" - inkscape:cy="456.48878" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="-8" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="layer1" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <pattern - inkscape:collect="always" - xlink:href="#Strips1_1" - id="pattern19283" - patternTransform="matrix(0.66231134,0.66231134,-0.66231134,0.66231134,88.510344,83.946698)" /> - <pattern - inkscape:collect="always" - patternUnits="userSpaceOnUse" - width="2" - height="1" - patternTransform="translate(0,0) scale(10,10)" - id="Strips1_1" - inkscape:stockid="Stripes 1:1" - inkscape:isstock="true"> - <rect - style="fill:black;stroke:none" - x="0" - y="-0.5" - width="1" - height="2" - id="rect7558" /> - </pattern> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-2" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-2" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-5" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-4" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-6" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-1" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-0" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-4" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-1" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-3" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-2-6-7" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-1-8-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-2-8-9" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-2-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-5-1-0" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-4-6-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-6-1-4" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-1-0-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-1-1-8" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-5-6-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-0-0-8" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-5-8-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-4-3-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-7-9-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-1-1-0" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-3-8-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-3-2-6" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-1-0-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-2-6-7-1" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-1-8-0-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-2-8-9-5" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-2-7-5-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-5-1-0-2" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-4-6-5-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-6-1-4-0" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-1-0-1-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-1-1-8-3" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-5-6-0-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-0-0-8-9" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-5-8-3-8" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-4-3-1-9" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-7-9-7-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-1-1-0-3" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-3-8-0-9" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-3-2-6-6" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-1-0-3-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-2-6-7-1-2" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-1-8-0-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-2-8-9-5-7" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-2-7-5-0-4" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-5-1-0-2-3" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-4-6-5-5-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-6-1-4-0-4" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-1-0-1-5-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-1-1-8-3-3" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-5-6-0-5-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-0-0-8-9-7" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-5-8-3-8-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-4-3-1-9-9" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-7-9-7-3-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-1-1-0-3-0" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-3-8-0-9-8" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-3-2-6-6-2" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-1-0-3-5-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-2-6-7-1-2-8" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-1-8-0-7-5-9" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-2-8-9-5-7-7" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-2-7-5-0-4-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-5-1-0-2-3-6" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-4-6-5-5-7-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-6-1-4-0-4-2" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-1-0-1-5-0-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-1-1-8-3-3-4" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-5-6-0-5-0-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-0-0-8-9-7-8" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-5-8-3-8-2-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-4-3-1-9-9-7" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-7-9-7-3-3-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-1-1-0-3-0-8" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-3-8-0-9-8-3" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-3-2-6-6-2-7" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-1-0-3-5-1-4" /> - </filter> - <pattern - inkscape:collect="always" - xlink:href="#Strips1_1-2" - id="pattern19283-6" - patternTransform="matrix(0.76389972,0.76389972,-0.76389972,0.76389972,0,0)" /> - <pattern - inkscape:collect="always" - patternUnits="userSpaceOnUse" - width="2" - height="1" - patternTransform="translate(0,0) scale(10,10)" - id="Strips1_1-2" - inkscape:stockid="Stripes 1:1" - inkscape:isstock="true"> - <rect - style="fill:black;stroke:none" - x="0" - y="-0.5" - width="1" - height="2" - id="rect7558-8" /> - </pattern> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,8.9307861,6.934532)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> - <rect - style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.428741, 0.214372;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="276.09979" - height="242.5226" - x="-11.648958" - y="-7.6925492" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline" - transform="translate(0,-1.2660984e-5)"> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" - id="rect846" - width="209.99998" - height="30.350033" - x="1.1100144e-05" - y="66.271698" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" - id="rect846-6" - width="209.99998" - height="30.350033" - x="1.1100144e-05" - y="5.5716257" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.24429;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 0,5.5716279 H 209.99999" - id="path1858-1" - sodipodi:nodetypes="cc" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" - id="rect18825" - width="209.99998" - height="30.350033" - x="1.1100144e-05" - y="35.921661" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.03692;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.14766, 4.14766;stroke-dashoffset:0;stroke-opacity:1" - d="M 1.7340269e-5,66.271688 H 210" - id="path1858-1-7" - sodipodi:nodetypes="cc" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" - id="rect16747" - width="209.99998" - height="30.350033" - x="1.1100144e-05" - y="126.86807" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" - id="rect16749" - width="209.99998" - height="30.350033" - x="1.1100144e-05" - y="96.518036" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.24429;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 8.6701345e-6,96.518028 H 210" - id="path1858" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.24429;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 8.6701345e-6,157.11441 H 210" - id="path16751" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.03692;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.14766, 4.14766;stroke-dashoffset:0;stroke-opacity:1" - d="M 1.7340269e-5,126.86807 H 210" - id="path16753" - sodipodi:nodetypes="cc" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.03692;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.14766, 4.14766;stroke-dashoffset:0;stroke-opacity:1" - d="M 8.6701345e-6,35.921648 H 209.99999" - id="path18827" - sodipodi:nodetypes="cc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Cones" - style="display:inline" - transform="translate(0,-1.2660984e-5)"> - <ellipse - style="opacity:1;fill:none;fill-opacity:0.25;stroke:#000000;stroke-width:0.514491;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.514491, 1.54347;stroke-dashoffset:0;stroke-opacity:1" - id="path18687" - cx="97.992821" - cy="112.70363" - rx="75.089951" - ry="74.818748" /> - <path - id="path18579" - style="display:inline;opacity:1;fill:#ffffff;fill-opacity:0.25;stroke:#000000;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - d="m 98.21135,112.48531 53.00072,53.00069 c 13.36001,-13.51317 21.87069,-32.28605 21.87071,-52.78254 -2e-5,-20.723042 -8.43117,-39.478322 -22.05271,-53.027412 z" - sodipodi:nodetypes="ccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="Inner Cones" - inkscape:highlight-color="#21d7f3" - style="display:inline" - transform="translate(0,-1.2660984e-5)"> - <path - id="path601" - style="font-variation-settings:normal;opacity:0.25;vector-effect:none;fill:url(#pattern19283);fill-opacity:1;stroke:#000000;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 98.21135,112.48532 52.79801,-52.798022 53.41021,53.442132 -0.21273,-0.21273 -52.98448,52.57962 z" - sodipodi:nodetypes="cccccc" /> - <path - id="path1717" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 98.21135,112.48532 52.79801,-52.798022 53.41021,53.442132 -0.21273,-0.21273 -52.98448,52.57962 v 0 z" - sodipodi:nodetypes="ccccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - transform="translate(0,-1.2660984e-5)"> - <g - id="g10977" - inkscape:label="Orange Car" - style="display:inline" - transform="matrix(0.86701345,0,0,0.86701345,88.510344,83.946688)"> - <path - id="rect5329-3-5" - style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4-8" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6-0" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1-6" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect13708-8-42" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect15650-6-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9-3" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect11566-1-1-2" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - <path - id="rect13708-8-4-7" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5-7" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - </g> - <g - id="g10977-9-6" - inkscape:label="Orange Car" - style="display:inline" - transform="matrix(-0.86701345,0,0,-0.86701345,120.15089,105.84532)"> - <path - id="rect5329-3-5-8-5" - style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4-8-5-8" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6-0-9-0" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1-6-8-3" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect13708-8-42-4-7" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect15650-6-6-5-9" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9-3-5-4" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect11566-1-1-2-7-5" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - <path - id="rect13708-8-4-7-7-3" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5-7-3-0" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - </g> - <g - id="g10977-9-6-9" - inkscape:label="Orange Car" - style="display:inline" - transform="matrix(-0.86701345,0,0,-0.86701345,186.80618,82.969422)"> - <path - id="rect5329-3-5-8-5-5" - style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4-8-5-8-0" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7-1)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6-0-9-0-0" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9-5)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1-6-8-3-0" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0-2)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect13708-8-42-4-7-6" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4-0)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect15650-6-6-5-9-5" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8-3)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8-9)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9-3-5-4-7" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect11566-1-1-2-7-5-5" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1-9)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - <path - id="rect13708-8-4-7-7-3-5" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0-3)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6-6)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5-7-3-0-8" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - </g> - <g - id="g10977-9-6-9-9" - inkscape:label="Orange Car" - style="display:inline" - transform="matrix(0.86701345,0,0,0.86701345,153.92479,119.51386)" - inkscape:transform-center-x="-1.5369342" - inkscape:transform-center-y="-0.25303635"> - <path - id="rect5329-3-5-8-5-5-2" - style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4-8-5-8-0-2" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7-1-2)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6-0-9-0-0-1" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9-5-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1-6-8-3-0-3" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0-2-3)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect13708-8-42-4-7-6-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4-0-4)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect15650-6-6-5-9-5-8" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8-3-3)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8-9-7)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9-3-5-4-7-9" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect11566-1-1-2-7-5-5-2" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1-9-9)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - <path - id="rect13708-8-4-7-7-3-5-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0-3-0)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6-6-2)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5-7-3-0-8-1" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - </g> - <g - id="g10977-9-6-9-9-9" - inkscape:label="Orange Car" - style="display:inline" - transform="matrix(0.86701345,0,0,0.86701345,155.09304,87.012758)" - inkscape:transform-center-x="-1.5369356" - inkscape:transform-center-y="-0.10121581"> - <path - id="rect5329-3-5-8-5-5-2-7" - style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4-8-5-8-0-2-9" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7-1-2-8)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6-0-9-0-0-1-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9-5-7-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1-6-8-3-0-3-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0-2-3-6)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect13708-8-42-4-7-6-8-2" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4-0-4-2)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect15650-6-6-5-9-5-8-9" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8-3-3-4)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8-9-7-8)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9-3-5-4-7-9-0" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - id="rect11566-1-1-2-7-5-5-2-6" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1-9-9-7)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - <path - id="rect13708-8-4-7-7-3-5-4-9" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0-3-0-8)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6-6-2-7)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5-7-3-0-8-1-6" - sodipodi:nodetypes="csc" - transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> - </g> - <g - id="g10990" - inkscape:label="Green Car" - transform="matrix(0.86701345,0,0,0.86701345,88.510344,83.946688)"> - <g - id="g3439" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect5329-3" - style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" /> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - </g> - <g - inkscape:groupmode="layer" - id="layer1" - inkscape:label="Labels" - style="display:inline" - transform="translate(0,-1.2660984e-5)"> - <text - xml:space="preserve" - style="font-size:6.9808px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" - x="123.16145" - y="111.68126" - id="text39715"><tspan - sodipodi:role="line" - id="tspan39713" - style="font-size:6.9808px;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" - x="123.16145" - y="111.68126">E</tspan></text> - <text - xml:space="preserve" - style="font-size:6.9808px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" - x="80.40477" - y="83.186584" - id="text39719"><tspan - sodipodi:role="line" - id="tspan39717" - style="font-size:6.9808px;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" - x="80.40477" - y="83.186584">A</tspan></text> - <text - xml:space="preserve" - style="font-size:6.9808px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" - x="146.73036" - y="60.31068" - id="text39723"><tspan - sodipodi:role="line" - id="tspan39721" - style="font-size:6.9808px;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" - x="146.73036" - y="60.31068">B</tspan></text> - <text - xml:space="preserve" - style="font-size:6.9808px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" - x="188.89037" - y="147.24887" - id="text39727"><tspan - sodipodi:role="line" - id="tspan39725" - style="font-size:6.9808px;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" - x="188.89037" - y="147.24887">D</tspan></text> - <text - xml:space="preserve" - style="font-size:6.9808px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" - x="190.28804" - y="114.9498" - id="text39731" - inkscape:transform-center-x="-0.12340883" - inkscape:transform-center-y="0.10165031"><tspan - sodipodi:role="line" - id="tspan39729" - style="font-size:6.9808px;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" - x="190.28804" - y="114.9498">C</tspan></text> - </g> - <metadata - id="metadata481"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>Sensor2D</dc:title> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="218.62462mm" + viewBox="0 0 210 218.62462" + version="1.1" + id="svg12177" + sodipodi:docname="sensor2d_kite_polygon.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:export-filename="shadowing_3.png" + inkscape:export-xdpi="300" + inkscape:export-ydpi="300" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title485">Sensor2D</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1.1544643" + inkscape:cx="301.87161" + inkscape:cy="456.48878" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer1" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <pattern + inkscape:collect="always" + xlink:href="#Strips1_1" + id="pattern19283" + patternTransform="matrix(0.66231134,0.66231134,-0.66231134,0.66231134,88.510344,83.946698)" /> + <pattern + inkscape:collect="always" + patternUnits="userSpaceOnUse" + width="2" + height="1" + patternTransform="translate(0,0) scale(10,10)" + id="Strips1_1" + inkscape:stockid="Stripes 1:1" + inkscape:isstock="true"> + <rect + style="fill:black;stroke:none" + x="0" + y="-0.5" + width="1" + height="2" + id="rect7558" /> + </pattern> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-2" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-2" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-5" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-4" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-6" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-1" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-0" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-4" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-1" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-3" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-2-6-7" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-1-8-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-2-8-9" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-2-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-5-1-0" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-4-6-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-6-1-4" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-1-0-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-1-1-8" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-5-6-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-0-0-8" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-5-8-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-4-3-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-7-9-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-1-1-0" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-3-8-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-3-2-6" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-1-0-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-2-6-7-1" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-1-8-0-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-2-8-9-5" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-2-7-5-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-5-1-0-2" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-4-6-5-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-6-1-4-0" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-1-0-1-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-1-1-8-3" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-5-6-0-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-0-0-8-9" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-5-8-3-8" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-4-3-1-9" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-7-9-7-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-1-1-0-3" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-3-8-0-9" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-3-2-6-6" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-1-0-3-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-2-6-7-1-2" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-1-8-0-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-2-8-9-5-7" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-2-7-5-0-4" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-5-1-0-2-3" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-4-6-5-5-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-6-1-4-0-4" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-1-0-1-5-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-1-1-8-3-3" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-5-6-0-5-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-0-0-8-9-7" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-5-8-3-8-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-4-3-1-9-9" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-7-9-7-3-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-1-1-0-3-0" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-3-8-0-9-8" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-3-2-6-6-2" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-1-0-3-5-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-2-6-7-1-2-8" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-1-8-0-7-5-9" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-2-8-9-5-7-7" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-2-7-5-0-4-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-5-1-0-2-3-6" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-4-6-5-5-7-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-6-1-4-0-4-2" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-1-0-1-5-0-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-1-1-8-3-3-4" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-5-6-0-5-0-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-0-0-8-9-7-8" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-5-8-3-8-2-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-4-3-1-9-9-7" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-7-9-7-3-3-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-1-1-0-3-0-8" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-3-8-0-9-8-3" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-3-2-6-6-2-7" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-1-0-3-5-1-4" /> + </filter> + <pattern + inkscape:collect="always" + xlink:href="#Strips1_1-2" + id="pattern19283-6" + patternTransform="matrix(0.76389972,0.76389972,-0.76389972,0.76389972,0,0)" /> + <pattern + inkscape:collect="always" + patternUnits="userSpaceOnUse" + width="2" + height="1" + patternTransform="translate(0,0) scale(10,10)" + id="Strips1_1-2" + inkscape:stockid="Stripes 1:1" + inkscape:isstock="true"> + <rect + style="fill:black;stroke:none" + x="0" + y="-0.5" + width="1" + height="2" + id="rect7558-8" /> + </pattern> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,8.9307861,6.934532)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1"> + <rect + style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.428741, 0.214372;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="276.09979" + height="242.5226" + x="-11.648958" + y="-7.6925492" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline" + transform="translate(0,-1.2660984e-5)"> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" + id="rect846" + width="209.99998" + height="30.350033" + x="1.1100144e-05" + y="66.271698" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" + id="rect846-6" + width="209.99998" + height="30.350033" + x="1.1100144e-05" + y="5.5716257" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.24429;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 0,5.5716279 H 209.99999" + id="path1858-1" + sodipodi:nodetypes="cc" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" + id="rect18825" + width="209.99998" + height="30.350033" + x="1.1100144e-05" + y="35.921661" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.03692;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.14766, 4.14766;stroke-dashoffset:0;stroke-opacity:1" + d="M 1.7340269e-5,66.271688 H 210" + id="path1858-1-7" + sodipodi:nodetypes="cc" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" + id="rect16747" + width="209.99998" + height="30.350033" + x="1.1100144e-05" + y="126.86807" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.112953;stroke-linecap:round" + id="rect16749" + width="209.99998" + height="30.350033" + x="1.1100144e-05" + y="96.518036" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.24429;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 8.6701345e-6,96.518028 H 210" + id="path1858" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.24429;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 8.6701345e-6,157.11441 H 210" + id="path16751" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.03692;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.14766, 4.14766;stroke-dashoffset:0;stroke-opacity:1" + d="M 1.7340269e-5,126.86807 H 210" + id="path16753" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.03692;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4.14766, 4.14766;stroke-dashoffset:0;stroke-opacity:1" + d="M 8.6701345e-6,35.921648 H 209.99999" + id="path18827" + sodipodi:nodetypes="cc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Cones" + style="display:inline" + transform="translate(0,-1.2660984e-5)"> + <ellipse + style="opacity:1;fill:none;fill-opacity:0.25;stroke:#000000;stroke-width:0.514491;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.514491, 1.54347;stroke-dashoffset:0;stroke-opacity:1" + id="path18687" + cx="97.992821" + cy="112.70363" + rx="75.089951" + ry="74.818748" /> + <path + id="path18579" + style="display:inline;opacity:1;fill:#ffffff;fill-opacity:0.25;stroke:#000000;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="m 98.21135,112.48531 53.00072,53.00069 c 13.36001,-13.51317 21.87069,-32.28605 21.87071,-52.78254 -2e-5,-20.723042 -8.43117,-39.478322 -22.05271,-53.027412 z" + sodipodi:nodetypes="ccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="Inner Cones" + inkscape:highlight-color="#21d7f3" + style="display:inline" + transform="translate(0,-1.2660984e-5)"> + <path + id="path601" + style="font-variation-settings:normal;opacity:0.25;vector-effect:none;fill:url(#pattern19283);fill-opacity:1;stroke:#000000;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 98.21135,112.48532 52.79801,-52.798022 53.41021,53.442132 -0.21273,-0.21273 -52.98448,52.57962 z" + sodipodi:nodetypes="cccccc" /> + <path + id="path1717" + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.184689;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 98.21135,112.48532 52.79801,-52.798022 53.41021,53.442132 -0.21273,-0.21273 -52.98448,52.57962 v 0 z" + sodipodi:nodetypes="ccccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + transform="translate(0,-1.2660984e-5)"> + <g + id="g10977" + inkscape:label="Orange Car" + style="display:inline" + transform="matrix(0.86701345,0,0,0.86701345,88.510344,83.946688)"> + <path + id="rect5329-3-5" + style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4-8" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6-0" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1-6" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect13708-8-42" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect15650-6-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9-3" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect11566-1-1-2" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + <path + id="rect13708-8-4-7" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5-7" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + </g> + <g + id="g10977-9-6" + inkscape:label="Orange Car" + style="display:inline" + transform="matrix(-0.86701345,0,0,-0.86701345,120.15089,105.84532)"> + <path + id="rect5329-3-5-8-5" + style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4-8-5-8" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6-0-9-0" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1-6-8-3" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect13708-8-42-4-7" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect15650-6-6-5-9" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9-3-5-4" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect11566-1-1-2-7-5" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + <path + id="rect13708-8-4-7-7-3" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5-7-3-0" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + </g> + <g + id="g10977-9-6-9" + inkscape:label="Orange Car" + style="display:inline" + transform="matrix(-0.86701345,0,0,-0.86701345,186.80618,82.969422)"> + <path + id="rect5329-3-5-8-5-5" + style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4-8-5-8-0" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7-1)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6-0-9-0-0" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9-5)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1-6-8-3-0" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0-2)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect13708-8-42-4-7-6" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4-0)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect15650-6-6-5-9-5" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8-3)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8-9)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9-3-5-4-7" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect11566-1-1-2-7-5-5" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1-9)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + <path + id="rect13708-8-4-7-7-3-5" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0-3)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6-6)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5-7-3-0-8" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + </g> + <g + id="g10977-9-6-9-9" + inkscape:label="Orange Car" + style="display:inline" + transform="matrix(0.86701345,0,0,0.86701345,153.92479,119.51386)" + inkscape:transform-center-x="-1.5369342" + inkscape:transform-center-y="-0.25303635"> + <path + id="rect5329-3-5-8-5-5-2" + style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4-8-5-8-0-2" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7-1-2)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6-0-9-0-0-1" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9-5-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1-6-8-3-0-3" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0-2-3)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect13708-8-42-4-7-6-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4-0-4)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect15650-6-6-5-9-5-8" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8-3-3)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8-9-7)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9-3-5-4-7-9" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect11566-1-1-2-7-5-5-2" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1-9-9)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + <path + id="rect13708-8-4-7-7-3-5-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0-3-0)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6-6-2)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5-7-3-0-8-1" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + </g> + <g + id="g10977-9-6-9-9-9" + inkscape:label="Orange Car" + style="display:inline" + transform="matrix(0.86701345,0,0,0.86701345,155.09304,87.012758)" + inkscape:transform-center-x="-1.5369356" + inkscape:transform-center-y="-0.10121581"> + <path + id="rect5329-3-5-8-5-5-2-7" + style="fill:#ff7f2a;fill-opacity:1;stroke:#000000;stroke-width:0.118547;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="m 49.177794,23.040304 c -1.185788,0.0015 -2.408083,0.01605 -3.751352,0.0311 -4.001612,0.04486 -8.780828,0.113803 -10.859327,0.2139 -1.269365,0.04142 -2.804266,-0.09644 -3.757166,0.681525 -1.322598,1.079786 -1.242712,3.342297 -1.242697,5.094559 1.5e-5,1.752269 -0.0799,4.014398 1.242697,5.094181 0.9529,0.777964 2.487801,0.640107 3.757166,0.681528 2.078499,0.100098 6.857715,0.169415 10.859327,0.21428 3.582048,0.04017 6.303908,0.07382 9.766743,-0.119466 2.466074,-0.155434 3.265218,0.09008 3.821866,-0.820334 0.914168,-1.545217 1.177257,-3.317646 1.177271,-5.050189 1.3e-5,-1.732542 -0.263103,-3.505345 -1.177271,-5.050566 -0.556648,-0.910411 -1.355792,-0.664519 -3.821866,-0.819952 -2.164273,-0.120809 -4.039082,-0.153227 -6.015391,-0.150566 z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4-8-5-8-0-2-9" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-2-6-7-1-2-8)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6-0-9-0-0-1-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-2-8-9-5-7-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1-6-8-3-0-3-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-5-1-0-2-3-6)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect13708-8-42-4-7-6-8-2" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-6-1-4-0-4-2)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect15650-6-6-5-9-5-8-9" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-1-1-8-3-3-4)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(0.18609551,0,0,0.19417958,17.967956,-30.335608)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-0-0-8-9-7-8)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9-3-5-4-7-9-0" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + id="rect11566-1-1-2-7-5-5-2-6" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-4-3-1-9-9-7)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + <path + id="rect13708-8-4-7-7-3-5-4-9" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-1-1-0-3-0-8)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(0.70335313,0,0,0.73390704,29.961909,22.229114)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-3-2-6-6-2-7)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5-7-3-0-8-1-6" + sodipodi:nodetypes="csc" + transform="matrix(0.70335313,0,0,-0.73390704,4.9433483,95.924606)" /> + </g> + <g + id="g10990" + inkscape:label="Green Car" + transform="matrix(0.86701345,0,0,0.86701345,88.510344,83.946688)"> + <g + id="g3439" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect5329-3" + style="fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" /> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Labels" + style="display:inline" + transform="translate(0,-1.2660984e-5)"> + <text + xml:space="preserve" + style="font-size:6.9808px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" + x="123.16145" + y="111.68126" + id="text39715"><tspan + sodipodi:role="line" + id="tspan39713" + style="font-size:6.9808px;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" + x="123.16145" + y="111.68126">E</tspan></text> + <text + xml:space="preserve" + style="font-size:6.9808px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" + x="80.40477" + y="83.186584" + id="text39719"><tspan + sodipodi:role="line" + id="tspan39717" + style="font-size:6.9808px;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" + x="80.40477" + y="83.186584">A</tspan></text> + <text + xml:space="preserve" + style="font-size:6.9808px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" + x="146.73036" + y="60.31068" + id="text39723"><tspan + sodipodi:role="line" + id="tspan39721" + style="font-size:6.9808px;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" + x="146.73036" + y="60.31068">B</tspan></text> + <text + xml:space="preserve" + style="font-size:6.9808px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" + x="188.89037" + y="147.24887" + id="text39727"><tspan + sodipodi:role="line" + id="tspan39725" + style="font-size:6.9808px;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" + x="188.89037" + y="147.24887">D</tspan></text> + <text + xml:space="preserve" + style="font-size:6.9808px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" + x="190.28804" + y="114.9498" + id="text39731" + inkscape:transform-center-x="-0.12340883" + inkscape:transform-center-y="0.10165031"><tspan + sodipodi:role="line" + id="tspan39729" + style="font-size:6.9808px;fill:#ffffff;fill-opacity:1;stroke-width:0.872596" + x="190.28804" + y="114.9498">C</tspan></text> + </g> + <metadata + id="metadata481"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>Sensor2D</dc:title> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/shadow_casting_step01.svg b/content/html/_images/shadow_casting_step01.svg index ebe714e4088bd36be0118f93d59d52d85885ef09..3ff117f3d57f05a7a41db3b34c444758e58f1d9c 100644 --- a/content/html/_images/shadow_casting_step01.svg +++ b/content/html/_images/shadow_casting_step01.svg @@ -1,664 +1,664 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="132.59012mm" - viewBox="0.5 0.5 209 131.95874" - version="1.1" - id="svg12177" - sodipodi:docname="shadow_casting_step1.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - inkscape:export-filename="shadowing_1.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title613">Shadow Casting</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="true" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1" - inkscape:cx="354.5" - inkscape:cy="334" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="3832" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="g38512" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <marker - style="overflow:visible" - id="TriangleStart" - refX="3" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="TriangleStart" - markerWidth="4" - markerHeight="4" - viewBox="0 0 5.3244081 6.1553851" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path135" /> - </marker> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-27" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-7" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-7" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-7" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-2" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-2" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-9" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-2" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-3" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-4" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-15" /> - </filter> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" - sodipodi:insensitive="true"> - <rect - style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="275.974" - height="146.24295" - x="-11.750484" - y="-7.352387" - inkscape:label="Grass" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline" - sodipodi:insensitive="true"> - <rect - style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="15.001317" - inkscape:label="LeftLane" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846-6" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="66.222809" - inkscape:label="RightLane" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,15.001317 H 209.99999" - id="path1858" - sodipodi:nodetypes="cc" - inkscape:label="Left Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,117.44429 H 209.99999" - id="path1858-1" - sodipodi:nodetypes="cc" - inkscape:label="Right Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.4336677e-6,66.222803 H 210" - id="path1858-1-7" - sodipodi:nodetypes="cc" - inkscape:label="Center Line" /> - </g> - <g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Ideal Detection Range" - style="display:none"> - <path - id="path2502" - style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covered Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" - sodipodi:nodetypes="ccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Detection Wrong Scale" - style="display:none"> - <path - id="path11043" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" - sodipodi:nodetypes="ccccc" /> - <path - id="path2475" - style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Missing Area" - d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> - </g> - <g - inkscape:groupmode="layer" - id="g2828" - inkscape:label="Right Scale" - style="display:inline"> - <path - id="path3024" - style="display:none;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" - sodipodi:nodetypes="cccccccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="FinalShadow" - style="display:none"> - <path - id="path2822" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="m 184.40003,29.010416 -105.553601,49.126788 45.011331,3.951394 -1.65349,18.832762 -45.114188,-3.960647 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" /> - </g> - <g - inkscape:groupmode="layer" - id="layer1" - inkscape:label="Vectors" - inkscape:highlight-color="#f3f3f3" - style="display:inline"> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="M 46.337739,93.179263 78.738142,78.187858" - id="path29646" - inkscape:label="LeftVector" /> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="m 46.337739,93.179263 30.752264,3.781455" - id="path29995" - sodipodi:nodetypes="cc" - inkscape:label="RightVector" /> - </g> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="RightScaleBoundaries" - inkscape:highlight-color="#f3f3f3" - style="display:none"> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 85.936463,0.02544663 73.766699,132.56467" - id="path30189" - sodipodi:nodetypes="cc" - inkscape:label="InnerBound" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 187.27417,0.08465123 175.04379,132.38312" - id="path432" - sodipodi:nodetypes="cc" - inkscape:label="OutherBound" /> - </g> - <g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="Detection Boundaries" - inkscape:highlight-color="#21d7f3" - style="display:inline" - sodipodi:insensitive="true"> - <path - id="path18240" - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" - sodipodi:nodetypes="cccc" - inkscape:label="Real Detection Boundary" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - sodipodi:insensitive="true"> - <g - id="g10990" - inkscape:label="Green Car" - transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" - style="display:inline"> - <path - id="rect5329-3" - style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> - <g - id="g2331" - inkscape:label="Paths" - style="display:inline" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - <g - id="g38512" - inkscape:label="Front Car" - style="display:inline;opacity:1" - transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> - <path - id="path38490" - style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> - <g - id="g38510" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - inkscape:label="Paths"> - <path - id="path38492" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="path38494" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="path38496" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38498" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38500" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path38502" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38504" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="path38506" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path38508" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:0.49761903;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" - d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" - id="path3202" - transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" - inkscape:label="BoundingBox" /> - </g> - </g> - <metadata - id="metadata551"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>Shadow Casting</dc:title> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="132.59012mm" + viewBox="0.5 0.5 209 131.95874" + version="1.1" + id="svg12177" + sodipodi:docname="shadow_casting_step1.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:export-filename="shadowing_1.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title613">Shadow Casting</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="true" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1" + inkscape:cx="354.5" + inkscape:cy="334" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="3832" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="g38512" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <marker + style="overflow:visible" + id="TriangleStart" + refX="3" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="4" + markerHeight="4" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135" /> + </marker> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-27" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-7" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-7" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-7" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-2" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-2" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-9" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-2" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-3" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-4" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-15" /> + </filter> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" + sodipodi:insensitive="true"> + <rect + style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="275.974" + height="146.24295" + x="-11.750484" + y="-7.352387" + inkscape:label="Grass" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline" + sodipodi:insensitive="true"> + <rect + style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="15.001317" + inkscape:label="LeftLane" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846-6" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="66.222809" + inkscape:label="RightLane" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,15.001317 H 209.99999" + id="path1858" + sodipodi:nodetypes="cc" + inkscape:label="Left Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,117.44429 H 209.99999" + id="path1858-1" + sodipodi:nodetypes="cc" + inkscape:label="Right Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.4336677e-6,66.222803 H 210" + id="path1858-1-7" + sodipodi:nodetypes="cc" + inkscape:label="Center Line" /> + </g> + <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Ideal Detection Range" + style="display:none"> + <path + id="path2502" + style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covered Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" + sodipodi:nodetypes="ccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Detection Wrong Scale" + style="display:none"> + <path + id="path11043" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" + sodipodi:nodetypes="ccccc" /> + <path + id="path2475" + style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Missing Area" + d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> + </g> + <g + inkscape:groupmode="layer" + id="g2828" + inkscape:label="Right Scale" + style="display:inline"> + <path + id="path3024" + style="display:none;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" + sodipodi:nodetypes="cccccccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="FinalShadow" + style="display:none"> + <path + id="path2822" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="m 184.40003,29.010416 -105.553601,49.126788 45.011331,3.951394 -1.65349,18.832762 -45.114188,-3.960647 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" /> + </g> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Vectors" + inkscape:highlight-color="#f3f3f3" + style="display:inline"> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="M 46.337739,93.179263 78.738142,78.187858" + id="path29646" + inkscape:label="LeftVector" /> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="m 46.337739,93.179263 30.752264,3.781455" + id="path29995" + sodipodi:nodetypes="cc" + inkscape:label="RightVector" /> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="RightScaleBoundaries" + inkscape:highlight-color="#f3f3f3" + style="display:none"> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 85.936463,0.02544663 73.766699,132.56467" + id="path30189" + sodipodi:nodetypes="cc" + inkscape:label="InnerBound" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 187.27417,0.08465123 175.04379,132.38312" + id="path432" + sodipodi:nodetypes="cc" + inkscape:label="OutherBound" /> + </g> + <g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="Detection Boundaries" + inkscape:highlight-color="#21d7f3" + style="display:inline" + sodipodi:insensitive="true"> + <path + id="path18240" + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" + sodipodi:nodetypes="cccc" + inkscape:label="Real Detection Boundary" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + sodipodi:insensitive="true"> + <g + id="g10990" + inkscape:label="Green Car" + transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" + style="display:inline"> + <path + id="rect5329-3" + style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> + <g + id="g2331" + inkscape:label="Paths" + style="display:inline" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + <g + id="g38512" + inkscape:label="Front Car" + style="display:inline;opacity:1" + transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> + <path + id="path38490" + style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> + <g + id="g38510" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + inkscape:label="Paths"> + <path + id="path38492" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="path38494" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="path38496" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38498" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38500" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path38502" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38504" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="path38506" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path38508" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:0.49761903;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" + d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" + id="path3202" + transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" + inkscape:label="BoundingBox" /> + </g> + </g> + <metadata + id="metadata551"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>Shadow Casting</dc:title> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/shadow_casting_step02.svg b/content/html/_images/shadow_casting_step02.svg index 87321c4d7d555fd43d359c016127e79188a03e6d..bb499c809611f9b3fdf7c6fa409daf6bb6ee92e3 100644 --- a/content/html/_images/shadow_casting_step02.svg +++ b/content/html/_images/shadow_casting_step02.svg @@ -1,664 +1,664 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="132.59012mm" - viewBox="0.5 0.5 209 131.95874" - version="1.1" - id="svg12177" - sodipodi:docname="shadow_casting_step2.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - inkscape:export-filename="shadowing_1.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title613">Shadow Casting</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="true" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1" - inkscape:cx="354.5" - inkscape:cy="334" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="3832" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="g38512" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <marker - style="overflow:visible" - id="TriangleStart" - refX="3" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="TriangleStart" - markerWidth="4" - markerHeight="4" - viewBox="0 0 5.3244081 6.1553851" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path135" /> - </marker> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-27" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-7" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-7" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-7" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-2" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-2" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-9" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-2" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-3" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-4" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-15" /> - </filter> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" - sodipodi:insensitive="true"> - <rect - style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="275.974" - height="146.24295" - x="-11.750484" - y="-7.352387" - inkscape:label="Grass" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline" - sodipodi:insensitive="true"> - <rect - style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="15.001317" - inkscape:label="LeftLane" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846-6" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="66.222809" - inkscape:label="RightLane" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,15.001317 H 209.99999" - id="path1858" - sodipodi:nodetypes="cc" - inkscape:label="Left Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,117.44429 H 209.99999" - id="path1858-1" - sodipodi:nodetypes="cc" - inkscape:label="Right Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.4336677e-6,66.222803 H 210" - id="path1858-1-7" - sodipodi:nodetypes="cc" - inkscape:label="Center Line" /> - </g> - <g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Ideal Detection Range" - style="display:none"> - <path - id="path2502" - style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covered Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" - sodipodi:nodetypes="ccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Detection Wrong Scale" - style="display:inline"> - <path - id="path11043" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" - sodipodi:nodetypes="ccccc" /> - <path - id="path2475" - style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Missing Area" - d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> - </g> - <g - inkscape:groupmode="layer" - id="g2828" - inkscape:label="Right Scale" - style="display:inline"> - <path - id="path3024" - style="display:none;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" - sodipodi:nodetypes="cccccccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="FinalShadow" - style="display:none"> - <path - id="path2822" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="m 184.40003,29.010416 -105.553601,49.126788 45.011331,3.951394 -1.65349,18.832762 -45.114188,-3.960647 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" /> - </g> - <g - inkscape:groupmode="layer" - id="layer1" - inkscape:label="Vectors" - inkscape:highlight-color="#f3f3f3" - style="display:inline"> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="M 46.337739,93.179263 78.738142,78.187858" - id="path29646" - inkscape:label="LeftVector" /> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="m 46.337739,93.179263 30.752264,3.781455" - id="path29995" - sodipodi:nodetypes="cc" - inkscape:label="RightVector" /> - </g> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="RightScaleBoundaries" - inkscape:highlight-color="#f3f3f3" - style="display:none"> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 85.936463,0.02544663 73.766699,132.56467" - id="path30189" - sodipodi:nodetypes="cc" - inkscape:label="InnerBound" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 187.27417,0.08465123 175.04379,132.38312" - id="path432" - sodipodi:nodetypes="cc" - inkscape:label="OutherBound" /> - </g> - <g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="Detection Boundaries" - inkscape:highlight-color="#21d7f3" - style="display:inline" - sodipodi:insensitive="true"> - <path - id="path18240" - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" - sodipodi:nodetypes="cccc" - inkscape:label="Real Detection Boundary" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - sodipodi:insensitive="true"> - <g - id="g10990" - inkscape:label="Green Car" - transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" - style="display:inline"> - <path - id="rect5329-3" - style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> - <g - id="g2331" - inkscape:label="Paths" - style="display:inline" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - <g - id="g38512" - inkscape:label="Front Car" - style="display:inline;opacity:1" - transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> - <path - id="path38490" - style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> - <g - id="g38510" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - inkscape:label="Paths"> - <path - id="path38492" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="path38494" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="path38496" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38498" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38500" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path38502" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38504" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="path38506" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path38508" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:0.49761903;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" - d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" - id="path3202" - transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" - inkscape:label="BoundingBox" /> - </g> - </g> - <metadata - id="metadata551"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>Shadow Casting</dc:title> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="132.59012mm" + viewBox="0.5 0.5 209 131.95874" + version="1.1" + id="svg12177" + sodipodi:docname="shadow_casting_step2.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:export-filename="shadowing_1.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title613">Shadow Casting</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="true" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1" + inkscape:cx="354.5" + inkscape:cy="334" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="3832" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="g38512" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <marker + style="overflow:visible" + id="TriangleStart" + refX="3" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="4" + markerHeight="4" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135" /> + </marker> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-27" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-7" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-7" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-7" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-2" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-2" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-9" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-2" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-3" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-4" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-15" /> + </filter> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" + sodipodi:insensitive="true"> + <rect + style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="275.974" + height="146.24295" + x="-11.750484" + y="-7.352387" + inkscape:label="Grass" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline" + sodipodi:insensitive="true"> + <rect + style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="15.001317" + inkscape:label="LeftLane" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846-6" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="66.222809" + inkscape:label="RightLane" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,15.001317 H 209.99999" + id="path1858" + sodipodi:nodetypes="cc" + inkscape:label="Left Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,117.44429 H 209.99999" + id="path1858-1" + sodipodi:nodetypes="cc" + inkscape:label="Right Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.4336677e-6,66.222803 H 210" + id="path1858-1-7" + sodipodi:nodetypes="cc" + inkscape:label="Center Line" /> + </g> + <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Ideal Detection Range" + style="display:none"> + <path + id="path2502" + style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covered Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" + sodipodi:nodetypes="ccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Detection Wrong Scale" + style="display:inline"> + <path + id="path11043" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" + sodipodi:nodetypes="ccccc" /> + <path + id="path2475" + style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Missing Area" + d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> + </g> + <g + inkscape:groupmode="layer" + id="g2828" + inkscape:label="Right Scale" + style="display:inline"> + <path + id="path3024" + style="display:none;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" + sodipodi:nodetypes="cccccccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="FinalShadow" + style="display:none"> + <path + id="path2822" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="m 184.40003,29.010416 -105.553601,49.126788 45.011331,3.951394 -1.65349,18.832762 -45.114188,-3.960647 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" /> + </g> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Vectors" + inkscape:highlight-color="#f3f3f3" + style="display:inline"> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="M 46.337739,93.179263 78.738142,78.187858" + id="path29646" + inkscape:label="LeftVector" /> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="m 46.337739,93.179263 30.752264,3.781455" + id="path29995" + sodipodi:nodetypes="cc" + inkscape:label="RightVector" /> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="RightScaleBoundaries" + inkscape:highlight-color="#f3f3f3" + style="display:none"> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 85.936463,0.02544663 73.766699,132.56467" + id="path30189" + sodipodi:nodetypes="cc" + inkscape:label="InnerBound" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 187.27417,0.08465123 175.04379,132.38312" + id="path432" + sodipodi:nodetypes="cc" + inkscape:label="OutherBound" /> + </g> + <g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="Detection Boundaries" + inkscape:highlight-color="#21d7f3" + style="display:inline" + sodipodi:insensitive="true"> + <path + id="path18240" + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" + sodipodi:nodetypes="cccc" + inkscape:label="Real Detection Boundary" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + sodipodi:insensitive="true"> + <g + id="g10990" + inkscape:label="Green Car" + transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" + style="display:inline"> + <path + id="rect5329-3" + style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> + <g + id="g2331" + inkscape:label="Paths" + style="display:inline" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + <g + id="g38512" + inkscape:label="Front Car" + style="display:inline;opacity:1" + transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> + <path + id="path38490" + style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> + <g + id="g38510" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + inkscape:label="Paths"> + <path + id="path38492" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="path38494" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="path38496" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38498" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38500" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path38502" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38504" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="path38506" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path38508" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:0.49761903;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" + d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" + id="path3202" + transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" + inkscape:label="BoundingBox" /> + </g> + </g> + <metadata + id="metadata551"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>Shadow Casting</dc:title> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/shadow_casting_step03.svg b/content/html/_images/shadow_casting_step03.svg index 46c1f03c560ead601b223a62abfdf740bcd11ad9..a9ca264f521296c489b6ca556bba1eabbdd78210 100644 --- a/content/html/_images/shadow_casting_step03.svg +++ b/content/html/_images/shadow_casting_step03.svg @@ -1,664 +1,664 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="132.59012mm" - viewBox="0.5 0.5 209 131.95874" - version="1.1" - id="svg12177" - sodipodi:docname="shadow_casting_step3.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - inkscape:export-filename="shadowing_1.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title613">Shadow Casting</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="true" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1" - inkscape:cx="354.5" - inkscape:cy="334" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="3832" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="g38512" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <marker - style="overflow:visible" - id="TriangleStart" - refX="3" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="TriangleStart" - markerWidth="4" - markerHeight="4" - viewBox="0 0 5.3244081 6.1553851" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path135" /> - </marker> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-27" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-7" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-7" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-7" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-2" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-2" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-9" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-2" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-3" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-4" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-15" /> - </filter> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" - sodipodi:insensitive="true"> - <rect - style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="275.974" - height="146.24295" - x="-11.750484" - y="-7.352387" - inkscape:label="Grass" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline" - sodipodi:insensitive="true"> - <rect - style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="15.001317" - inkscape:label="LeftLane" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846-6" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="66.222809" - inkscape:label="RightLane" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,15.001317 H 209.99999" - id="path1858" - sodipodi:nodetypes="cc" - inkscape:label="Left Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,117.44429 H 209.99999" - id="path1858-1" - sodipodi:nodetypes="cc" - inkscape:label="Right Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.4336677e-6,66.222803 H 210" - id="path1858-1-7" - sodipodi:nodetypes="cc" - inkscape:label="Center Line" /> - </g> - <g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Ideal Detection Range" - style="display:none"> - <path - id="path2502" - style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covered Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" - sodipodi:nodetypes="ccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Detection Wrong Scale" - style="display:none"> - <path - id="path11043" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" - sodipodi:nodetypes="ccccc" /> - <path - id="path2475" - style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Missing Area" - d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> - </g> - <g - inkscape:groupmode="layer" - id="g2828" - inkscape:label="Right Scale" - style="display:inline"> - <path - id="path3024" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" - sodipodi:nodetypes="cccccccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="FinalShadow" - style="display:none"> - <path - id="path2822" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="m 184.40003,29.010416 -105.553601,49.126788 45.011331,3.951394 -1.65349,18.832762 -45.114188,-3.960647 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" /> - </g> - <g - inkscape:groupmode="layer" - id="layer1" - inkscape:label="Vectors" - inkscape:highlight-color="#f3f3f3" - style="display:inline"> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="M 46.337739,93.179263 78.738142,78.187858" - id="path29646" - inkscape:label="LeftVector" /> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="m 46.337739,93.179263 30.752264,3.781455" - id="path29995" - sodipodi:nodetypes="cc" - inkscape:label="RightVector" /> - </g> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="RightScaleBoundaries" - inkscape:highlight-color="#f3f3f3" - style="display:inline"> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 85.936463,0.02544663 73.766699,132.56467" - id="path30189" - sodipodi:nodetypes="cc" - inkscape:label="InnerBound" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 187.27417,0.08465123 175.04379,132.38312" - id="path432" - sodipodi:nodetypes="cc" - inkscape:label="OutherBound" /> - </g> - <g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="Detection Boundaries" - inkscape:highlight-color="#21d7f3" - style="display:inline" - sodipodi:insensitive="true"> - <path - id="path18240" - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" - sodipodi:nodetypes="cccc" - inkscape:label="Real Detection Boundary" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - sodipodi:insensitive="true"> - <g - id="g10990" - inkscape:label="Green Car" - transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" - style="display:inline"> - <path - id="rect5329-3" - style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> - <g - id="g2331" - inkscape:label="Paths" - style="display:inline" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - <g - id="g38512" - inkscape:label="Front Car" - style="display:inline;opacity:1" - transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> - <path - id="path38490" - style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> - <g - id="g38510" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - inkscape:label="Paths"> - <path - id="path38492" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="path38494" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="path38496" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38498" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38500" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path38502" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38504" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="path38506" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path38508" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:0.49761903;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" - d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" - id="path3202" - transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" - inkscape:label="BoundingBox" /> - </g> - </g> - <metadata - id="metadata551"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>Shadow Casting</dc:title> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="132.59012mm" + viewBox="0.5 0.5 209 131.95874" + version="1.1" + id="svg12177" + sodipodi:docname="shadow_casting_step3.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:export-filename="shadowing_1.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title613">Shadow Casting</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="true" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1" + inkscape:cx="354.5" + inkscape:cy="334" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="3832" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="g38512" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <marker + style="overflow:visible" + id="TriangleStart" + refX="3" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="4" + markerHeight="4" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135" /> + </marker> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-27" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-7" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-7" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-7" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-2" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-2" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-9" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-2" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-3" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-4" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-15" /> + </filter> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" + sodipodi:insensitive="true"> + <rect + style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="275.974" + height="146.24295" + x="-11.750484" + y="-7.352387" + inkscape:label="Grass" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline" + sodipodi:insensitive="true"> + <rect + style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="15.001317" + inkscape:label="LeftLane" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846-6" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="66.222809" + inkscape:label="RightLane" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,15.001317 H 209.99999" + id="path1858" + sodipodi:nodetypes="cc" + inkscape:label="Left Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,117.44429 H 209.99999" + id="path1858-1" + sodipodi:nodetypes="cc" + inkscape:label="Right Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.4336677e-6,66.222803 H 210" + id="path1858-1-7" + sodipodi:nodetypes="cc" + inkscape:label="Center Line" /> + </g> + <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Ideal Detection Range" + style="display:none"> + <path + id="path2502" + style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covered Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" + sodipodi:nodetypes="ccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Detection Wrong Scale" + style="display:none"> + <path + id="path11043" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" + sodipodi:nodetypes="ccccc" /> + <path + id="path2475" + style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Missing Area" + d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> + </g> + <g + inkscape:groupmode="layer" + id="g2828" + inkscape:label="Right Scale" + style="display:inline"> + <path + id="path3024" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" + sodipodi:nodetypes="cccccccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="FinalShadow" + style="display:none"> + <path + id="path2822" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="m 184.40003,29.010416 -105.553601,49.126788 45.011331,3.951394 -1.65349,18.832762 -45.114188,-3.960647 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" /> + </g> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Vectors" + inkscape:highlight-color="#f3f3f3" + style="display:inline"> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="M 46.337739,93.179263 78.738142,78.187858" + id="path29646" + inkscape:label="LeftVector" /> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="m 46.337739,93.179263 30.752264,3.781455" + id="path29995" + sodipodi:nodetypes="cc" + inkscape:label="RightVector" /> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="RightScaleBoundaries" + inkscape:highlight-color="#f3f3f3" + style="display:inline"> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 85.936463,0.02544663 73.766699,132.56467" + id="path30189" + sodipodi:nodetypes="cc" + inkscape:label="InnerBound" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 187.27417,0.08465123 175.04379,132.38312" + id="path432" + sodipodi:nodetypes="cc" + inkscape:label="OutherBound" /> + </g> + <g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="Detection Boundaries" + inkscape:highlight-color="#21d7f3" + style="display:inline" + sodipodi:insensitive="true"> + <path + id="path18240" + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" + sodipodi:nodetypes="cccc" + inkscape:label="Real Detection Boundary" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + sodipodi:insensitive="true"> + <g + id="g10990" + inkscape:label="Green Car" + transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" + style="display:inline"> + <path + id="rect5329-3" + style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> + <g + id="g2331" + inkscape:label="Paths" + style="display:inline" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + <g + id="g38512" + inkscape:label="Front Car" + style="display:inline;opacity:1" + transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> + <path + id="path38490" + style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> + <g + id="g38510" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + inkscape:label="Paths"> + <path + id="path38492" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="path38494" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="path38496" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38498" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38500" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path38502" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38504" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="path38506" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path38508" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:0.49761903;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1;stroke-dasharray:none" + d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" + id="path3202" + transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" + inkscape:label="BoundingBox" /> + </g> + </g> + <metadata + id="metadata551"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>Shadow Casting</dc:title> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/shadow_casting_step04.svg b/content/html/_images/shadow_casting_step04.svg index 3123a9aa9646161a602e5e5ae84eb8bdf18b7cce..7b55dca0f13b4ea4fba88ab546bef92036e103ad 100644 --- a/content/html/_images/shadow_casting_step04.svg +++ b/content/html/_images/shadow_casting_step04.svg @@ -1,721 +1,721 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="132.59012mm" - viewBox="0.5 0.5 209 131.95874" - version="1.1" - id="svg12177" - sodipodi:docname="shadow_casting_step6.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - inkscape:export-filename="shadowing_1.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title613">Shadow Casting</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="true" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1.4142136" - inkscape:cx="351.78562" - inkscape:cy="269.40768" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="1912" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="layer9" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <marker - style="overflow:visible" - id="TriangleStart" - refX="3" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="TriangleStart" - markerWidth="4" - markerHeight="4" - viewBox="0 0 5.3244081 6.1553851" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path135" /> - </marker> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-27" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-7" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-7" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-7" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-2" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-2" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-9" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-2" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-3" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-4" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-15" /> - </filter> - <pattern - inkscape:collect="always" - xlink:href="#pattern19283" - id="pattern16514" - patternTransform="matrix(1.3611745,0.53642679,-0.53642679,1.3611745,130.63241,26.17283)" /> - <pattern - inkscape:collect="always" - xlink:href="#Strips1_1-5" - id="pattern19283" - patternTransform="matrix(0.19986498,0.19986498,-0.19986498,0.19986498,176.29042,62.413337)" /> - <pattern - inkscape:collect="always" - patternUnits="userSpaceOnUse" - width="2" - height="1" - patternTransform="translate(0,0) scale(10,10)" - id="Strips1_1-5" - inkscape:stockid="Stripes 1:1" - inkscape:isstock="true"> - <rect - style="fill:black;stroke:none" - x="0" - y="-0.5" - width="1" - height="2" - id="rect7558" /> - </pattern> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" - sodipodi:insensitive="true"> - <rect - style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="275.974" - height="146.24295" - x="-11.750484" - y="-7.352387" - inkscape:label="Grass" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline" - sodipodi:insensitive="true"> - <rect - style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="15.001317" - inkscape:label="LeftLane" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846-6" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="66.222809" - inkscape:label="RightLane" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,15.001317 H 209.99999" - id="path1858" - sodipodi:nodetypes="cc" - inkscape:label="Left Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,117.44429 H 209.99999" - id="path1858-1" - sodipodi:nodetypes="cc" - inkscape:label="Right Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.4336677e-6,66.222803 H 210" - id="path1858-1-7" - sodipodi:nodetypes="cc" - inkscape:label="Center Line" /> - </g> - <g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Ideal Detection Range" - style="display:none"> - <path - id="path2502" - style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covered Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" - sodipodi:nodetypes="ccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Detection Wrong Scale" - style="display:none"> - <path - id="path11043" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" - sodipodi:nodetypes="ccccc" /> - <path - id="path2475" - style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Missing Area" - d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> - </g> - <g - inkscape:groupmode="layer" - id="g2828" - inkscape:label="Right Scale" - style="display:none"> - <path - id="path3024" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" - sodipodi:nodetypes="cccccccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="FinalShadow" - style="display:inline"> - <path - id="path2822" - style="display:none;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="m 184.40003,29.010416 -105.553601,49.126788 45.011331,3.951394 -1.65349,18.832762 -45.114188,-3.960647 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" /> - </g> - <g - inkscape:groupmode="layer" - id="layer1" - inkscape:label="Vectors" - inkscape:highlight-color="#f3f3f3" - style="display:none"> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="M 46.337739,93.179263 78.738142,78.187858" - id="path29646" - inkscape:label="LeftVector" /> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="m 46.337739,93.179263 30.752264,3.781455" - id="path29995" - sodipodi:nodetypes="cc" - inkscape:label="RightVector" /> - </g> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="RightScaleBoundaries" - inkscape:highlight-color="#f3f3f3" - style="display:none"> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 85.936463,0.02544663 73.766699,132.56467" - id="path30189" - sodipodi:nodetypes="cc" - inkscape:label="InnerBound" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 187.27417,0.08465123 175.04379,132.38312" - id="path432" - sodipodi:nodetypes="cc" - inkscape:label="OutherBound" /> - </g> - <g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="Detection Boundaries" - inkscape:highlight-color="#21d7f3" - style="display:inline"> - <path - id="path18240" - style="font-variation-settings:normal;display:none;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" - sodipodi:nodetypes="cccc" - inkscape:label="Real Detection Boundary" /> - <path - style="font-variation-settings:normal;display:inline;opacity:0.25;vector-effect:none;fill:url(#pattern16514);fill-opacity:1;stroke:#000000;stroke-width:0.288487;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" - id="path11916" - sodipodi:type="arc" - sodipodi:cx="46.337891" - sodipodi:cy="93.179405" - sodipodi:rx="125.96057" - sodipodi:ry="125.96057" - sodipodi:start="5.7021866" - sodipodi:end="0.28341164" - sodipodi:arc-type="slice" - d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" - inkscape:label="Sensor Cone" /> - <path - id="path19159" - style="fill:#ffffff;stroke:#000000;stroke-width:0.49761904;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;font-variation-settings:normal;opacity:1;fill-opacity:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stop-color:#000000;stop-opacity:1" - d="m 46.337891,93.179405 105.292319,-69.134599 14.36545,29.788897 6.3028,39.345702 -5.02494,35.222705 z" - sodipodi:nodetypes="cccccc" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.59714285;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.1942857,0.59714285;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="path19615" - sodipodi:type="arc" - sodipodi:cx="46.337891" - sodipodi:cy="93.179405" - sodipodi:rx="125.96057" - sodipodi:ry="125.96057" - sodipodi:start="5.7021866" - sodipodi:end="0.28341164" - sodipodi:arc-type="slice" - d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" - inkscape:label="Sensor Cone Boundary" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - sodipodi:insensitive="true"> - <g - id="g10990" - inkscape:label="Green Car" - transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" - style="display:inline"> - <path - id="rect5329-3" - style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> - <g - id="g2331" - inkscape:label="Paths" - style="display:inline" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - <g - id="g38512" - inkscape:label="Front Car" - style="display:inline;opacity:1" - transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> - <path - id="path38490" - style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> - <g - id="g38510" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - inkscape:label="Paths"> - <path - id="path38492" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="path38494" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="path38496" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38498" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38500" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path38502" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38504" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="path38506" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path38508" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - <path - style="display:none;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" - id="path3202" - transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" - inkscape:label="BoundingBox" /> - </g> - </g> - <metadata - id="metadata551"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>Shadow Casting</dc:title> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="132.59012mm" + viewBox="0.5 0.5 209 131.95874" + version="1.1" + id="svg12177" + sodipodi:docname="shadow_casting_step6.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:export-filename="shadowing_1.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title613">Shadow Casting</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="true" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1.4142136" + inkscape:cx="351.78562" + inkscape:cy="269.40768" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="1912" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer9" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <marker + style="overflow:visible" + id="TriangleStart" + refX="3" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="4" + markerHeight="4" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135" /> + </marker> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-27" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-7" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-7" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-7" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-2" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-2" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-9" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-2" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-3" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-4" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-15" /> + </filter> + <pattern + inkscape:collect="always" + xlink:href="#pattern19283" + id="pattern16514" + patternTransform="matrix(1.3611745,0.53642679,-0.53642679,1.3611745,130.63241,26.17283)" /> + <pattern + inkscape:collect="always" + xlink:href="#Strips1_1-5" + id="pattern19283" + patternTransform="matrix(0.19986498,0.19986498,-0.19986498,0.19986498,176.29042,62.413337)" /> + <pattern + inkscape:collect="always" + patternUnits="userSpaceOnUse" + width="2" + height="1" + patternTransform="translate(0,0) scale(10,10)" + id="Strips1_1-5" + inkscape:stockid="Stripes 1:1" + inkscape:isstock="true"> + <rect + style="fill:black;stroke:none" + x="0" + y="-0.5" + width="1" + height="2" + id="rect7558" /> + </pattern> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" + sodipodi:insensitive="true"> + <rect + style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="275.974" + height="146.24295" + x="-11.750484" + y="-7.352387" + inkscape:label="Grass" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline" + sodipodi:insensitive="true"> + <rect + style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="15.001317" + inkscape:label="LeftLane" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846-6" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="66.222809" + inkscape:label="RightLane" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,15.001317 H 209.99999" + id="path1858" + sodipodi:nodetypes="cc" + inkscape:label="Left Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,117.44429 H 209.99999" + id="path1858-1" + sodipodi:nodetypes="cc" + inkscape:label="Right Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.4336677e-6,66.222803 H 210" + id="path1858-1-7" + sodipodi:nodetypes="cc" + inkscape:label="Center Line" /> + </g> + <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Ideal Detection Range" + style="display:none"> + <path + id="path2502" + style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covered Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" + sodipodi:nodetypes="ccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Detection Wrong Scale" + style="display:none"> + <path + id="path11043" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" + sodipodi:nodetypes="ccccc" /> + <path + id="path2475" + style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Missing Area" + d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> + </g> + <g + inkscape:groupmode="layer" + id="g2828" + inkscape:label="Right Scale" + style="display:none"> + <path + id="path3024" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" + sodipodi:nodetypes="cccccccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="FinalShadow" + style="display:inline"> + <path + id="path2822" + style="display:none;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="m 184.40003,29.010416 -105.553601,49.126788 45.011331,3.951394 -1.65349,18.832762 -45.114188,-3.960647 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" /> + </g> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Vectors" + inkscape:highlight-color="#f3f3f3" + style="display:none"> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="M 46.337739,93.179263 78.738142,78.187858" + id="path29646" + inkscape:label="LeftVector" /> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="m 46.337739,93.179263 30.752264,3.781455" + id="path29995" + sodipodi:nodetypes="cc" + inkscape:label="RightVector" /> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="RightScaleBoundaries" + inkscape:highlight-color="#f3f3f3" + style="display:none"> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 85.936463,0.02544663 73.766699,132.56467" + id="path30189" + sodipodi:nodetypes="cc" + inkscape:label="InnerBound" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 187.27417,0.08465123 175.04379,132.38312" + id="path432" + sodipodi:nodetypes="cc" + inkscape:label="OutherBound" /> + </g> + <g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="Detection Boundaries" + inkscape:highlight-color="#21d7f3" + style="display:inline"> + <path + id="path18240" + style="font-variation-settings:normal;display:none;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" + sodipodi:nodetypes="cccc" + inkscape:label="Real Detection Boundary" /> + <path + style="font-variation-settings:normal;display:inline;opacity:0.25;vector-effect:none;fill:url(#pattern16514);fill-opacity:1;stroke:#000000;stroke-width:0.288487;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" + id="path11916" + sodipodi:type="arc" + sodipodi:cx="46.337891" + sodipodi:cy="93.179405" + sodipodi:rx="125.96057" + sodipodi:ry="125.96057" + sodipodi:start="5.7021866" + sodipodi:end="0.28341164" + sodipodi:arc-type="slice" + d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" + inkscape:label="Sensor Cone" /> + <path + id="path19159" + style="fill:#ffffff;stroke:#000000;stroke-width:0.49761904;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;font-variation-settings:normal;opacity:1;fill-opacity:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stop-color:#000000;stop-opacity:1" + d="m 46.337891,93.179405 105.292319,-69.134599 14.36545,29.788897 6.3028,39.345702 -5.02494,35.222705 z" + sodipodi:nodetypes="cccccc" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.59714285;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.1942857,0.59714285;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="path19615" + sodipodi:type="arc" + sodipodi:cx="46.337891" + sodipodi:cy="93.179405" + sodipodi:rx="125.96057" + sodipodi:ry="125.96057" + sodipodi:start="5.7021866" + sodipodi:end="0.28341164" + sodipodi:arc-type="slice" + d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" + inkscape:label="Sensor Cone Boundary" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + sodipodi:insensitive="true"> + <g + id="g10990" + inkscape:label="Green Car" + transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" + style="display:inline"> + <path + id="rect5329-3" + style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> + <g + id="g2331" + inkscape:label="Paths" + style="display:inline" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + <g + id="g38512" + inkscape:label="Front Car" + style="display:inline;opacity:1" + transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> + <path + id="path38490" + style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> + <g + id="g38510" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + inkscape:label="Paths"> + <path + id="path38492" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="path38494" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="path38496" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38498" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38500" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path38502" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38504" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="path38506" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path38508" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + <path + style="display:none;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" + id="path3202" + transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" + inkscape:label="BoundingBox" /> + </g> + </g> + <metadata + id="metadata551"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>Shadow Casting</dc:title> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/shadow_casting_step05.svg b/content/html/_images/shadow_casting_step05.svg index 18c842b95b362bcdc74ade7e542d22638a403c60..a246540b662569301d65c1be893c2e685c842092 100644 --- a/content/html/_images/shadow_casting_step05.svg +++ b/content/html/_images/shadow_casting_step05.svg @@ -1,721 +1,721 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="132.59012mm" - viewBox="0.5 0.5 209 131.95874" - version="1.1" - id="svg12177" - sodipodi:docname="shadow_casting_step7.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - inkscape:export-filename="shadowing_1.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title613">Shadow Casting</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="true" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1.4142136" - inkscape:cx="351.78562" - inkscape:cy="269.40768" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="1912" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="layer6" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <marker - style="overflow:visible" - id="TriangleStart" - refX="3" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="TriangleStart" - markerWidth="4" - markerHeight="4" - viewBox="0 0 5.3244081 6.1553851" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path135" /> - </marker> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-27" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-7" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-7" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-7" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-2" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-2" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-9" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-2" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-3" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-4" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-15" /> - </filter> - <pattern - inkscape:collect="always" - xlink:href="#pattern19283" - id="pattern16514" - patternTransform="matrix(1.3611745,0.53642679,-0.53642679,1.3611745,130.63241,26.17283)" /> - <pattern - inkscape:collect="always" - xlink:href="#Strips1_1-5" - id="pattern19283" - patternTransform="matrix(0.19986498,0.19986498,-0.19986498,0.19986498,176.29042,62.413337)" /> - <pattern - inkscape:collect="always" - patternUnits="userSpaceOnUse" - width="2" - height="1" - patternTransform="translate(0,0) scale(10,10)" - id="Strips1_1-5" - inkscape:stockid="Stripes 1:1" - inkscape:isstock="true"> - <rect - style="fill:black;stroke:none" - x="0" - y="-0.5" - width="1" - height="2" - id="rect7558" /> - </pattern> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" - sodipodi:insensitive="true"> - <rect - style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="275.974" - height="146.24295" - x="-11.750484" - y="-7.352387" - inkscape:label="Grass" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline" - sodipodi:insensitive="true"> - <rect - style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="15.001317" - inkscape:label="LeftLane" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846-6" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="66.222809" - inkscape:label="RightLane" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,15.001317 H 209.99999" - id="path1858" - sodipodi:nodetypes="cc" - inkscape:label="Left Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,117.44429 H 209.99999" - id="path1858-1" - sodipodi:nodetypes="cc" - inkscape:label="Right Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.4336677e-6,66.222803 H 210" - id="path1858-1-7" - sodipodi:nodetypes="cc" - inkscape:label="Center Line" /> - </g> - <g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Ideal Detection Range" - style="display:none"> - <path - id="path2502" - style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covered Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" - sodipodi:nodetypes="ccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Detection Wrong Scale" - style="display:none"> - <path - id="path11043" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" - sodipodi:nodetypes="ccccc" /> - <path - id="path2475" - style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Missing Area" - d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> - </g> - <g - inkscape:groupmode="layer" - id="g2828" - inkscape:label="Right Scale" - style="display:none"> - <path - id="path3024" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" - sodipodi:nodetypes="cccccccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="FinalShadow" - style="display:inline"> - <path - id="path2822" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="m 184.40003,29.010416 -105.553601,49.126788 45.011331,3.951394 -1.65349,18.832762 -45.114188,-3.960647 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" /> - </g> - <g - inkscape:groupmode="layer" - id="layer1" - inkscape:label="Vectors" - inkscape:highlight-color="#f3f3f3" - style="display:none"> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="M 46.337739,93.179263 78.738142,78.187858" - id="path29646" - inkscape:label="LeftVector" /> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="m 46.337739,93.179263 30.752264,3.781455" - id="path29995" - sodipodi:nodetypes="cc" - inkscape:label="RightVector" /> - </g> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="RightScaleBoundaries" - inkscape:highlight-color="#f3f3f3" - style="display:none"> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 85.936463,0.02544663 73.766699,132.56467" - id="path30189" - sodipodi:nodetypes="cc" - inkscape:label="InnerBound" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 187.27417,0.08465123 175.04379,132.38312" - id="path432" - sodipodi:nodetypes="cc" - inkscape:label="OutherBound" /> - </g> - <g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="Detection Boundaries" - inkscape:highlight-color="#21d7f3" - style="display:inline"> - <path - id="path18240" - style="font-variation-settings:normal;display:none;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" - sodipodi:nodetypes="cccc" - inkscape:label="Real Detection Boundary" /> - <path - style="font-variation-settings:normal;display:none;opacity:0.25;vector-effect:none;fill:url(#pattern16514);fill-opacity:1;stroke:#000000;stroke-width:0.288487;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" - id="path11916" - sodipodi:type="arc" - sodipodi:cx="46.337891" - sodipodi:cy="93.179405" - sodipodi:rx="125.96057" - sodipodi:ry="125.96057" - sodipodi:start="5.7021866" - sodipodi:end="0.28341164" - sodipodi:arc-type="slice" - d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" - inkscape:label="Sensor Cone" /> - <path - id="path19159" - style="fill:#ffffff;stroke:none;stroke-width:0.49761904;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;font-variation-settings:normal;opacity:1;fill-opacity:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stop-color:#000000;stop-opacity:1" - d="m 46.337891,93.179405 105.292319,-69.134599 14.36545,29.788897 6.3028,39.345702 -5.02494,35.222705 z" - sodipodi:nodetypes="cccccc" /> - <path - style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.597143;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.19429, 0.597143;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="path19615" - sodipodi:type="arc" - sodipodi:cx="46.337891" - sodipodi:cy="93.179405" - sodipodi:rx="125.96057" - sodipodi:ry="125.96057" - sodipodi:start="5.7021866" - sodipodi:end="0.28341164" - sodipodi:arc-type="slice" - d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" - inkscape:label="Sensor Cone Boundary" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - sodipodi:insensitive="true"> - <g - id="g10990" - inkscape:label="Green Car" - transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" - style="display:inline"> - <path - id="rect5329-3" - style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> - <g - id="g2331" - inkscape:label="Paths" - style="display:inline" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - <g - id="g38512" - inkscape:label="Front Car" - style="display:inline;opacity:1" - transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> - <path - id="path38490" - style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> - <g - id="g38510" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - inkscape:label="Paths"> - <path - id="path38492" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="path38494" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="path38496" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38498" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38500" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path38502" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38504" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="path38506" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path38508" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - <path - style="display:none;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" - id="path3202" - transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" - inkscape:label="BoundingBox" /> - </g> - </g> - <metadata - id="metadata551"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>Shadow Casting</dc:title> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="132.59012mm" + viewBox="0.5 0.5 209 131.95874" + version="1.1" + id="svg12177" + sodipodi:docname="shadow_casting_step7.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:export-filename="shadowing_1.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title613">Shadow Casting</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="true" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1.4142136" + inkscape:cx="351.78562" + inkscape:cy="269.40768" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="1912" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer6" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <marker + style="overflow:visible" + id="TriangleStart" + refX="3" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="4" + markerHeight="4" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135" /> + </marker> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-27" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-7" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-7" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-7" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-2" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-2" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-9" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-2" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-3" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-4" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-15" /> + </filter> + <pattern + inkscape:collect="always" + xlink:href="#pattern19283" + id="pattern16514" + patternTransform="matrix(1.3611745,0.53642679,-0.53642679,1.3611745,130.63241,26.17283)" /> + <pattern + inkscape:collect="always" + xlink:href="#Strips1_1-5" + id="pattern19283" + patternTransform="matrix(0.19986498,0.19986498,-0.19986498,0.19986498,176.29042,62.413337)" /> + <pattern + inkscape:collect="always" + patternUnits="userSpaceOnUse" + width="2" + height="1" + patternTransform="translate(0,0) scale(10,10)" + id="Strips1_1-5" + inkscape:stockid="Stripes 1:1" + inkscape:isstock="true"> + <rect + style="fill:black;stroke:none" + x="0" + y="-0.5" + width="1" + height="2" + id="rect7558" /> + </pattern> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" + sodipodi:insensitive="true"> + <rect + style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="275.974" + height="146.24295" + x="-11.750484" + y="-7.352387" + inkscape:label="Grass" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline" + sodipodi:insensitive="true"> + <rect + style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="15.001317" + inkscape:label="LeftLane" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846-6" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="66.222809" + inkscape:label="RightLane" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,15.001317 H 209.99999" + id="path1858" + sodipodi:nodetypes="cc" + inkscape:label="Left Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,117.44429 H 209.99999" + id="path1858-1" + sodipodi:nodetypes="cc" + inkscape:label="Right Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.4336677e-6,66.222803 H 210" + id="path1858-1-7" + sodipodi:nodetypes="cc" + inkscape:label="Center Line" /> + </g> + <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Ideal Detection Range" + style="display:none"> + <path + id="path2502" + style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covered Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" + sodipodi:nodetypes="ccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Detection Wrong Scale" + style="display:none"> + <path + id="path11043" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" + sodipodi:nodetypes="ccccc" /> + <path + id="path2475" + style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Missing Area" + d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> + </g> + <g + inkscape:groupmode="layer" + id="g2828" + inkscape:label="Right Scale" + style="display:none"> + <path + id="path3024" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" + sodipodi:nodetypes="cccccccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="FinalShadow" + style="display:inline"> + <path + id="path2822" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="m 184.40003,29.010416 -105.553601,49.126788 45.011331,3.951394 -1.65349,18.832762 -45.114188,-3.960647 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" /> + </g> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Vectors" + inkscape:highlight-color="#f3f3f3" + style="display:none"> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="M 46.337739,93.179263 78.738142,78.187858" + id="path29646" + inkscape:label="LeftVector" /> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="m 46.337739,93.179263 30.752264,3.781455" + id="path29995" + sodipodi:nodetypes="cc" + inkscape:label="RightVector" /> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="RightScaleBoundaries" + inkscape:highlight-color="#f3f3f3" + style="display:none"> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 85.936463,0.02544663 73.766699,132.56467" + id="path30189" + sodipodi:nodetypes="cc" + inkscape:label="InnerBound" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 187.27417,0.08465123 175.04379,132.38312" + id="path432" + sodipodi:nodetypes="cc" + inkscape:label="OutherBound" /> + </g> + <g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="Detection Boundaries" + inkscape:highlight-color="#21d7f3" + style="display:inline"> + <path + id="path18240" + style="font-variation-settings:normal;display:none;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" + sodipodi:nodetypes="cccc" + inkscape:label="Real Detection Boundary" /> + <path + style="font-variation-settings:normal;display:none;opacity:0.25;vector-effect:none;fill:url(#pattern16514);fill-opacity:1;stroke:#000000;stroke-width:0.288487;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" + id="path11916" + sodipodi:type="arc" + sodipodi:cx="46.337891" + sodipodi:cy="93.179405" + sodipodi:rx="125.96057" + sodipodi:ry="125.96057" + sodipodi:start="5.7021866" + sodipodi:end="0.28341164" + sodipodi:arc-type="slice" + d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" + inkscape:label="Sensor Cone" /> + <path + id="path19159" + style="fill:#ffffff;stroke:none;stroke-width:0.49761904;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;font-variation-settings:normal;opacity:1;fill-opacity:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stop-color:#000000;stop-opacity:1" + d="m 46.337891,93.179405 105.292319,-69.134599 14.36545,29.788897 6.3028,39.345702 -5.02494,35.222705 z" + sodipodi:nodetypes="cccccc" /> + <path + style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.597143;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.19429, 0.597143;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="path19615" + sodipodi:type="arc" + sodipodi:cx="46.337891" + sodipodi:cy="93.179405" + sodipodi:rx="125.96057" + sodipodi:ry="125.96057" + sodipodi:start="5.7021866" + sodipodi:end="0.28341164" + sodipodi:arc-type="slice" + d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" + inkscape:label="Sensor Cone Boundary" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + sodipodi:insensitive="true"> + <g + id="g10990" + inkscape:label="Green Car" + transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" + style="display:inline"> + <path + id="rect5329-3" + style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> + <g + id="g2331" + inkscape:label="Paths" + style="display:inline" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + <g + id="g38512" + inkscape:label="Front Car" + style="display:inline;opacity:1" + transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> + <path + id="path38490" + style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> + <g + id="g38510" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + inkscape:label="Paths"> + <path + id="path38492" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="path38494" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="path38496" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38498" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38500" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path38502" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38504" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="path38506" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path38508" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + <path + style="display:none;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" + id="path3202" + transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" + inkscape:label="BoundingBox" /> + </g> + </g> + <metadata + id="metadata551"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>Shadow Casting</dc:title> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/shadow_casting_step06.svg b/content/html/_images/shadow_casting_step06.svg index 570d8a84ecfe6193f8bddc7e7bfa99e61026fb23..3592335875c07c4f4cbb151ff4297f03cc7d493a 100644 --- a/content/html/_images/shadow_casting_step06.svg +++ b/content/html/_images/shadow_casting_step06.svg @@ -1,714 +1,714 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="132.59012mm" - viewBox="0.5 0.5 209 131.95874" - version="1.1" - id="svg12177" - sodipodi:docname="shadow_casting_step8.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - inkscape:export-filename="shadowing_1.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title613">Shadow Casting</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="true" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1" - inkscape:cx="237.5" - inkscape:cy="338" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="1912" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="layer6" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <marker - style="overflow:visible" - id="TriangleStart" - refX="3" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="TriangleStart" - markerWidth="4" - markerHeight="4" - viewBox="0 0 5.3244081 6.1553851" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path135" /> - </marker> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-27" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-7" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-7" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-7" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-2" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-2" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-9" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-2" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-3" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-4" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-15" /> - </filter> - <pattern - inkscape:collect="always" - xlink:href="#pattern19283" - id="pattern16514" - patternTransform="matrix(1.3611745,0.53642679,-0.53642679,1.3611745,130.63241,26.17283)" /> - <pattern - inkscape:collect="always" - xlink:href="#Strips1_1-5" - id="pattern19283" - patternTransform="matrix(0.19986498,0.19986498,-0.19986498,0.19986498,176.29042,62.413337)" /> - <pattern - inkscape:collect="always" - patternUnits="userSpaceOnUse" - width="2" - height="1" - patternTransform="translate(0,0) scale(10,10)" - id="Strips1_1-5" - inkscape:stockid="Stripes 1:1" - inkscape:isstock="true"> - <rect - style="fill:black;stroke:none" - x="0" - y="-0.5" - width="1" - height="2" - id="rect7558" /> - </pattern> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" - sodipodi:insensitive="true"> - <rect - style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="275.974" - height="146.24295" - x="-11.750484" - y="-7.352387" - inkscape:label="Grass" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline" - sodipodi:insensitive="true"> - <rect - style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="15.001317" - inkscape:label="LeftLane" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846-6" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="66.222809" - inkscape:label="RightLane" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,15.001317 H 209.99999" - id="path1858" - sodipodi:nodetypes="cc" - inkscape:label="Left Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,117.44429 H 209.99999" - id="path1858-1" - sodipodi:nodetypes="cc" - inkscape:label="Right Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.4336677e-6,66.222803 H 210" - id="path1858-1-7" - sodipodi:nodetypes="cc" - inkscape:label="Center Line" /> - </g> - <g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Ideal Detection Range" - style="display:none"> - <path - id="path2502" - style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covered Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" - sodipodi:nodetypes="ccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Detection Wrong Scale" - style="display:none"> - <path - id="path11043" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" - sodipodi:nodetypes="ccccc" /> - <path - id="path2475" - style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Missing Area" - d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> - </g> - <g - inkscape:groupmode="layer" - id="g2828" - inkscape:label="Right Scale" - style="display:none"> - <path - id="path3024" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" - sodipodi:nodetypes="cccccccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="FinalShadow" - style="display:inline" /> - <g - inkscape:groupmode="layer" - id="layer1" - inkscape:label="Vectors" - inkscape:highlight-color="#f3f3f3" - style="display:none"> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="M 46.337739,93.179263 78.738142,78.187858" - id="path29646" - inkscape:label="LeftVector" /> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="m 46.337739,93.179263 30.752264,3.781455" - id="path29995" - sodipodi:nodetypes="cc" - inkscape:label="RightVector" /> - </g> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="RightScaleBoundaries" - inkscape:highlight-color="#f3f3f3" - style="display:none"> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 85.936463,0.02544663 73.766699,132.56467" - id="path30189" - sodipodi:nodetypes="cc" - inkscape:label="InnerBound" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 187.27417,0.08465123 175.04379,132.38312" - id="path432" - sodipodi:nodetypes="cc" - inkscape:label="OutherBound" /> - </g> - <g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="Detection Boundaries" - inkscape:highlight-color="#21d7f3" - style="display:inline"> - <path - id="path18240" - style="font-variation-settings:normal;display:none;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" - sodipodi:nodetypes="cccc" - inkscape:label="Real Detection Boundary" /> - <path - style="font-variation-settings:normal;display:none;opacity:0.25;vector-effect:none;fill:url(#pattern16514);fill-opacity:1;stroke:#000000;stroke-width:0.288487;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" - id="path11916" - sodipodi:type="arc" - sodipodi:cx="46.337891" - sodipodi:cy="93.179405" - sodipodi:rx="125.96057" - sodipodi:ry="125.96057" - sodipodi:start="5.7021866" - sodipodi:end="0.28341164" - sodipodi:arc-type="slice" - d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" - inkscape:label="Sensor Cone" /> - <path - id="path19159" - style="fill:#ffffff;stroke:none;stroke-width:0.49761904;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;font-variation-settings:normal;opacity:1;fill-opacity:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stop-color:#000000;stop-opacity:1" - d="M 151.63015 24.044816 L 46.337817 93.179554 L 167.27372 128.40215 L 170.10702 108.54231 L 154.65066 106.61779 L 77.090082 96.960713 L 78.737911 78.187606 L 78.738425 78.187606 L 77.090082 96.960713 L 122.20427 100.92136 L 123.85776 82.088598 L 78.846429 78.137204 L 159.5926 40.556016 L 151.63015 24.044816 z " /> - <path - style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.597143;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.19429, 0.597143;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="path19615" - sodipodi:type="arc" - sodipodi:cx="46.337891" - sodipodi:cy="93.179405" - sodipodi:rx="125.96057" - sodipodi:ry="125.96057" - sodipodi:start="5.7021866" - sodipodi:end="0.28341164" - sodipodi:arc-type="slice" - d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" - inkscape:label="Sensor Cone Boundary" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - sodipodi:insensitive="true"> - <g - id="g10990" - inkscape:label="Green Car" - transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" - style="display:inline"> - <path - id="rect5329-3" - style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> - <g - id="g2331" - inkscape:label="Paths" - style="display:inline" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - <g - id="g38512" - inkscape:label="Front Car" - style="display:inline;opacity:1" - transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> - <path - id="path38490" - style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> - <g - id="g38510" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - inkscape:label="Paths"> - <path - id="path38492" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="path38494" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="path38496" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38498" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38500" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path38502" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38504" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="path38506" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path38508" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - <path - style="display:none;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" - id="path3202" - transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" - inkscape:label="BoundingBox" /> - </g> - </g> - <metadata - id="metadata551"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>Shadow Casting</dc:title> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="132.59012mm" + viewBox="0.5 0.5 209 131.95874" + version="1.1" + id="svg12177" + sodipodi:docname="shadow_casting_step8.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:export-filename="shadowing_1.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title613">Shadow Casting</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="true" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1" + inkscape:cx="237.5" + inkscape:cy="338" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="1912" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer6" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <marker + style="overflow:visible" + id="TriangleStart" + refX="3" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="4" + markerHeight="4" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135" /> + </marker> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-27" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-7" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-7" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-7" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-2" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-2" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-9" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-2" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-3" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-4" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-15" /> + </filter> + <pattern + inkscape:collect="always" + xlink:href="#pattern19283" + id="pattern16514" + patternTransform="matrix(1.3611745,0.53642679,-0.53642679,1.3611745,130.63241,26.17283)" /> + <pattern + inkscape:collect="always" + xlink:href="#Strips1_1-5" + id="pattern19283" + patternTransform="matrix(0.19986498,0.19986498,-0.19986498,0.19986498,176.29042,62.413337)" /> + <pattern + inkscape:collect="always" + patternUnits="userSpaceOnUse" + width="2" + height="1" + patternTransform="translate(0,0) scale(10,10)" + id="Strips1_1-5" + inkscape:stockid="Stripes 1:1" + inkscape:isstock="true"> + <rect + style="fill:black;stroke:none" + x="0" + y="-0.5" + width="1" + height="2" + id="rect7558" /> + </pattern> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" + sodipodi:insensitive="true"> + <rect + style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="275.974" + height="146.24295" + x="-11.750484" + y="-7.352387" + inkscape:label="Grass" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline" + sodipodi:insensitive="true"> + <rect + style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="15.001317" + inkscape:label="LeftLane" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846-6" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="66.222809" + inkscape:label="RightLane" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,15.001317 H 209.99999" + id="path1858" + sodipodi:nodetypes="cc" + inkscape:label="Left Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,117.44429 H 209.99999" + id="path1858-1" + sodipodi:nodetypes="cc" + inkscape:label="Right Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.4336677e-6,66.222803 H 210" + id="path1858-1-7" + sodipodi:nodetypes="cc" + inkscape:label="Center Line" /> + </g> + <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Ideal Detection Range" + style="display:none"> + <path + id="path2502" + style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covered Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" + sodipodi:nodetypes="ccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Detection Wrong Scale" + style="display:none"> + <path + id="path11043" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" + sodipodi:nodetypes="ccccc" /> + <path + id="path2475" + style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Missing Area" + d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> + </g> + <g + inkscape:groupmode="layer" + id="g2828" + inkscape:label="Right Scale" + style="display:none"> + <path + id="path3024" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" + sodipodi:nodetypes="cccccccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="FinalShadow" + style="display:inline" /> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Vectors" + inkscape:highlight-color="#f3f3f3" + style="display:none"> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="M 46.337739,93.179263 78.738142,78.187858" + id="path29646" + inkscape:label="LeftVector" /> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="m 46.337739,93.179263 30.752264,3.781455" + id="path29995" + sodipodi:nodetypes="cc" + inkscape:label="RightVector" /> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="RightScaleBoundaries" + inkscape:highlight-color="#f3f3f3" + style="display:none"> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 85.936463,0.02544663 73.766699,132.56467" + id="path30189" + sodipodi:nodetypes="cc" + inkscape:label="InnerBound" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 187.27417,0.08465123 175.04379,132.38312" + id="path432" + sodipodi:nodetypes="cc" + inkscape:label="OutherBound" /> + </g> + <g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="Detection Boundaries" + inkscape:highlight-color="#21d7f3" + style="display:inline"> + <path + id="path18240" + style="font-variation-settings:normal;display:none;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" + sodipodi:nodetypes="cccc" + inkscape:label="Real Detection Boundary" /> + <path + style="font-variation-settings:normal;display:none;opacity:0.25;vector-effect:none;fill:url(#pattern16514);fill-opacity:1;stroke:#000000;stroke-width:0.288487;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" + id="path11916" + sodipodi:type="arc" + sodipodi:cx="46.337891" + sodipodi:cy="93.179405" + sodipodi:rx="125.96057" + sodipodi:ry="125.96057" + sodipodi:start="5.7021866" + sodipodi:end="0.28341164" + sodipodi:arc-type="slice" + d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" + inkscape:label="Sensor Cone" /> + <path + id="path19159" + style="fill:#ffffff;stroke:none;stroke-width:0.49761904;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;font-variation-settings:normal;opacity:1;fill-opacity:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stop-color:#000000;stop-opacity:1" + d="M 151.63015 24.044816 L 46.337817 93.179554 L 167.27372 128.40215 L 170.10702 108.54231 L 154.65066 106.61779 L 77.090082 96.960713 L 78.737911 78.187606 L 78.738425 78.187606 L 77.090082 96.960713 L 122.20427 100.92136 L 123.85776 82.088598 L 78.846429 78.137204 L 159.5926 40.556016 L 151.63015 24.044816 z " /> + <path + style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.597143;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.19429, 0.597143;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="path19615" + sodipodi:type="arc" + sodipodi:cx="46.337891" + sodipodi:cy="93.179405" + sodipodi:rx="125.96057" + sodipodi:ry="125.96057" + sodipodi:start="5.7021866" + sodipodi:end="0.28341164" + sodipodi:arc-type="slice" + d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" + inkscape:label="Sensor Cone Boundary" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + sodipodi:insensitive="true"> + <g + id="g10990" + inkscape:label="Green Car" + transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" + style="display:inline"> + <path + id="rect5329-3" + style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> + <g + id="g2331" + inkscape:label="Paths" + style="display:inline" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + <g + id="g38512" + inkscape:label="Front Car" + style="display:inline;opacity:1" + transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> + <path + id="path38490" + style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> + <g + id="g38510" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + inkscape:label="Paths"> + <path + id="path38492" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="path38494" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="path38496" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38498" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38500" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path38502" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38504" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="path38506" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path38508" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + <path + style="display:none;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" + id="path3202" + transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" + inkscape:label="BoundingBox" /> + </g> + </g> + <metadata + id="metadata551"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>Shadow Casting</dc:title> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/shadow_casting_step07.svg b/content/html/_images/shadow_casting_step07.svg index 4de5d208177ea2a8914cc8cf25597df3c47797e8..17b2eb9ee7ebc6ddebb85868e184b65c2c50d49d 100644 --- a/content/html/_images/shadow_casting_step07.svg +++ b/content/html/_images/shadow_casting_step07.svg @@ -1,809 +1,809 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="132.59012mm" - viewBox="0.5 0.5 209 131.95874" - version="1.1" - id="svg12177" - sodipodi:docname="multiple_shadow_casting_step8.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - inkscape:export-filename="shadowing_1.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title613">Shadow Casting</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="true" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1" - inkscape:cx="444.5" - inkscape:cy="368" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="1912" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="layer6" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <marker - style="overflow:visible" - id="TriangleStart" - refX="3" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="TriangleStart" - markerWidth="4" - markerHeight="4" - viewBox="0 0 5.3244081 6.1553851" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path135" /> - </marker> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-27" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-7" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-7" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-7" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-2" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-2" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-9" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-2" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-3" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-4" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-15" /> - </filter> - <pattern - inkscape:collect="always" - xlink:href="#pattern19283" - id="pattern16514" - patternTransform="matrix(1.3611745,0.53642679,-0.53642679,1.3611745,130.63241,26.17283)" /> - <pattern - inkscape:collect="always" - xlink:href="#Strips1_1-5" - id="pattern19283" - patternTransform="matrix(0.19986498,0.19986498,-0.19986498,0.19986498,176.29042,62.413337)" /> - <pattern - inkscape:collect="always" - patternUnits="userSpaceOnUse" - width="2" - height="1" - patternTransform="translate(0,0) scale(10,10)" - id="Strips1_1-5" - inkscape:stockid="Stripes 1:1" - inkscape:isstock="true"> - <rect - style="fill:black;stroke:none" - x="0" - y="-0.5" - width="1" - height="2" - id="rect7558" /> - </pattern> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" - sodipodi:insensitive="true"> - <rect - style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="275.974" - height="146.24295" - x="-11.750484" - y="-7.352387" - inkscape:label="Grass" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline" - sodipodi:insensitive="true"> - <rect - style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="15.001317" - inkscape:label="LeftLane" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846-6" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="66.222809" - inkscape:label="RightLane" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,15.001317 H 209.99999" - id="path1858" - sodipodi:nodetypes="cc" - inkscape:label="Left Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,117.44429 H 209.99999" - id="path1858-1" - sodipodi:nodetypes="cc" - inkscape:label="Right Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.4336677e-6,66.222803 H 210" - id="path1858-1-7" - sodipodi:nodetypes="cc" - inkscape:label="Center Line" /> - </g> - <g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Ideal Detection Range" - style="display:none"> - <path - id="path2502" - style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covered Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" - sodipodi:nodetypes="ccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Detection Wrong Scale" - style="display:none"> - <path - id="path11043" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" - sodipodi:nodetypes="ccccc" /> - <path - id="path2475" - style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Missing Area" - d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> - </g> - <g - inkscape:groupmode="layer" - id="g2828" - inkscape:label="Right Scale" - style="display:none"> - <path - id="path3024" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" - sodipodi:nodetypes="cccccccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="FinalShadow" - style="display:inline" /> - <g - inkscape:groupmode="layer" - id="layer1" - inkscape:label="Vectors" - inkscape:highlight-color="#f3f3f3" - style="display:none"> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="M 46.337739,93.179263 78.738142,78.187858" - id="path29646" - inkscape:label="LeftVector" /> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="m 46.337739,93.179263 30.752264,3.781455" - id="path29995" - sodipodi:nodetypes="cc" - inkscape:label="RightVector" /> - </g> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="RightScaleBoundaries" - inkscape:highlight-color="#f3f3f3" - style="display:none"> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 85.936463,0.02544663 73.766699,132.56467" - id="path30189" - sodipodi:nodetypes="cc" - inkscape:label="InnerBound" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 187.27417,0.08465123 175.04379,132.38312" - id="path432" - sodipodi:nodetypes="cc" - inkscape:label="OutherBound" /> - </g> - <g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="Detection Boundaries" - inkscape:highlight-color="#21d7f3" - style="display:inline"> - <path - id="path18240" - style="font-variation-settings:normal;display:none;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" - sodipodi:nodetypes="cccc" - inkscape:label="Real Detection Boundary" /> - <path - style="font-variation-settings:normal;display:none;opacity:0.25;vector-effect:none;fill:url(#pattern16514);fill-opacity:1;stroke:#000000;stroke-width:0.288487;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" - id="path11916" - sodipodi:type="arc" - sodipodi:cx="46.337891" - sodipodi:cy="93.179405" - sodipodi:rx="125.96057" - sodipodi:ry="125.96057" - sodipodi:start="5.7021866" - sodipodi:end="0.28341164" - sodipodi:arc-type="slice" - d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" - inkscape:label="Sensor Cone" /> - <path - id="path19159" - style="font-variation-settings:normal;display:inline;opacity:1;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.497619;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="M 151.63015,24.044816 46.337817,93.179554 167.27372,128.40215 l 2.8333,-19.85984 -15.45636,-1.92452 -77.560578,-9.657077 1.647829,-18.773107 h 5.14e-4 L 77.090082,96.960713 122.20427,100.92136 123.85776,82.088598 78.846429,78.137204 159.5926,40.556016 Z" /> - <path - style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.597143;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.19429, 0.597143;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="path19615" - sodipodi:type="arc" - sodipodi:cx="46.337891" - sodipodi:cy="93.179405" - sodipodi:rx="125.96057" - sodipodi:ry="125.96057" - sodipodi:start="5.7021866" - sodipodi:end="0.28341164" - sodipodi:arc-type="slice" - d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" - inkscape:label="Sensor Cone Boundary" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.597143;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.19429, 0.597143;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="path1530" - sodipodi:type="arc" - sodipodi:cx="46.337891" - sodipodi:cy="93.179405" - sodipodi:rx="125.96057" - sodipodi:ry="125.96057" - sodipodi:start="6.2392576" - sodipodi:end="0.24814292" - sodipodi:arc-type="slice" - d="m 172.17695,87.648025 a 125.96057,125.96057 0 0 1 -3.73664,36.467825 L 46.337891,93.179405 Z" - inkscape:label="2nd Detection Boundary" /> - <path - id="path1611" - style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ffccaa;fill-opacity:0.5;stroke:none;stroke-width:0.497619;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="m 130.63461,114.19608 44.60212,-7.85075 -3.05978,-18.697305 37.82954,-1.680521 -0.004,16.589156 -35.93607,22.98457 z" - sodipodi:nodetypes="ccccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - sodipodi:insensitive="true"> - <g - id="g10990" - inkscape:label="Green Car" - transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" - style="display:inline"> - <path - id="rect5329-3" - style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> - <g - id="g2331" - inkscape:label="Paths" - style="display:inline" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - <g - id="g38512" - inkscape:label="Front Car" - style="display:inline;opacity:1" - transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> - <path - id="path38490" - style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> - <g - id="g38510" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - inkscape:label="Paths"> - <path - id="path38492" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="path38494" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="path38496" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38498" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38500" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path38502" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38504" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="path38506" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path38508" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - <path - style="display:none;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" - id="path3202" - transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" - inkscape:label="BoundingBox" /> - </g> - <g - id="g364" - inkscape:label="Second Front Car" - style="display:inline;opacity:1" - transform="matrix(1.4412823,-0.25260466,0.25260466,1.4412823,145.30618,53.2395)"> - <path - id="path340" - style="display:inline;opacity:1;fill:#ff9955;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> - <g - id="g360" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - inkscape:label="Paths"> - <path - id="path342" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="path344" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="path346" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path348" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path350" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path352" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path354" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="path356" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path358" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" - id="path362" - transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" - inkscape:label="BoundingBox" /> - </g> - </g> - <metadata - id="metadata551"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>Shadow Casting</dc:title> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="132.59012mm" + viewBox="0.5 0.5 209 131.95874" + version="1.1" + id="svg12177" + sodipodi:docname="multiple_shadow_casting_step8.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:export-filename="shadowing_1.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title613">Shadow Casting</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="true" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1" + inkscape:cx="444.5" + inkscape:cy="368" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="1912" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer6" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <marker + style="overflow:visible" + id="TriangleStart" + refX="3" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="4" + markerHeight="4" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135" /> + </marker> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-27" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-7" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-7" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-7" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-2" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-2" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-9" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-2" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-3" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-4" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-15" /> + </filter> + <pattern + inkscape:collect="always" + xlink:href="#pattern19283" + id="pattern16514" + patternTransform="matrix(1.3611745,0.53642679,-0.53642679,1.3611745,130.63241,26.17283)" /> + <pattern + inkscape:collect="always" + xlink:href="#Strips1_1-5" + id="pattern19283" + patternTransform="matrix(0.19986498,0.19986498,-0.19986498,0.19986498,176.29042,62.413337)" /> + <pattern + inkscape:collect="always" + patternUnits="userSpaceOnUse" + width="2" + height="1" + patternTransform="translate(0,0) scale(10,10)" + id="Strips1_1-5" + inkscape:stockid="Stripes 1:1" + inkscape:isstock="true"> + <rect + style="fill:black;stroke:none" + x="0" + y="-0.5" + width="1" + height="2" + id="rect7558" /> + </pattern> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" + sodipodi:insensitive="true"> + <rect + style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="275.974" + height="146.24295" + x="-11.750484" + y="-7.352387" + inkscape:label="Grass" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline" + sodipodi:insensitive="true"> + <rect + style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="15.001317" + inkscape:label="LeftLane" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846-6" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="66.222809" + inkscape:label="RightLane" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,15.001317 H 209.99999" + id="path1858" + sodipodi:nodetypes="cc" + inkscape:label="Left Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,117.44429 H 209.99999" + id="path1858-1" + sodipodi:nodetypes="cc" + inkscape:label="Right Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.4336677e-6,66.222803 H 210" + id="path1858-1-7" + sodipodi:nodetypes="cc" + inkscape:label="Center Line" /> + </g> + <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Ideal Detection Range" + style="display:none"> + <path + id="path2502" + style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covered Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" + sodipodi:nodetypes="ccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Detection Wrong Scale" + style="display:none"> + <path + id="path11043" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" + sodipodi:nodetypes="ccccc" /> + <path + id="path2475" + style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Missing Area" + d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> + </g> + <g + inkscape:groupmode="layer" + id="g2828" + inkscape:label="Right Scale" + style="display:none"> + <path + id="path3024" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" + sodipodi:nodetypes="cccccccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="FinalShadow" + style="display:inline" /> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Vectors" + inkscape:highlight-color="#f3f3f3" + style="display:none"> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="M 46.337739,93.179263 78.738142,78.187858" + id="path29646" + inkscape:label="LeftVector" /> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="m 46.337739,93.179263 30.752264,3.781455" + id="path29995" + sodipodi:nodetypes="cc" + inkscape:label="RightVector" /> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="RightScaleBoundaries" + inkscape:highlight-color="#f3f3f3" + style="display:none"> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 85.936463,0.02544663 73.766699,132.56467" + id="path30189" + sodipodi:nodetypes="cc" + inkscape:label="InnerBound" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 187.27417,0.08465123 175.04379,132.38312" + id="path432" + sodipodi:nodetypes="cc" + inkscape:label="OutherBound" /> + </g> + <g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="Detection Boundaries" + inkscape:highlight-color="#21d7f3" + style="display:inline"> + <path + id="path18240" + style="font-variation-settings:normal;display:none;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" + sodipodi:nodetypes="cccc" + inkscape:label="Real Detection Boundary" /> + <path + style="font-variation-settings:normal;display:none;opacity:0.25;vector-effect:none;fill:url(#pattern16514);fill-opacity:1;stroke:#000000;stroke-width:0.288487;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" + id="path11916" + sodipodi:type="arc" + sodipodi:cx="46.337891" + sodipodi:cy="93.179405" + sodipodi:rx="125.96057" + sodipodi:ry="125.96057" + sodipodi:start="5.7021866" + sodipodi:end="0.28341164" + sodipodi:arc-type="slice" + d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" + inkscape:label="Sensor Cone" /> + <path + id="path19159" + style="font-variation-settings:normal;display:inline;opacity:1;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.497619;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" + d="M 151.63015,24.044816 46.337817,93.179554 167.27372,128.40215 l 2.8333,-19.85984 -15.45636,-1.92452 -77.560578,-9.657077 1.647829,-18.773107 h 5.14e-4 L 77.090082,96.960713 122.20427,100.92136 123.85776,82.088598 78.846429,78.137204 159.5926,40.556016 Z" /> + <path + style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.597143;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.19429, 0.597143;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="path19615" + sodipodi:type="arc" + sodipodi:cx="46.337891" + sodipodi:cy="93.179405" + sodipodi:rx="125.96057" + sodipodi:ry="125.96057" + sodipodi:start="5.7021866" + sodipodi:end="0.28341164" + sodipodi:arc-type="slice" + d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" + inkscape:label="Sensor Cone Boundary" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.597143;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.19429, 0.597143;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="path1530" + sodipodi:type="arc" + sodipodi:cx="46.337891" + sodipodi:cy="93.179405" + sodipodi:rx="125.96057" + sodipodi:ry="125.96057" + sodipodi:start="6.2392576" + sodipodi:end="0.24814292" + sodipodi:arc-type="slice" + d="m 172.17695,87.648025 a 125.96057,125.96057 0 0 1 -3.73664,36.467825 L 46.337891,93.179405 Z" + inkscape:label="2nd Detection Boundary" /> + <path + id="path1611" + style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ffccaa;fill-opacity:0.5;stroke:none;stroke-width:0.497619;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="m 130.63461,114.19608 44.60212,-7.85075 -3.05978,-18.697305 37.82954,-1.680521 -0.004,16.589156 -35.93607,22.98457 z" + sodipodi:nodetypes="ccccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + sodipodi:insensitive="true"> + <g + id="g10990" + inkscape:label="Green Car" + transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" + style="display:inline"> + <path + id="rect5329-3" + style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> + <g + id="g2331" + inkscape:label="Paths" + style="display:inline" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + <g + id="g38512" + inkscape:label="Front Car" + style="display:inline;opacity:1" + transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> + <path + id="path38490" + style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> + <g + id="g38510" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + inkscape:label="Paths"> + <path + id="path38492" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="path38494" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="path38496" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38498" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38500" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path38502" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38504" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="path38506" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path38508" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + <path + style="display:none;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" + id="path3202" + transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" + inkscape:label="BoundingBox" /> + </g> + <g + id="g364" + inkscape:label="Second Front Car" + style="display:inline;opacity:1" + transform="matrix(1.4412823,-0.25260466,0.25260466,1.4412823,145.30618,53.2395)"> + <path + id="path340" + style="display:inline;opacity:1;fill:#ff9955;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> + <g + id="g360" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + inkscape:label="Paths"> + <path + id="path342" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="path344" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="path346" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path348" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path350" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path352" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path354" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="path356" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path358" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" + id="path362" + transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" + inkscape:label="BoundingBox" /> + </g> + </g> + <metadata + id="metadata551"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>Shadow Casting</dc:title> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_images/shadow_casting_step08.svg b/content/html/_images/shadow_casting_step08.svg index 33b986deb28e0f2cbb42f06db3cc4ca348795354..acb5f1ca83caec54dc9f44554cea26309e7be3e7 100644 --- a/content/html/_images/shadow_casting_step08.svg +++ b/content/html/_images/shadow_casting_step08.svg @@ -1,809 +1,809 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="210mm" - height="132.59012mm" - viewBox="0.5 0.5 209 131.95874" - version="1.1" - id="svg12177" - sodipodi:docname="multiple_shadow_casting_step9.svg" - inkscape:version="1.2.2 (732a01da63, 2022-12-09)" - inkscape:export-filename="shadowing_1.png" - inkscape:export-xdpi="600" - inkscape:export-ydpi="600" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:dc="http://purl.org/dc/elements/1.1/"> - <title - id="title613">Shadow Casting</title> - <sodipodi:namedview - id="namedview525" - pagecolor="#505050" - bordercolor="#eeeeee" - borderopacity="1" - inkscape:showpageshadow="0" - inkscape:pageopacity="0" - inkscape:pagecheckerboard="true" - inkscape:deskcolor="#505050" - inkscape:document-units="mm" - showgrid="false" - inkscape:zoom="1.4142136" - inkscape:cx="404.11153" - inkscape:cy="270.8219" - inkscape:window-width="1920" - inkscape:window-height="1017" - inkscape:window-x="1912" - inkscape:window-y="-8" - inkscape:window-maximized="1" - inkscape:current-layer="layer6" /> - <style - type="text/css" - id="style515"> - .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} - </style> - <defs - id="defs12174"> - <marker - style="overflow:visible" - id="TriangleStart" - refX="3" - refY="0" - orient="auto-start-reverse" - inkscape:stockid="TriangleStart" - markerWidth="4" - markerHeight="4" - viewBox="0 0 5.3244081 6.1553851" - inkscape:isstock="true" - inkscape:collect="always" - preserveAspectRatio="xMidYMid"> - <path - transform="scale(0.5)" - style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" - d="M 5.77,0 -2.88,5 V -5 Z" - id="path135" /> - </marker> - <linearGradient - id="linearGradient13254"> - <stop - style="stop-color:#ffffff;stop-opacity:0.50193125" - offset="0" - id="stop13250" /> - <stop - style="stop-color:#ffffff;stop-opacity:0" - offset="1" - id="stop13252" /> - </linearGradient> - <radialGradient - xlink:href="#linearGradient13254" - id="radialGradient17053" - cx="88.337814" - cy="74.649353" - fx="88.337814" - fy="74.649353" - r="49.89299" - gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" - gradientUnits="userSpaceOnUse" /> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18222-0-27" - x="-0.033541095" - y="-0.018109434" - width="1.0670822" - height="1.0362189"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.40870019" - id="feGaussianBlur18224-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18230-3-7" - x="-0.033975737" - y="-0.01798521" - width="1.0679515" - height="1.0359704"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.33132421" - id="feGaussianBlur18232-0-0" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-7" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19744-7" - x="-0.16377558" - y="-0.11438444" - width="1.3275512" - height="1.2287689"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19746-2" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18242-0-2" - x="-0.079568165" - y="-0.013799525" - width="1.1591363" - height="1.027599"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.13980316" - id="feGaussianBlur18244-1-7" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-2" - x="-0.019646573" - y="-0.049054145" - width="1.0499933" - height="1.0801728"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-9" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18226-1-8-2" - x="-0.012851508" - y="-0.13846328" - width="1.025703" - height="1.2769266"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.10292743" - id="feGaussianBlur18228-7-5-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter19748-3" - x="-0.16377558" - y="-0.11438501" - width="1.3275512" - height="1.22877"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.095859125" - id="feGaussianBlur19750-6" /> - </filter> - <filter - inkscape:collect="always" - style="color-interpolation-filters:sRGB" - id="filter18234-5-9-4" - x="-0.019646573" - y="-0.049054159" - width="1.0499933" - height="1.0801729"> - <feGaussianBlur - inkscape:collect="always" - stdDeviation="0.092708589" - id="feGaussianBlur18236-7-1-15" /> - </filter> - <pattern - inkscape:collect="always" - xlink:href="#pattern19283" - id="pattern16514" - patternTransform="matrix(1.3611745,0.53642679,-0.53642679,1.3611745,130.63241,26.17283)" /> - <pattern - inkscape:collect="always" - xlink:href="#Strips1_1-5" - id="pattern19283" - patternTransform="matrix(0.19986498,0.19986498,-0.19986498,0.19986498,176.29042,62.413337)" /> - <pattern - inkscape:collect="always" - patternUnits="userSpaceOnUse" - width="2" - height="1" - patternTransform="translate(0,0) scale(10,10)" - id="Strips1_1-5" - inkscape:stockid="Stripes 1:1" - inkscape:isstock="true"> - <rect - style="fill:black;stroke:none" - x="0" - y="-0.5" - width="1" - height="2" - id="rect7558" /> - </pattern> - </defs> - <g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Background" - transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" - style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" - sodipodi:insensitive="true"> - <rect - style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" - id="rect11660" - width="275.974" - height="146.24295" - x="-11.750484" - y="-7.352387" - inkscape:label="Grass" /> - </g> - <g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Road" - style="display:inline" - sodipodi:insensitive="true"> - <rect - style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="15.001317" - inkscape:label="LeftLane" /> - <rect - style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" - id="rect846-6" - width="209.99998" - height="51.221489" - x="1.3933685e-07" - y="66.222809" - inkscape:label="RightLane" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,15.001317 H 209.99999" - id="path1858" - sodipodi:nodetypes="cc" - inkscape:label="Left Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - d="M 1.8331004e-6,117.44429 H 209.99999" - id="path1858-1" - sodipodi:nodetypes="cc" - inkscape:label="Right Line" /> - <path - style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" - d="M 6.4336677e-6,66.222803 H 210" - id="path1858-1-7" - sodipodi:nodetypes="cc" - inkscape:label="Center Line" /> - </g> - <g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Ideal Detection Range" - style="display:none"> - <path - id="path2502" - style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covered Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" - sodipodi:nodetypes="ccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer3" - inkscape:label="Detection Wrong Scale" - style="display:none"> - <path - id="path11043" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" - sodipodi:nodetypes="ccccc" /> - <path - id="path2475" - style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Missing Area" - d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> - </g> - <g - inkscape:groupmode="layer" - id="g2828" - inkscape:label="Right Scale" - style="display:none"> - <path - id="path3024" - style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="Covererd Area" - d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" - sodipodi:nodetypes="cccccccccc" /> - </g> - <g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="FinalShadow" - style="display:inline" /> - <g - inkscape:groupmode="layer" - id="layer1" - inkscape:label="Vectors" - inkscape:highlight-color="#f3f3f3" - style="display:none"> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="M 46.337739,93.179263 78.738142,78.187858" - id="path29646" - inkscape:label="LeftVector" /> - <path - style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" - d="m 46.337739,93.179263 30.752264,3.781455" - id="path29995" - sodipodi:nodetypes="cc" - inkscape:label="RightVector" /> - </g> - <g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="RightScaleBoundaries" - inkscape:highlight-color="#f3f3f3" - style="display:none"> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 85.936463,0.02544663 73.766699,132.56467" - id="path30189" - sodipodi:nodetypes="cc" - inkscape:label="InnerBound" /> - <path - style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 187.27417,0.08465123 175.04379,132.38312" - id="path432" - sodipodi:nodetypes="cc" - inkscape:label="OutherBound" /> - </g> - <g - inkscape:groupmode="layer" - id="layer6" - inkscape:label="Detection Boundaries" - inkscape:highlight-color="#21d7f3" - style="display:inline"> - <path - id="path18240" - style="font-variation-settings:normal;display:none;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" - d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" - sodipodi:nodetypes="cccc" - inkscape:label="Real Detection Boundary" /> - <path - style="font-variation-settings:normal;display:none;opacity:0.25;vector-effect:none;fill:url(#pattern16514);fill-opacity:1;stroke:#000000;stroke-width:0.288487;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" - id="path11916" - sodipodi:type="arc" - sodipodi:cx="46.337891" - sodipodi:cy="93.179405" - sodipodi:rx="125.96057" - sodipodi:ry="125.96057" - sodipodi:start="5.7021866" - sodipodi:end="0.28341164" - sodipodi:arc-type="slice" - d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" - inkscape:label="Sensor Cone" /> - <path - id="path19159" - style="font-variation-settings:normal;display:inline;opacity:1;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.497619;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="M 151.63015 24.044816 L 46.337817 93.179554 L 167.27372 128.40215 L 167.91146 123.93336 L 130.63474 114.19605 L 165.80076 108.0059 L 154.65066 106.61779 L 77.090082 96.960713 L 78.737911 78.187606 L 78.738425 78.187606 L 77.090082 96.960713 L 122.20427 100.92136 L 123.85776 82.088598 L 78.846429 78.137204 L 159.5926 40.556016 L 151.63015 24.044816 z " /> - <path - style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.597143;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.19429, 0.597143;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="path19615" - sodipodi:type="arc" - sodipodi:cx="46.337891" - sodipodi:cy="93.179405" - sodipodi:rx="125.96057" - sodipodi:ry="125.96057" - sodipodi:start="5.7021866" - sodipodi:end="0.28341164" - sodipodi:arc-type="slice" - d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" - inkscape:label="Sensor Cone Boundary" /> - <path - style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.597143;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.19429, 0.597143;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" - id="path1530" - sodipodi:type="arc" - sodipodi:cx="46.337891" - sodipodi:cy="93.179405" - sodipodi:rx="125.96057" - sodipodi:ry="125.96057" - sodipodi:start="6.2392576" - sodipodi:end="0.24814292" - sodipodi:arc-type="slice" - d="m 172.17695,87.648025 a 125.96057,125.96057 0 0 1 -3.73664,36.467825 L 46.337891,93.179405 Z" - inkscape:label="2nd Detection Boundary" /> - </g> - <g - inkscape:groupmode="layer" - id="layer2" - inkscape:label="Cars" - style="display:inline" - sodipodi:insensitive="true"> - <g - id="g10990" - inkscape:label="Green Car" - transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" - style="display:inline"> - <path - id="rect5329-3" - style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> - <g - id="g2331" - inkscape:label="Paths" - style="display:inline" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> - <path - id="rect9419-4" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="rect9419-9-6" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="rect11566-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect13708-8" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect15650-6" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path16032-9" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="rect11566-1-1" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="rect13708-8-4" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path16032-9-5" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - </g> - <g - id="g38512" - inkscape:label="Front Car" - style="display:inline;opacity:1" - transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> - <path - id="path38490" - style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> - <g - id="g38510" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - inkscape:label="Paths"> - <path - id="path38492" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="path38494" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="path38496" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38498" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38500" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path38502" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path38504" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="path38506" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path38508" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - <path - style="display:none;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" - id="path3202" - transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" - inkscape:label="BoundingBox" /> - </g> - <g - id="g364" - inkscape:label="Second Front Car" - style="display:inline;opacity:1" - transform="matrix(1.4412823,-0.25260466,0.25260466,1.4412823,145.30618,53.2395)"> - <path - id="path340" - style="display:inline;opacity:1;fill:#ff9955;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" - d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" - sodipodi:nodetypes="sscszscscczccs" - inkscape:label="Chassis" - transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> - <g - id="g360" - transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" - inkscape:label="Paths"> - <path - id="path342" - style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" - d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="cczcczc" /> - <path - id="path344" - style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" - d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" - sodipodi:nodetypes="czcczcc" /> - <path - id="path346" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" - d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path348" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" - d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path350" - style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" - d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" - transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" - d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" - id="path352" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - id="path354" - style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" - d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" - sodipodi:nodetypes="cscssscc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - <path - id="path356" - style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" - d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" - sodipodi:nodetypes="sccs" - transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> - <path - style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" - d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" - id="path358" - sodipodi:nodetypes="csc" - transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> - </g> - <path - style="display:none;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" - d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" - id="path362" - transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" - inkscape:label="BoundingBox" /> - </g> - </g> - <path - style="font-variation-settings:normal;display:inline;opacity:1;fill:none;fill-opacity:0.5;stroke:#00ff00;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.995238, 0.497619;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" - d="m 78.73791,78.187606 0.05452,-0.0252 z m 43.46636,22.733754 1.65349,-18.832762 -45.011336,-3.951394 80.746176,-37.581188 -7.96245,-16.5112 -105.292338,69.134738 120.935908,35.222596 0.63774,-4.46879 -37.27672,-9.73731 35.16602,-6.19015 -11.1501,-1.38811 -77.560583,-9.657077 z" - id="path1880" - sodipodi:nodetypes="cccccccccccccccc" /> - <metadata - id="metadata551"> - <rdf:RDF> - <cc:Work - rdf:about=""> - <dc:creator> - <cc:Agent> - <dc:title>René Paris</dc:title> - </cc:Agent> - </dc:creator> - <dc:rights> - <cc:Agent> - <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> - </cc:Agent> - </dc:rights> - <dc:title>Shadow Casting</dc:title> - <cc:license - rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> - </cc:Work> - </rdf:RDF> - </metadata> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="210mm" + height="132.59012mm" + viewBox="0.5 0.5 209 131.95874" + version="1.1" + id="svg12177" + sodipodi:docname="multiple_shadow_casting_step9.svg" + inkscape:version="1.2.2 (732a01da63, 2022-12-09)" + inkscape:export-filename="shadowing_1.png" + inkscape:export-xdpi="600" + inkscape:export-ydpi="600" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + <title + id="title613">Shadow Casting</title> + <sodipodi:namedview + id="namedview525" + pagecolor="#505050" + bordercolor="#eeeeee" + borderopacity="1" + inkscape:showpageshadow="0" + inkscape:pageopacity="0" + inkscape:pagecheckerboard="true" + inkscape:deskcolor="#505050" + inkscape:document-units="mm" + showgrid="false" + inkscape:zoom="1.4142136" + inkscape:cx="404.11153" + inkscape:cy="270.8219" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="1912" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer6" /> + <style + type="text/css" + id="style515"> + .line1{stroke:#000000;stroke-width:0.299655;stroke-miterlimit:4;stroke-dasharray:0.299655;stroke-dashoffset:0} + </style> + <defs + id="defs12174"> + <marker + style="overflow:visible" + id="TriangleStart" + refX="3" + refY="0" + orient="auto-start-reverse" + inkscape:stockid="TriangleStart" + markerWidth="4" + markerHeight="4" + viewBox="0 0 5.3244081 6.1553851" + inkscape:isstock="true" + inkscape:collect="always" + preserveAspectRatio="xMidYMid"> + <path + transform="scale(0.5)" + style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt" + d="M 5.77,0 -2.88,5 V -5 Z" + id="path135" /> + </marker> + <linearGradient + id="linearGradient13254"> + <stop + style="stop-color:#ffffff;stop-opacity:0.50193125" + offset="0" + id="stop13250" /> + <stop + style="stop-color:#ffffff;stop-opacity:0" + offset="1" + id="stop13252" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient13254" + id="radialGradient17053" + cx="88.337814" + cy="74.649353" + fx="88.337814" + fy="74.649353" + r="49.89299" + gradientTransform="matrix(0.99769605,0,0,0.99999285,-87.912228,-39.371667)" + gradientUnits="userSpaceOnUse" /> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18222-0-27" + x="-0.033541095" + y="-0.018109434" + width="1.0670822" + height="1.0362189"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.40870019" + id="feGaussianBlur18224-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18230-3-7" + x="-0.033975737" + y="-0.01798521" + width="1.0679515" + height="1.0359704"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.33132421" + id="feGaussianBlur18232-0-0" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-7" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19744-7" + x="-0.16377558" + y="-0.11438444" + width="1.3275512" + height="1.2287689"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19746-2" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18242-0-2" + x="-0.079568165" + y="-0.013799525" + width="1.1591363" + height="1.027599"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.13980316" + id="feGaussianBlur18244-1-7" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-2" + x="-0.019646573" + y="-0.049054145" + width="1.0499933" + height="1.0801728"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-9" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18226-1-8-2" + x="-0.012851508" + y="-0.13846328" + width="1.025703" + height="1.2769266"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.10292743" + id="feGaussianBlur18228-7-5-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter19748-3" + x="-0.16377558" + y="-0.11438501" + width="1.3275512" + height="1.22877"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.095859125" + id="feGaussianBlur19750-6" /> + </filter> + <filter + inkscape:collect="always" + style="color-interpolation-filters:sRGB" + id="filter18234-5-9-4" + x="-0.019646573" + y="-0.049054159" + width="1.0499933" + height="1.0801729"> + <feGaussianBlur + inkscape:collect="always" + stdDeviation="0.092708589" + id="feGaussianBlur18236-7-1-15" /> + </filter> + <pattern + inkscape:collect="always" + xlink:href="#pattern19283" + id="pattern16514" + patternTransform="matrix(1.3611745,0.53642679,-0.53642679,1.3611745,130.63241,26.17283)" /> + <pattern + inkscape:collect="always" + xlink:href="#Strips1_1-5" + id="pattern19283" + patternTransform="matrix(0.19986498,0.19986498,-0.19986498,0.19986498,176.29042,62.413337)" /> + <pattern + inkscape:collect="always" + patternUnits="userSpaceOnUse" + width="2" + height="1" + patternTransform="translate(0,0) scale(10,10)" + id="Strips1_1-5" + inkscape:stockid="Stripes 1:1" + inkscape:isstock="true"> + <rect + style="fill:black;stroke:none" + x="0" + y="-0.5" + width="1" + height="2" + id="rect7558" /> + </pattern> + </defs> + <g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Background" + transform="matrix(0.76003563,0,0,0.90146085,8.9307869,6.9345447)" + style="display:inline;opacity:1;fill:#00ff00;stroke:#000000;stroke-opacity:1" + sodipodi:insensitive="true"> + <rect + style="fill:#408040;fill-opacity:1;stroke:none;stroke-width:0.264026;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0.612916, 0.306457;stroke-dashoffset:0;stroke-opacity:1" + id="rect11660" + width="275.974" + height="146.24295" + x="-11.750484" + y="-7.352387" + inkscape:label="Grass" /> + </g> + <g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Road" + style="display:inline" + sodipodi:insensitive="true"> + <rect + style="display:inline;fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="15.001317" + inkscape:label="LeftLane" /> + <rect + style="fill:#6d6d6d;fill-opacity:1;stroke:none;stroke-width:0.190629;stroke-linecap:round" + id="rect846-6" + width="209.99998" + height="51.221489" + x="1.3933685e-07" + y="66.222809" + inkscape:label="RightLane" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,15.001317 H 209.99999" + id="path1858" + sodipodi:nodetypes="cc" + inkscape:label="Left Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 1.8331004e-6,117.44429 H 209.99999" + id="path1858-1" + sodipodi:nodetypes="cc" + inkscape:label="Right Line" /> + <path + style="fill:none;stroke:#ffffff;stroke-width:1.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6.99999, 6.99999;stroke-dashoffset:0;stroke-opacity:1" + d="M 6.4336677e-6,66.222803 H 210" + id="path1858-1-7" + sodipodi:nodetypes="cc" + inkscape:label="Center Line" /> + </g> + <g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Ideal Detection Range" + style="display:none"> + <path + id="path2502" + style="fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covered Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 L 77.090003,96.960718 171.39915,108.70326 C 174.1688,88.268983 171.24668,61.729777 160.75099,40.240952 Z" + sodipodi:nodetypes="ccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Detection Wrong Scale" + style="display:none"> + <path + id="path11043" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="m 160.75099,40.240952 c -29.40362,13.884941 -52.34252,24.404477 -82.012849,37.9469 l -1.648138,18.772866 94.309147,11.742542 z" + sodipodi:nodetypes="ccccc" /> + <path + id="path2475" + style="display:inline;fill:#ff0000;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Missing Area" + d="m 160.75081,40.240748 10.64814,68.462542 C 174.1686,88.269035 171.24649,61.729552 160.75081,40.240748 Z" /> + </g> + <g + inkscape:groupmode="layer" + id="g2828" + inkscape:label="Right Scale" + style="display:none"> + <path + id="path3024" + style="display:inline;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.0248813;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="Covererd Area" + d="M 184.40003,29.010416 78.846429,78.137204 c -1.756347,18.823509 0,0 -1.756347,18.823509 l 77.560578,9.657077 22.52803,2.80501 z M 77.090082,96.960713 78.738425,78.187606 h -5.14e-4 z" + sodipodi:nodetypes="cccccccccc" /> + </g> + <g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="FinalShadow" + style="display:inline" /> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Vectors" + inkscape:highlight-color="#f3f3f3" + style="display:none"> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="M 46.337739,93.179263 78.738142,78.187858" + id="path29646" + inkscape:label="LeftVector" /> + <path + style="display:inline;fill:none;stroke:#ffffff;stroke-width:1.11321;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleStart)" + d="m 46.337739,93.179263 30.752264,3.781455" + id="path29995" + sodipodi:nodetypes="cc" + inkscape:label="RightVector" /> + </g> + <g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="RightScaleBoundaries" + inkscape:highlight-color="#f3f3f3" + style="display:none"> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556603, 0.556603;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 85.936463,0.02544663 73.766699,132.56467" + id="path30189" + sodipodi:nodetypes="cc" + inkscape:label="InnerBound" /> + <path + style="font-variation-settings:normal;display:inline;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#00ff00;stroke-width:0.556605;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.556605, 0.556605;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 187.27417,0.08465123 175.04379,132.38312" + id="path432" + sodipodi:nodetypes="cc" + inkscape:label="OutherBound" /> + </g> + <g + inkscape:groupmode="layer" + id="layer6" + inkscape:label="Detection Boundaries" + inkscape:highlight-color="#21d7f3" + style="display:inline"> + <path + id="path18240" + style="font-variation-settings:normal;display:none;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.556603;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.6698, 1.6698;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1" + d="M 46.337891,93.179403 171.40485,108.71632 c 2.7759,-20.421253 -0.14621,-46.960459 -10.648,-68.46244 L 46.337891,93.179403" + sodipodi:nodetypes="cccc" + inkscape:label="Real Detection Boundary" /> + <path + style="font-variation-settings:normal;display:none;opacity:0.25;vector-effect:none;fill:url(#pattern16514);fill-opacity:1;stroke:#000000;stroke-width:0.288487;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;paint-order:stroke fill markers;stop-color:#000000" + id="path11916" + sodipodi:type="arc" + sodipodi:cx="46.337891" + sodipodi:cy="93.179405" + sodipodi:rx="125.96057" + sodipodi:ry="125.96057" + sodipodi:start="5.7021866" + sodipodi:end="0.28341164" + sodipodi:arc-type="slice" + d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" + inkscape:label="Sensor Cone" /> + <path + id="path19159" + style="font-variation-settings:normal;display:inline;opacity:1;fill:#ffffff;fill-opacity:0.5;stroke:none;stroke-width:0.497619;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" + d="M 151.63015 24.044816 L 46.337817 93.179554 L 167.27372 128.40215 L 167.91146 123.93336 L 130.63474 114.19605 L 165.80076 108.0059 L 154.65066 106.61779 L 77.090082 96.960713 L 78.737911 78.187606 L 78.738425 78.187606 L 77.090082 96.960713 L 122.20427 100.92136 L 123.85776 82.088598 L 78.846429 78.137204 L 159.5926 40.556016 L 151.63015 24.044816 z " /> + <path + style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.597143;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.19429, 0.597143;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="path19615" + sodipodi:type="arc" + sodipodi:cx="46.337891" + sodipodi:cy="93.179405" + sodipodi:rx="125.96057" + sodipodi:ry="125.96057" + sodipodi:start="5.7021866" + sodipodi:end="0.28341164" + sodipodi:arc-type="slice" + d="M 151.63021,24.044806 A 125.96057,125.96057 0 0 1 167.27352,128.40211 L 46.337891,93.179405 Z" + inkscape:label="Sensor Cone Boundary" /> + <path + style="font-variation-settings:normal;display:none;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.597143;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.19429, 0.597143;stroke-dashoffset:0;stroke-opacity:1;paint-order:stroke fill markers;stop-color:#000000" + id="path1530" + sodipodi:type="arc" + sodipodi:cx="46.337891" + sodipodi:cy="93.179405" + sodipodi:rx="125.96057" + sodipodi:ry="125.96057" + sodipodi:start="6.2392576" + sodipodi:end="0.24814292" + sodipodi:arc-type="slice" + d="m 172.17695,87.648025 a 125.96057,125.96057 0 0 1 -3.73664,36.467825 L 46.337891,93.179405 Z" + inkscape:label="2nd Detection Boundary" /> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Cars" + style="display:inline" + sodipodi:insensitive="true"> + <g + id="g10990" + inkscape:label="Green Car" + transform="matrix(1.4632512,0,0,1.4632512,29.783263,44.83126)" + style="display:inline"> + <path + id="rect5329-3" + style="display:inline;fill:#008080;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" /> + <g + id="g2331" + inkscape:label="Paths" + style="display:inline" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)"> + <path + id="rect9419-4" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="rect9419-9-6" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="rect11566-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect13708-8" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect15650-6" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path16032-9" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="rect11566-1-1" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="rect13708-8-4" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path16032-9-5" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + </g> + <g + id="g38512" + inkscape:label="Front Car" + style="display:inline;opacity:1" + transform="matrix(1.4575507,0.12903395,-0.12903395,1.4575507,107.03838,41.878471)"> + <path + id="path38490" + style="display:inline;opacity:1;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> + <g + id="g38510" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + inkscape:label="Paths"> + <path + id="path38492" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="path38494" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="path38496" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38498" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38500" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path38502" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path38504" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="path38506" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path38508" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + <path + style="display:none;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" + id="path3202" + transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" + inkscape:label="BoundingBox" /> + </g> + <g + id="g364" + inkscape:label="Second Front Car" + style="display:inline;opacity:1" + transform="matrix(1.4412823,-0.25260466,0.25260466,1.4412823,145.30618,53.2395)"> + <path + id="path340" + style="display:inline;opacity:1;fill:#ff9955;fill-opacity:1;stroke:#000000;stroke-width:0.660026;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none" + d="M 111.64432,2.0438227 C 105.04229,2.0523434 98.237005,2.1331568 90.758177,2.2169563 68.478685,2.4667353 41.869774,2.8505737 30.297465,3.4078715 23.230107,3.6384901 14.684348,2.8709548 9.3789488,7.2023519 2.0152129,13.214203 2.4599894,25.811026 2.4600716,35.566974 c 8.62e-5,9.755983 -0.4448587,22.350682 6.9188772,28.362514 5.3053992,4.331416 13.8511582,3.563881 20.9185162,3.794495 11.572309,0.55731 38.18122,0.94324 60.460712,1.193033 19.943523,0.22363 35.097833,0.411016 54.377613,-0.665139 13.73019,-0.865401 18.17953,0.501523 21.27874,-4.567317 5.08975,-8.603198 6.55453,-18.471425 6.55461,-28.117586 7e-5,-9.646154 -1.46486,-19.516463 -6.55461,-28.1196843 C 163.31532,2.3784606 158.86598,3.7474951 145.13579,2.8821032 133.08592,2.2094824 122.64768,2.0289899 111.64432,2.0438106 Z" + sodipodi:nodetypes="sscszscscczccs" + inkscape:label="Chassis" + transform="matrix(0.17960964,0,0,0.17960964,-17.34453,26.451478)" /> + <g + id="g360" + transform="matrix(0.17960963,0,0,0.17960963,-17.34453,26.451478)" + inkscape:label="Paths"> + <path + id="path342" + style="fill:#000000;fill-opacity:1;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18222-0-27)" + d="m 179.92578,278.80469 c -8.3074,2.61456 0.001,-10e-4 -21.16406,6.57617 2.41461,6.36953 2.70871,14.02215 2.58789,20.50586 -0.12082,6.48371 -0.13018,14.58793 -2.58789,20.5039 21.1653,6.57727 12.85666,3.96357 21.16406,6.57813 7.92037,-3.87861 8.08005,-21.27699 8.08008,-27.08203 3e-5,-5.80504 -0.15921,-23.20318 -8.08008,-27.08203 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="cczcczc" /> + <path + id="path344" + style="fill:#000000;fill-opacity:1;stroke-width:2.64998;stroke-linecap:round;filter:url(#filter18230-3-7)" + d="m 84.568359,283.7793 c -4.873618,6.66755 -5.189458,17.65863 -5.189453,22.10742 5e-6,4.44879 0.315887,15.43799 5.189453,22.10547 l 18.214841,-2.34766 c -2.861983,-6.16343 -3.308769,-13.64671 -3.224099,-19.75781 0.0847,-6.1111 0.421501,-14.2142 3.224099,-19.75977 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" + sodipodi:nodetypes="czcczcc" /> + <path + id="path346" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-7)" + d="m 10.450971,2.232998 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 C 9.7616799,3.420568 9.2382709,2.704488 10.450971,2.233002 Z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path348" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19744-7)" + d="m 27.698733,0.23010595 c 0.778394,0.03326 1.35936,1.75751405 1.35936,1.75751405 l -0.707949,0.253746 c 0,0 -0.906933,-2.02217705 -0.651411,-2.01126005 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path350" + style="fill:#000000;fill-opacity:0.5;stroke-width:3.26929;stroke-linecap:round;filter:url(#filter18242-0-2)" + d="m 191.18359,293.72852 -0.125,12.08789 h -0.002 v 0.0703 0.0703 h 0.002 l 0.125,12.08594 c 0,0 3.74641,-0.39654 3.87891,-2.23438 0.1854,-2.57154 0.20967,-9.43993 0.21094,-9.85156 2e-5,-0.006 -1e-5,-0.0671 0,-0.0703 -1e-5,-0.003 2e-5,-0.0641 0,-0.0703 -0.001,-0.411 -0.0255,-7.27989 -0.21094,-9.85157 -0.1325,-1.83783 -3.87891,-2.23632 -3.87891,-2.23632 z" + transform="matrix(1.036111,0,0,1.0811201,-64.646328,-295.13328)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-2)" + d="m 31.289163,2.121441 c 0,0 7.578859,0.412884 10.642205,2.922704 1.11139,0.910576 1.0486,4.305966 1.0486,4.305966" + id="path352" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + id="path354" + style="fill:#000000;fill-opacity:1;stroke-width:0.865;stroke-linecap:round;filter:url(#filter18226-1-8-2)" + d="m 46.021383,84.029808 c 10.925005,-0.04102 15.686682,-0.182423 17.55118,-0.240478 1.17779,-0.03667 1.055942,-0.0049 1.055942,-0.0049 0,0 -4.06942,1.500063 -4.952975,1.60637 -1.521174,0.183024 -2.059657,0.131203 -4.505694,0.150817 -2.329844,0.01868 -5.473135,0.03909 -6.95085,-0.08392 -2.886894,-0.240319 -3.410303,-0.956399 -2.197603,-1.427885 z" + sodipodi:nodetypes="cscssscc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + <path + id="path356" + style="fill-opacity:0.92268;stroke-width:0.865;stroke-linecap:round;filter:url(#filter19748-3)" + d="m 27.698733,18.388361 c 0.778394,-0.0332 1.35936,-1.75751 1.35936,-1.75751 l -0.707949,-0.25374 c 0,0 -0.906933,2.02217 -0.651411,2.01125 z" + sodipodi:nodetypes="sccs" + transform="matrix(3.9160101,0,0,4.086123,2.1315657,-2.4723443)" /> + <path + style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter18234-5-9-4)" + d="m 66.859575,83.918251 c 0,0 7.578859,0.412884 10.642202,2.922704 1.111396,0.910576 1.048603,4.305964 1.048603,4.305964" + id="path358" + sodipodi:nodetypes="csc" + transform="matrix(3.9160101,0,0,-4.086123,-137.16253,407.8369)" /> + </g> + <path + style="display:none;fill:none;stroke:#ffffff;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1" + d="m 78.738425,78.187605 -1.648423,18.773113 45.114268,3.960642 1.65349,-18.832762 z" + id="path362" + transform="matrix(0.68074734,-0.06026515,0.06026515,0.68074734,-75.389904,-22.057973)" + inkscape:label="BoundingBox" /> + </g> + </g> + <path + style="font-variation-settings:normal;display:inline;opacity:1;fill:none;fill-opacity:0.5;stroke:#00ff00;stroke-width:0.497619;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:0.995238, 0.497619;stroke-dashoffset:0;stroke-opacity:1;stop-color:#000000;stop-opacity:1" + d="m 78.73791,78.187606 0.05452,-0.0252 z m 43.46636,22.733754 1.65349,-18.832762 -45.011336,-3.951394 80.746176,-37.581188 -7.96245,-16.5112 -105.292338,69.134738 120.935908,35.222596 0.63774,-4.46879 -37.27672,-9.73731 35.16602,-6.19015 -11.1501,-1.38811 -77.560583,-9.657077 z" + id="path1880" + sodipodi:nodetypes="cccccccccccccccc" /> + <metadata + id="metadata551"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:creator> + <cc:Agent> + <dc:title>René Paris</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>2023 - Bayerische Motoren Werke Aktiengesellschaft (BMW AG)</dc:title> + </cc:Agent> + </dc:rights> + <dc:title>Shadow Casting</dc:title> + <cc:license + rdf:resource="https://www.eclipse.org/legal/epl-2.0/" /> + </cc:Work> + </rdf:RDF> + </metadata> +</svg> diff --git a/content/html/_sources/advanced_topics/20_simulator_advanced.rst.txt b/content/html/_sources/advanced_topics/20_simulator_advanced.rst.txt index 29b9b19cede869dc7bfe50ddc7053a52b8502bbf..02df7972711ceba256746263da74b7867b1b8775 100644 --- a/content/html/_sources/advanced_topics/20_simulator_advanced.rst.txt +++ b/content/html/_sources/advanced_topics/20_simulator_advanced.rst.txt @@ -1,22 +1,22 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _simulator_advanced: - -Simulator -========= - - -.. toctree:: - :glob: - :maxdepth: 3 - - simulator/* +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _simulator_advanced: + +Simulator +========= + + +.. toctree:: + :glob: + :maxdepth: 3 + + simulator/* diff --git a/content/html/_sources/advanced_topics/30_testing.rst.txt b/content/html/_sources/advanced_topics/30_testing.rst.txt index de5ceb3031bead57615760407aedde7cab0d2ce0..de57a05fb8dd3782a684074db768d52e993ad4e8 100644 --- a/content/html/_sources/advanced_topics/30_testing.rst.txt +++ b/content/html/_sources/advanced_topics/30_testing.rst.txt @@ -1,19 +1,19 @@ -.. - ******************************************************************************* - Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _testing_endtoend: - -EndToEnd Test Framework -======================= - -**pyOpenPASS** - -.. include:: /../../../repo/sim/tests/endToEndTests/pyOpenPASS.rst +.. + ******************************************************************************* + Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _testing_endtoend: + +EndToEnd Test Framework +======================= + +**pyOpenPASS** + +.. include:: /../../../repo/sim/tests/endToEndTests/pyOpenPASS.rst diff --git a/content/html/_sources/advanced_topics/simulator/agent_components.rst.txt b/content/html/_sources/advanced_topics/simulator/agent_components.rst.txt index ccc272f45cf7403cdddbdaee92b93f6c22156e76..ef8aaef806da0a68e191b035514394c1644abf47 100644 --- a/content/html/_sources/advanced_topics/simulator/agent_components.rst.txt +++ b/content/html/_sources/advanced_topics/simulator/agent_components.rst.txt @@ -1,580 +1,580 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - 2023-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _agentcomponents: - -Agent Components -================ - -An agent in openPASS is composed of multiple modules, which are connected by corresponding signals. -As shown in the next figure, the modules can be roughly divided into the groups drivers, vehicle components, algorithms, dynamic modules, and prioritizers. -Thereby, modules can consist of several submodules, such as sensor (reading from an interface) and action (writing to an interface). - -.. figure:: ./draw.io/DynamicsModules.png - - Modules for longitudinal and lateral dynamics - -By statistic means, based on corresponding probabilities defined in the :ref:`profilescatalog`, each individual agent is composed from a superset of all possible (valid) combinations, which is defined by the :ref:`systemconfigblueprint`. -This config defines all available framework modules and agent modules and connects them by corresponding channels, which in turn have a specific signal type. - -The next figure gives an exhaustive overview over the current superset: - -.. _component_channel_communication: - -.. figure:: ./draw.io/ComponentsChannelCommunicationDiagram.png - - Components and channel communication - -:download:`./draw.io/ComponentsChannelCommunicationDiagram.drawio` - -Modules that can be parametrized by the user are explained in the :ref:`Simulation User Guide <simuserguide_components>`. -Therefor the following section only contains the components not listed in the user guide. - -Action_LongitudinalDriver -------------------------- - -Updates the agents pedal positions and gear. -The input for this module is prepared by the AlgorithmLongitudinal Module. - -Action_SecondaryDriver ------------------------ - -Updates the agents braking light, indicator, horn and all light switches (headlight, high beam, flasher). -The input for this module is prepared by the driver module. - -**Overview of the module's functionalities** - -Action_SecondaryDriver gathers the secondary driving tasks and transfers them to output signals. Three graded driving tasks are defined and exampled as follows: - -**Primary driving tasks:** direct control of vehicle movements, like steering, pedal operation, shifting, etc. - -**Secondary driving tasks:** indirect control of vehicle movements, but supporting and complementing driving actions, like activation of indicator, horn, light, etc. - -**Tertiary driving tasks:** all the other activities, which are not related to vehicle control, like radio operation, etc. - -Table list of the input paramemter: - -======================== =========================== ============================= -Variable Description Value -======================== =========================== ============================= -in_indicatorState State of the indicator left, center/off, right, warn -in_hornSwitch Horn activation true/false -in_headLightSwitch Light activation true/false -in_highBeamLightSwitch High beam light activation true/false -in_flasherSwitch Flasher activation true/false -======================== =========================== ============================= - -AgentUpdater ------------- - -The AgentUpdater executes all Set-Methods of the agent dynamics after the DynamicsPrioritizer. This includes position, velocity, acceleration and rotation. - -Algorithm_Lateral ------------------ - -This module converts the lateral input of the driver module into a steering wheel angle. - -See :ref:`algorithm_lateral`. - -Algorithm_Longitudinal ----------------------- - -This module converts the acceleration input of the driver module into pedal positions and gear. - -See :ref:`algorithm_longitudinal`. - -AlgorithmCar2XSender --------------------- - -This module publishes the below mentioned parameters in each timestep via the RadioInterface provided by the World. - -======================= ======= ===== ================================================ -Parameter Type Unit Description -======================= ======= ===== ================================================ -SignalStrength Double W Singal strength of the Car2XSender -SendPositionXEnabled Boolean If true, the x-coordinate of the agent is sent -SendPositionYEnabled Boolean If true, the y-coordinate of the agent is sent -SendVelocityEnabled Boolean If true, the velocity of the agent is sent -SendAccelerationEnabled Boolean If true, the acceleration of the agent is sent -SendYawEnabled Boolean If true, the yaw angle of the agent is sent -======================= ======= ===== ================================================ - -Dynamics_Collision ------------------- - -If the number of collision partners of the agent is bigger than in the previous time step, the DynamicsCollision module calculates the collision. -Currently the collision is implemented fully inelastic, i.e. all agents will have the same velocity after the collision, while the momentum is conserved. -After the collision the agents slow down with a fixed deceleration until fully stopped. - -Dynamics_Scenario ------------------ - -See :ref:`dynamics_scenario`. - -Dynamics_RegularDriving ------------------------- - -The module takes care that the motion of the agent fit to the physical limitations, such as friction or maximum possible acceleration based on the current gear. -This module uses both the world friction and the vehicle model parameter friction. -Thereby it calculates the dynamics of the agents in every time step. -The currently covered dynamics are *Acceleration*, *Velocity*, and consequently *Position*, *Yaw angle* and *Yaw rate*. -The input for this module is the steering wheel angle and the new acceleration of the vehicle. - -See :ref:`dynamics_regular_driving`. - -LimiterAccelerationVehicleComponents -------------------------------------- - -This module limits the AccelerationSignal from the PrioritizerAccelerationVehicleComponents to the constraints given by the vehicle. The DynamicsTrajectoryFollower can then use this signal to calculate a trajectory. - -The limit is calculated by :math:`a_{\text{lim}} = \frac {F_{\text{wheel}} - F_{\text{roll}} - F_{\text{air}}} {m_{\text{veh}}}`, where the symbols meanings are: - -======================== ================================================ -Symbol Description -======================== ================================================ -:math:`a_{\text{lim}}` Resulting acceleration limit [m/s²] -:math:`F_{\text{wheel}}` Force at wheel (provided by drivetrain) [N] -:math:`F_{\text{roll}}` Force resulting from rolling resistance [N] -:math:`F_{\text{air}}` Force resulting from air drag [N] -:math:`m_{\text{veh}}` Mass of the vehicle [kg] -======================== ================================================ - -The components are calculated as follows: - -**Driving force** - -:math:`F_{\text{wheel}} = \frac {T_{\text{engine}} \cdot r_{\text{axle}}} {r_{\text{wheel}}}` - -========================= ============================================================================================ -Symbol Description -========================= ============================================================================================ -:math:`T_{\text{engine}}` Resulting torque from drivetrain at current velocity (assuming best gearing selected) [Nm] -:math:`r_{\text{axle}}` Axle transmission ratio [1] -:math:`r_{\text{wheel}}` Static radius of the wheels [m] -========================= ============================================================================================ - -The engine torque :math:`T_{\text{engine}}` is calculated by a simple model, where the torque scales proportional with the current engine speed between 1350 and 5000 rpm, up to maximum engine torque. -From minimum engine speed up to 1350 rpm the torque scales proportional with the engine speed up to half the maximum torque. -From 5000 rpm up to maximum engine speed, the torque scales with 5000 / maxEngineSpeed, up to maximum torque. - -**Rolling resistance** - -:math:`F_{\text{roll}} = m_{\text{veh}} \cdot c_{\text{fric}} \cdot g` - -========================= ============================================================================================ -Symbol Description -========================= ============================================================================================ -:math:`m_{\text{veh}}` Mass of the vehicle [kg] -:math:`c_{\text{fric}}` Rolling friction coefficient (constant 0.015) [1] -========================= ============================================================================================ - - -**Air drag** - -:math:`F_{\text{air}} = \frac {\rho_{\text{air}}} {2} \cdot A_{\text{front}} \cdot c_w \cdot v^2` - -========================= ============================================================================================ -Symbol Description -========================= ============================================================================================ -:math:`\rho_{\text{air}}` Density of air [kg/m³] -:math:`A_{\text{front}}` Vehicle front surface area [m²] -:math:`c_w` Drag coefficient [1] -:math:`v` Vehicle's current velocity [m/s] -========================= ============================================================================================ - -OpenScenarioActions -------------------- - -.. _OpenSCENARIO: https://www.asam.net/standards/detail/openscenario/ - -As defined by `OpenSCENARIO`_, OpenScenarioActions is the relaying module for: - -- Trajectory-actions -- LaneChange-actions -- UserDefined-actions. - -If a - -- TrajectoryManipulator -- LaneChangeManipulator - -or a user defined manipulator - -raises such an event for the specified agent, the module forwards it as signal to all interested module of the corresponding agent. The modules can than react on the signals content without time delay. - -.. _parameters_vehicle: - -Parameters_Vehicle -------------------- - -The ParametersVehicle module forwards the VehicleModelParameters to all other modules that need them via the ParametersVehicleSignal. - -This section includes all vehicle system related parameters, powertrain system related parameters and steering system related parameters. -Relevant parameters are presented in the following three tables with the corresponding explanations. - -Vehicle model related parameters -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. table:: - :class: tight-table - - ====================================== ====== ==== ============================================================ - Variable Type Unit Description - ====================================== ====== ==== ============================================================ - width Double m Maximum width of the vehicle - length Double m Maximum length of the vehicle - height Double m Maximum height of the vehicle - wheelbase Double m Wheelbase of the vehicle - trackwidth Double m Trackwidth of the vehicle - distanceCOGtoLeadingEdge Double m Distance between the COG and the front bumper - distanceCOGtoFrontAxle Double m Distance between the COG and the front axle - heightCOG Double m Height of the center of gravity above ground - weight Double kg Overall mass of the vehicle - momentInertiaRoll Double kgm² Moment of inertia along the vehicle's longitudinal axis - momentInertiaPitch Double kgm² Moment of inertia along the vehicle's lateral axis - momentInertiaYaw Double kgm² Moment of inertia along the vehicle's vertical axis - frontSurface Double m² Projected front surface of the vehicle - airDragCoefficient Double Air drag coefficient of the vehicle - ====================================== ====== ==== ============================================================ - -Powertrain related parameters -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. table:: - :class: tight-table - - ====================================== ======= ===== ============================================================= - Variable Type Unit Description - ====================================== ======= ===== ============================================================= - minimumEngineSpeed Double 1/min Idle speed of the engine - maximumEngineSpeed Double 1/min Maximum engine speed - minimumEngineTorque Double Nm Minimum torque of the engine - maximumEngineTorque Double Nm Maximum torque of the engine - numberOfGears Integer Number of gears in the gearbox - axleRatio Double Ratio of the axle gear - decelerationFromPowertrainDrag Double m/s² Deceleration caused by the overall powertrain drag torque - ====================================== ======= ===== ============================================================= - -Steering related parameters -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. table:: - :class: tight-table - - ====================================== ======= ====== ============================================================= - Variable Type Unit Description - ====================================== ======= ====== ============================================================= - steeringRatio Double Ratio of the steering gear - maximumSteeringWheelAngleAmplitude Double degree Maximum amplitude of the steering wheel angle - ====================================== ======= ====== ============================================================= - -Sensor_Driver --------------- - -The Sensor_Driver performs queries on the AgentInterface to gather information about the own agent and its surroundings. -These are forwarded to the driver modules and the Algorithm modules, which use them for their calculations. - -See :ref:`sensor_driver`. - -Sensor_OSI ------------ - -This module is a representation of various sensors and uses OSI for its input and output. -Currently, two types of sensors (SensorGeometric2D and ReceiverCar2X) are available. - -SensorGeometric2D -~~~~~~~~~~~~~~~~~ - -The SensorGeometric2D detects all objects in a sector with specified range and opening angle. -The input of the sensor is a OSI SensorView generated by the OSI World and its output is a OSI SensorData structure. - -For generation of the SensorView, a SensorViewConfiguration has to be provided by the sensor to the OSI World. See image for a visualization of the -dataflow. - -.. figure:: ./draw.io/SensorView_Dataflow.png - - OSI SensorView dataflow - -From OSI development perspective, the OSI World would have to send back a SensorViewConfiguration to the sensor, with the contents describing the -actual configuration of the SensorView (since the World is maybe notable to provide the requested information). -As we have full control over the simulation environment, this back-channel is skipped and SensorView according to the sensor'S SensorView configuration -will always be provided. - -To test whether an object is inside our sector we check -1. if it is inside the circle around the sensor with radius the detection range and -2. if it intersects a suitable polygon - -Depending on the opening-angle the polygon in 2) has either four (angle < 180°) or five corners (angle >= 180°). - -.. figure:: ./images/sensor2d_kite_polygon.svg - - four-corner kite polygon for angle lower than 180° - -======= ================= ================== ========= -Object intersects circle intersects polygon detected -======= ================= ================== ========= -A true false false -B true true true -C false true false -D false false false -E true true true -======= ================= ================== ========= - -.. figure:: ./images/sensor2d_five_corner_polygon.svg - - five-corner polygon for angle greater or equal 180° and greater 360° - -======= ================= ================== ========= -Object intersects circle intersects polygon detected -======= ================= ================== ========= -A false true false -B true true true -C true true true -D true false false -E false false false -======= ================= ================== ========= - -For convex BBoxes the above will give correct detection results. - -Both polygons are constructed from corner-points consisting out of the intersection between the opening-angle boundaries at maximum detection range and their corresponding tangents. - -Function -~~~~~~~~ - -1. Construct the polygon based on the opening-angle -2. Check if detection-field (polygon) intersects with any BBox (object-detection) -3. Calculate the distance between sensor and object -4. if (dist <= range && isIntersecting) -> object is in circular sector (object validation) - -Cases -~~~~~ - -- For angles < 1.0 * pi a four-corner (kite) polygon can be constructed out of two radiuses and two tangents. -- For angles > = 1.0 * pi and < 2.0 * pi a five-corner polygon can be constructed of two radiuses an three tangents. -- For opening-angle of exactly 2.0 * pi the distance information suffices. No polygon is needed. - -Visual Obstruction -~~~~~~~~~~~~~~~~~~ - -Objects in front of others block the sensors line of sight. -If an object is large enough it might visually obstruct others. -To check if one or multiple objects in combination "shadow" other objects the flag ``EnableVisualObstruction`` can be set. -Also the minimum required percentage of the visible area of an object to be detected can be specified. -The implemented algorithm uses the concept of shadow-casting, where the sensor cone is assumed to be the light source and the resulting shadow is calculated for each object. -If an object is shadowed too much, it is removed from the list of detected objects. - -Shadow casting is calculated as follows: - -1. Approximate detection field as circular sector. -2. Calculate the casted shadow of each object inside the detection field. -3. Remove bounding box of object from shadow, so that it can be detected. -4. Remove the casted shadow from the detection field. -5. For each object, check if remaining area is inside the remaining polygon. -6. Remove objects, if relation ``covered object area/total object area`` is smaller than a parameterizable threshold. - -**Example** - -Assume that the vehicle ahead is fully captured by the following vehicle's sensor cone. -The outer points of the bounding box define the cone of the shadow. - -.. figure:: ./images/shadow_casting_step01.svg - - Vehicle within sensor range - -For calculation of the shadow polygon, these boundary vectors needs to be extended w.r.t. detection range. - -In order to calculate the shadow polygon, the bounding vectors needs to be scaled with regard to the detection area. -Note that extending only to the edges of the detection area would produce too small a shadow. - -.. figure:: ./images/shadow_casting_step02.svg - - Too small shadow with missing area in red - -To avoid numerical scaling problems related to the length of the bounding vectors, the shadow is not stretched to a fixed size. -Instead, the internal algorithm overestimates the size of the shadow, with the detection range as a guaranteed lower limit. - -.. figure:: ./images/shadow_casting_step03.svg - - Overestimated shadow - -For this guarantee, the actual detection area must be approximated along the edge of the ideal circle (rather than by a tangential approximation). -With regard to typical object sizes and detection areas, the error can be considered negligible. - -.. figure:: ./images/shadow_casting_step04.svg - - Approximation of the sensor cone - -Next, the object's bounding box is removed from the shadow. - -.. figure:: ./images/shadow_casting_step05.svg - - Approximated sensor cone and shadow with removed bounding box - -Finally, the shadow is subtracted from the sensor cone. - -.. figure:: ./images/shadow_casting_step06.svg - - Sensor cone with removed shadow - -The process is repeated for each object in the detection area. - -.. figure:: ./images/shadow_casting_step07.svg - - Shadow of partially occluded vehicle - -.. figure:: ./images/shadow_casting_step08.svg - - Sensor cone with removed shadow of partially occluded vehicle - -Note that the order of shadow calculation and subtraction is irrelevant. - -SensorFusionOSI ---------------- - -The SensorFusionOSI module allows unsorted aggregation of any data provided by sensors. All sampled detected objects can then be broadcasted to connected ADAS. - -It collects all SensorDataSignals and merges them into a single SensorDataSignal. - -.. _agentcomponents_signalprioritizer: - -SignalPrioritizer ------------------ - -All channels can only have one source. -If one module can have the same input type from multiple sources a prioritizer module is needed in between. -All sources then get an output channel to the prioritizer module and the prioritizer gets an output to the module, which uses this signal. -If more than an component sends an active signal during the same timestep, the prioritizer forwards only the signal from the input channel with the highest priority. -These priorities are set as parameters in the systemconfigblueprint.xml, where the key corresponds the the id of the input channel and the value is the priority (higher value is prioritized). -In the following example the channel with id 102 has the highest priority (3) and the channel with id 100 has the lowest priority (1). - -.. code-block:: xml - - <component> - <id>PrioritizerName</id> - <schedule> - <priority>150</priority> - <offset>0</offset> - <cycle>100</cycle> - <response>0</response> - </schedule> - <library>SignalPrioritizer</library> - <parameters> - <parameter> - <id>100</id> - <type>int</type> - <unit/> - <value>1</value> - </parameter> - <parameter> - <id>101</id> - <type>int</type> - <unit/> - <value>2</value> - </parameter> - <parameter> - <id>102</id> - <type>int</type> - <unit/> - <value>3</value> - </parameter> - </parameters> - </component> - -One prioritizer module can only handle signals of the same type and the signal class must be derived from ComponentStateSignal. -If there is no signal in one time step, then the signal of the previous time step is hold. - -**Existing prioritizer modules** - -* PrioritizerAccelerationVehicleComponents -* PrioritizerSteeringVehicleComponents -* PrioritizerTurningIndicator -* PrioritizerLongitudinal -* PrioritizerSteering -* PrioritizerDynamics - - -.. _agentcomponents_componentcontroller: - -ComponentController -------------------- - -Overview -~~~~~~~~~ - -The ComponentController (CC) is used to configure and handle dependencies between other vehicle components. - -Example use cases could be: - -- Cruise control: - - - driver requesting higher acceleration than cruise control overrides the latter - - driver braking deactivates cruise control - -- Lane keeping assistant: - - - cannot be activated by driver, if emergency braking is currently active - - stays active, when emergency braking occurs (i. e. by other ADAS) - -The responsibilies of the CC are: - -- Handling of all dependencies between *VehicleComponents* in case a component wants to activate -- Make information about driver, *TrajectoryFollower* and other *VehicleComponents* available to each other -- Determine the highest allowed activation state of a component and notify the affected component about this state - -To achieve this tasks, each component is assigned a maximum allowed state in each time step. This state is of type ComponentState, -which defines *Disabled*, *Armed* or *Active* as allowed states. -Drivers can be in a state of either *Active* or *Passive*. - -State handling inside Vehicle Component -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Within a vehicle component, the information flow should be implemented as follows: - -1. The vehicle component retrieves the information of other components and the current maximum allowed state from the CC. - Other components include drivers, trajectory followers and all other vehicle components connected to the CC. -2. Based on that information the vehicle component determines its current desired state. -3. The desired state is sent to the CC. - -The CC handles all the dependencies between different components and determines the maximum allowed state for each component based -on the configuration of the CC. - -Used signals -~~~~~~~~~~~~~ - -The CC communicates with the controlled components via framework signals. - -Inputs to the ComponentController: - -.. table:: - :class: tight-table - - ================== ===================================================== ============================= - Source Contents Signal - ================== ===================================================== ============================= - TrajectoryFollower Current state ComponentStateSignal - Driver Current state, pedal activity DriverStateSignal - VehicleComponent Current state, desired state, generic ADAS parameters VehicleCompToCompCtrlSignal - ================== ===================================================== ============================= - - -Output to other components: - -.. table:: - :class: tight-table - - ================== ========================================================================== ============================= - Destination Contents Signal - ================== ========================================================================== ============================= - TrajectoryFollower Current max. reachable state ComponentStateSignal - Driver List of all ADAS with names, stati and types AdasStateSignal - VehicleComponent Current max. reachable state, list of all ADAS with names, stati and types CompCtrlToVehicleCompSignal - ================== ========================================================================== ============================= +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2023-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _agentcomponents: + +Agent Components +================ + +An agent in openPASS is composed of multiple modules, which are connected by corresponding signals. +As shown in the next figure, the modules can be roughly divided into the groups drivers, vehicle components, algorithms, dynamic modules, and prioritizers. +Thereby, modules can consist of several submodules, such as sensor (reading from an interface) and action (writing to an interface). + +.. figure:: ./draw.io/DynamicsModules.png + + Modules for longitudinal and lateral dynamics + +By statistic means, based on corresponding probabilities defined in the :ref:`profilescatalog`, each individual agent is composed from a superset of all possible (valid) combinations, which is defined by the :ref:`systemconfigblueprint`. +This config defines all available framework modules and agent modules and connects them by corresponding channels, which in turn have a specific signal type. + +The next figure gives an exhaustive overview over the current superset: + +.. _component_channel_communication: + +.. figure:: ./draw.io/ComponentsChannelCommunicationDiagram.png + + Components and channel communication + +:download:`./draw.io/ComponentsChannelCommunicationDiagram.drawio` + +Modules that can be parametrized by the user are explained in the :ref:`Simulation User Guide <simuserguide_components>`. +Therefor the following section only contains the components not listed in the user guide. + +Action_LongitudinalDriver +------------------------- + +Updates the agents pedal positions and gear. +The input for this module is prepared by the AlgorithmLongitudinal Module. + +Action_SecondaryDriver +----------------------- + +Updates the agents braking light, indicator, horn and all light switches (headlight, high beam, flasher). +The input for this module is prepared by the driver module. + +**Overview of the module's functionalities** + +Action_SecondaryDriver gathers the secondary driving tasks and transfers them to output signals. Three graded driving tasks are defined and exampled as follows: + +**Primary driving tasks:** direct control of vehicle movements, like steering, pedal operation, shifting, etc. + +**Secondary driving tasks:** indirect control of vehicle movements, but supporting and complementing driving actions, like activation of indicator, horn, light, etc. + +**Tertiary driving tasks:** all the other activities, which are not related to vehicle control, like radio operation, etc. + +Table list of the input paramemter: + +======================== =========================== ============================= +Variable Description Value +======================== =========================== ============================= +in_indicatorState State of the indicator left, center/off, right, warn +in_hornSwitch Horn activation true/false +in_headLightSwitch Light activation true/false +in_highBeamLightSwitch High beam light activation true/false +in_flasherSwitch Flasher activation true/false +======================== =========================== ============================= + +AgentUpdater +------------ + +The AgentUpdater executes all Set-Methods of the agent dynamics after the DynamicsPrioritizer. This includes position, velocity, acceleration and rotation. + +Algorithm_Lateral +----------------- + +This module converts the lateral input of the driver module into a steering wheel angle. + +See :ref:`algorithm_lateral`. + +Algorithm_Longitudinal +---------------------- + +This module converts the acceleration input of the driver module into pedal positions and gear. + +See :ref:`algorithm_longitudinal`. + +AlgorithmCar2XSender +-------------------- + +This module publishes the below mentioned parameters in each timestep via the RadioInterface provided by the World. + +======================= ======= ===== ================================================ +Parameter Type Unit Description +======================= ======= ===== ================================================ +SignalStrength Double W Singal strength of the Car2XSender +SendPositionXEnabled Boolean If true, the x-coordinate of the agent is sent +SendPositionYEnabled Boolean If true, the y-coordinate of the agent is sent +SendVelocityEnabled Boolean If true, the velocity of the agent is sent +SendAccelerationEnabled Boolean If true, the acceleration of the agent is sent +SendYawEnabled Boolean If true, the yaw angle of the agent is sent +======================= ======= ===== ================================================ + +Dynamics_Collision +------------------ + +If the number of collision partners of the agent is bigger than in the previous time step, the DynamicsCollision module calculates the collision. +Currently the collision is implemented fully inelastic, i.e. all agents will have the same velocity after the collision, while the momentum is conserved. +After the collision the agents slow down with a fixed deceleration until fully stopped. + +Dynamics_Scenario +----------------- + +See :ref:`dynamics_scenario`. + +Dynamics_RegularDriving +------------------------ + +The module takes care that the motion of the agent fit to the physical limitations, such as friction or maximum possible acceleration based on the current gear. +This module uses both the world friction and the vehicle model parameter friction. +Thereby it calculates the dynamics of the agents in every time step. +The currently covered dynamics are *Acceleration*, *Velocity*, and consequently *Position*, *Yaw angle* and *Yaw rate*. +The input for this module is the steering wheel angle and the new acceleration of the vehicle. + +See :ref:`dynamics_regular_driving`. + +LimiterAccelerationVehicleComponents +------------------------------------- + +This module limits the AccelerationSignal from the PrioritizerAccelerationVehicleComponents to the constraints given by the vehicle. The DynamicsTrajectoryFollower can then use this signal to calculate a trajectory. + +The limit is calculated by :math:`a_{\text{lim}} = \frac {F_{\text{wheel}} - F_{\text{roll}} - F_{\text{air}}} {m_{\text{veh}}}`, where the symbols meanings are: + +======================== ================================================ +Symbol Description +======================== ================================================ +:math:`a_{\text{lim}}` Resulting acceleration limit [m/s²] +:math:`F_{\text{wheel}}` Force at wheel (provided by drivetrain) [N] +:math:`F_{\text{roll}}` Force resulting from rolling resistance [N] +:math:`F_{\text{air}}` Force resulting from air drag [N] +:math:`m_{\text{veh}}` Mass of the vehicle [kg] +======================== ================================================ + +The components are calculated as follows: + +**Driving force** + +:math:`F_{\text{wheel}} = \frac {T_{\text{engine}} \cdot r_{\text{axle}}} {r_{\text{wheel}}}` + +========================= ============================================================================================ +Symbol Description +========================= ============================================================================================ +:math:`T_{\text{engine}}` Resulting torque from drivetrain at current velocity (assuming best gearing selected) [Nm] +:math:`r_{\text{axle}}` Axle transmission ratio [1] +:math:`r_{\text{wheel}}` Static radius of the wheels [m] +========================= ============================================================================================ + +The engine torque :math:`T_{\text{engine}}` is calculated by a simple model, where the torque scales proportional with the current engine speed between 1350 and 5000 rpm, up to maximum engine torque. +From minimum engine speed up to 1350 rpm the torque scales proportional with the engine speed up to half the maximum torque. +From 5000 rpm up to maximum engine speed, the torque scales with 5000 / maxEngineSpeed, up to maximum torque. + +**Rolling resistance** + +:math:`F_{\text{roll}} = m_{\text{veh}} \cdot c_{\text{fric}} \cdot g` + +========================= ============================================================================================ +Symbol Description +========================= ============================================================================================ +:math:`m_{\text{veh}}` Mass of the vehicle [kg] +:math:`c_{\text{fric}}` Rolling friction coefficient (constant 0.015) [1] +========================= ============================================================================================ + + +**Air drag** + +:math:`F_{\text{air}} = \frac {\rho_{\text{air}}} {2} \cdot A_{\text{front}} \cdot c_w \cdot v^2` + +========================= ============================================================================================ +Symbol Description +========================= ============================================================================================ +:math:`\rho_{\text{air}}` Density of air [kg/m³] +:math:`A_{\text{front}}` Vehicle front surface area [m²] +:math:`c_w` Drag coefficient [1] +:math:`v` Vehicle's current velocity [m/s] +========================= ============================================================================================ + +OpenScenarioActions +------------------- + +.. _OpenSCENARIO: https://www.asam.net/standards/detail/openscenario/ + +As defined by `OpenSCENARIO`_, OpenScenarioActions is the relaying module for: + +- Trajectory-actions +- LaneChange-actions +- UserDefined-actions. + +If a + +- TrajectoryManipulator +- LaneChangeManipulator + +or a user defined manipulator + +raises such an event for the specified agent, the module forwards it as signal to all interested module of the corresponding agent. The modules can than react on the signals content without time delay. + +.. _parameters_vehicle: + +Parameters_Vehicle +------------------- + +The ParametersVehicle module forwards the VehicleModelParameters to all other modules that need them via the ParametersVehicleSignal. + +This section includes all vehicle system related parameters, powertrain system related parameters and steering system related parameters. +Relevant parameters are presented in the following three tables with the corresponding explanations. + +Vehicle model related parameters +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. table:: + :class: tight-table + + ====================================== ====== ==== ============================================================ + Variable Type Unit Description + ====================================== ====== ==== ============================================================ + width Double m Maximum width of the vehicle + length Double m Maximum length of the vehicle + height Double m Maximum height of the vehicle + wheelbase Double m Wheelbase of the vehicle + trackwidth Double m Trackwidth of the vehicle + distanceCOGtoLeadingEdge Double m Distance between the COG and the front bumper + distanceCOGtoFrontAxle Double m Distance between the COG and the front axle + heightCOG Double m Height of the center of gravity above ground + weight Double kg Overall mass of the vehicle + momentInertiaRoll Double kgm² Moment of inertia along the vehicle's longitudinal axis + momentInertiaPitch Double kgm² Moment of inertia along the vehicle's lateral axis + momentInertiaYaw Double kgm² Moment of inertia along the vehicle's vertical axis + frontSurface Double m² Projected front surface of the vehicle + airDragCoefficient Double Air drag coefficient of the vehicle + ====================================== ====== ==== ============================================================ + +Powertrain related parameters +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. table:: + :class: tight-table + + ====================================== ======= ===== ============================================================= + Variable Type Unit Description + ====================================== ======= ===== ============================================================= + minimumEngineSpeed Double 1/min Idle speed of the engine + maximumEngineSpeed Double 1/min Maximum engine speed + minimumEngineTorque Double Nm Minimum torque of the engine + maximumEngineTorque Double Nm Maximum torque of the engine + numberOfGears Integer Number of gears in the gearbox + axleRatio Double Ratio of the axle gear + decelerationFromPowertrainDrag Double m/s² Deceleration caused by the overall powertrain drag torque + ====================================== ======= ===== ============================================================= + +Steering related parameters +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. table:: + :class: tight-table + + ====================================== ======= ====== ============================================================= + Variable Type Unit Description + ====================================== ======= ====== ============================================================= + steeringRatio Double Ratio of the steering gear + maximumSteeringWheelAngleAmplitude Double degree Maximum amplitude of the steering wheel angle + ====================================== ======= ====== ============================================================= + +Sensor_Driver +-------------- + +The Sensor_Driver performs queries on the AgentInterface to gather information about the own agent and its surroundings. +These are forwarded to the driver modules and the Algorithm modules, which use them for their calculations. + +See :ref:`sensor_driver`. + +Sensor_OSI +----------- + +This module is a representation of various sensors and uses OSI for its input and output. +Currently, two types of sensors (SensorGeometric2D and ReceiverCar2X) are available. + +SensorGeometric2D +~~~~~~~~~~~~~~~~~ + +The SensorGeometric2D detects all objects in a sector with specified range and opening angle. +The input of the sensor is a OSI SensorView generated by the OSI World and its output is a OSI SensorData structure. + +For generation of the SensorView, a SensorViewConfiguration has to be provided by the sensor to the OSI World. See image for a visualization of the +dataflow. + +.. figure:: ./draw.io/SensorView_Dataflow.png + + OSI SensorView dataflow + +From OSI development perspective, the OSI World would have to send back a SensorViewConfiguration to the sensor, with the contents describing the +actual configuration of the SensorView (since the World is maybe notable to provide the requested information). +As we have full control over the simulation environment, this back-channel is skipped and SensorView according to the sensor'S SensorView configuration +will always be provided. + +To test whether an object is inside our sector we check +1. if it is inside the circle around the sensor with radius the detection range and +2. if it intersects a suitable polygon + +Depending on the opening-angle the polygon in 2) has either four (angle < 180°) or five corners (angle >= 180°). + +.. figure:: ./images/sensor2d_kite_polygon.svg + + four-corner kite polygon for angle lower than 180° + +======= ================= ================== ========= +Object intersects circle intersects polygon detected +======= ================= ================== ========= +A true false false +B true true true +C false true false +D false false false +E true true true +======= ================= ================== ========= + +.. figure:: ./images/sensor2d_five_corner_polygon.svg + + five-corner polygon for angle greater or equal 180° and greater 360° + +======= ================= ================== ========= +Object intersects circle intersects polygon detected +======= ================= ================== ========= +A false true false +B true true true +C true true true +D true false false +E false false false +======= ================= ================== ========= + +For convex BBoxes the above will give correct detection results. + +Both polygons are constructed from corner-points consisting out of the intersection between the opening-angle boundaries at maximum detection range and their corresponding tangents. + +Function +~~~~~~~~ + +1. Construct the polygon based on the opening-angle +2. Check if detection-field (polygon) intersects with any BBox (object-detection) +3. Calculate the distance between sensor and object +4. if (dist <= range && isIntersecting) -> object is in circular sector (object validation) + +Cases +~~~~~ + +- For angles < 1.0 * pi a four-corner (kite) polygon can be constructed out of two radiuses and two tangents. +- For angles > = 1.0 * pi and < 2.0 * pi a five-corner polygon can be constructed of two radiuses an three tangents. +- For opening-angle of exactly 2.0 * pi the distance information suffices. No polygon is needed. + +Visual Obstruction +~~~~~~~~~~~~~~~~~~ + +Objects in front of others block the sensors line of sight. +If an object is large enough it might visually obstruct others. +To check if one or multiple objects in combination "shadow" other objects the flag ``EnableVisualObstruction`` can be set. +Also the minimum required percentage of the visible area of an object to be detected can be specified. +The implemented algorithm uses the concept of shadow-casting, where the sensor cone is assumed to be the light source and the resulting shadow is calculated for each object. +If an object is shadowed too much, it is removed from the list of detected objects. + +Shadow casting is calculated as follows: + +1. Approximate detection field as circular sector. +2. Calculate the casted shadow of each object inside the detection field. +3. Remove bounding box of object from shadow, so that it can be detected. +4. Remove the casted shadow from the detection field. +5. For each object, check if remaining area is inside the remaining polygon. +6. Remove objects, if relation ``covered object area/total object area`` is smaller than a parameterizable threshold. + +**Example** + +Assume that the vehicle ahead is fully captured by the following vehicle's sensor cone. +The outer points of the bounding box define the cone of the shadow. + +.. figure:: ./images/shadow_casting_step01.svg + + Vehicle within sensor range + +For calculation of the shadow polygon, these boundary vectors needs to be extended w.r.t. detection range. + +In order to calculate the shadow polygon, the bounding vectors needs to be scaled with regard to the detection area. +Note that extending only to the edges of the detection area would produce too small a shadow. + +.. figure:: ./images/shadow_casting_step02.svg + + Too small shadow with missing area in red + +To avoid numerical scaling problems related to the length of the bounding vectors, the shadow is not stretched to a fixed size. +Instead, the internal algorithm overestimates the size of the shadow, with the detection range as a guaranteed lower limit. + +.. figure:: ./images/shadow_casting_step03.svg + + Overestimated shadow + +For this guarantee, the actual detection area must be approximated along the edge of the ideal circle (rather than by a tangential approximation). +With regard to typical object sizes and detection areas, the error can be considered negligible. + +.. figure:: ./images/shadow_casting_step04.svg + + Approximation of the sensor cone + +Next, the object's bounding box is removed from the shadow. + +.. figure:: ./images/shadow_casting_step05.svg + + Approximated sensor cone and shadow with removed bounding box + +Finally, the shadow is subtracted from the sensor cone. + +.. figure:: ./images/shadow_casting_step06.svg + + Sensor cone with removed shadow + +The process is repeated for each object in the detection area. + +.. figure:: ./images/shadow_casting_step07.svg + + Shadow of partially occluded vehicle + +.. figure:: ./images/shadow_casting_step08.svg + + Sensor cone with removed shadow of partially occluded vehicle + +Note that the order of shadow calculation and subtraction is irrelevant. + +SensorFusionOSI +--------------- + +The SensorFusionOSI module allows unsorted aggregation of any data provided by sensors. All sampled detected objects can then be broadcasted to connected ADAS. + +It collects all SensorDataSignals and merges them into a single SensorDataSignal. + +.. _agentcomponents_signalprioritizer: + +SignalPrioritizer +----------------- + +All channels can only have one source. +If one module can have the same input type from multiple sources a prioritizer module is needed in between. +All sources then get an output channel to the prioritizer module and the prioritizer gets an output to the module, which uses this signal. +If more than an component sends an active signal during the same timestep, the prioritizer forwards only the signal from the input channel with the highest priority. +These priorities are set as parameters in the systemconfigblueprint.xml, where the key corresponds the the id of the input channel and the value is the priority (higher value is prioritized). +In the following example the channel with id 102 has the highest priority (3) and the channel with id 100 has the lowest priority (1). + +.. code-block:: xml + + <component> + <id>PrioritizerName</id> + <schedule> + <priority>150</priority> + <offset>0</offset> + <cycle>100</cycle> + <response>0</response> + </schedule> + <library>SignalPrioritizer</library> + <parameters> + <parameter> + <id>100</id> + <type>int</type> + <unit/> + <value>1</value> + </parameter> + <parameter> + <id>101</id> + <type>int</type> + <unit/> + <value>2</value> + </parameter> + <parameter> + <id>102</id> + <type>int</type> + <unit/> + <value>3</value> + </parameter> + </parameters> + </component> + +One prioritizer module can only handle signals of the same type and the signal class must be derived from ComponentStateSignal. +If there is no signal in one time step, then the signal of the previous time step is hold. + +**Existing prioritizer modules** + +* PrioritizerAccelerationVehicleComponents +* PrioritizerSteeringVehicleComponents +* PrioritizerTurningIndicator +* PrioritizerLongitudinal +* PrioritizerSteering +* PrioritizerDynamics + + +.. _agentcomponents_componentcontroller: + +ComponentController +------------------- + +Overview +~~~~~~~~~ + +The ComponentController (CC) is used to configure and handle dependencies between other vehicle components. + +Example use cases could be: + +- Cruise control: + + - driver requesting higher acceleration than cruise control overrides the latter + - driver braking deactivates cruise control + +- Lane keeping assistant: + + - cannot be activated by driver, if emergency braking is currently active + - stays active, when emergency braking occurs (i. e. by other ADAS) + +The responsibilies of the CC are: + +- Handling of all dependencies between *VehicleComponents* in case a component wants to activate +- Make information about driver, *TrajectoryFollower* and other *VehicleComponents* available to each other +- Determine the highest allowed activation state of a component and notify the affected component about this state + +To achieve this tasks, each component is assigned a maximum allowed state in each time step. This state is of type ComponentState, +which defines *Disabled*, *Armed* or *Active* as allowed states. +Drivers can be in a state of either *Active* or *Passive*. + +State handling inside Vehicle Component +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Within a vehicle component, the information flow should be implemented as follows: + +1. The vehicle component retrieves the information of other components and the current maximum allowed state from the CC. + Other components include drivers, trajectory followers and all other vehicle components connected to the CC. +2. Based on that information the vehicle component determines its current desired state. +3. The desired state is sent to the CC. + +The CC handles all the dependencies between different components and determines the maximum allowed state for each component based +on the configuration of the CC. + +Used signals +~~~~~~~~~~~~~ + +The CC communicates with the controlled components via framework signals. + +Inputs to the ComponentController: + +.. table:: + :class: tight-table + + ================== ===================================================== ============================= + Source Contents Signal + ================== ===================================================== ============================= + TrajectoryFollower Current state ComponentStateSignal + Driver Current state, pedal activity DriverStateSignal + VehicleComponent Current state, desired state, generic ADAS parameters VehicleCompToCompCtrlSignal + ================== ===================================================== ============================= + + +Output to other components: + +.. table:: + :class: tight-table + + ================== ========================================================================== ============================= + Destination Contents Signal + ================== ========================================================================== ============================= + TrajectoryFollower Current max. reachable state ComponentStateSignal + Driver List of all ADAS with names, stati and types AdasStateSignal + VehicleComponent Current max. reachable state, list of all ADAS with names, stati and types CompCtrlToVehicleCompSignal + ================== ========================================================================== ============================= diff --git a/content/html/_sources/advanced_topics/simulator/coordinate_systems.rst.txt b/content/html/_sources/advanced_topics/simulator/coordinate_systems.rst.txt index 8d663dbb05a0294361323d0efceb70ab7aaa1b95..812a8108d7c8de8aec08a7feeb9d5187b44cb6b4 100644 --- a/content/html/_sources/advanced_topics/simulator/coordinate_systems.rst.txt +++ b/content/html/_sources/advanced_topics/simulator/coordinate_systems.rst.txt @@ -1,101 +1,101 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - 2022-2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _coordinatesystems: - -Coordinate Systems -================== - -|op| uses three different coordinate systems. -All systems rotate counterclockwise and use radian. - -.. _coordinatesystems_world: - -World Coordinate System ------------------------ - -The world coordinate system is absolute. -It is the parent coordinate system and all other systems are relative to the world coordinate system. -This system consists of *x*, *y* and *z* (*z* is currently unused). - -.. figure:: ./images/WorldCoordinateSystem.svg - - World Coordinate System - -.. _coordinatesystems_road: - -Road Coordinate System ----------------------- - -The road coordinate system is relative to the position of the road in the world coordinate system. -It consists of *s* and *t* coordinates, where *s* describes the longitudinal position along the road. -At the beginning of the road *s* = 0, increasing with the downstream direction of the road. -The coordinate *t* describes the lateral position relative to the center of the road, where *t* > 0 indicates left side and *t* < 0 right side of the road with respect to the road direction. - -.. figure:: ./images/RoadCoordinateSystem.svg - - Road Coordinate System - -.. _coordinatesystems_agent: - -Agent Coordinate System -~~~~~~~~~~~~~~~~~~~~~~~ - -The agent coordinate system is relative to the position of the agent in the world coordinate system. -It uses longitudinal, lateral and height (height currently unused). -The system originates at the *reference point*, which is located at the center of the rear axle. -The longitudinal axis is parallel to the length of the car and the lateral axis is parallel to the width of the car - -.. figure:: ./images/AgentCoordinateSystem.svg - - Agent Coordinate System - -.. _coordinatesystems_sensor: - -Sensor Coordinate System ------------------------- - -Each sensor has its own coordinate system whose origin is the mounting position of the sensor. -The *x* axis points in the direction of the sensor as defined by the mounting orientation. -All values in the OSI SensorData generated by a sensor are in its sensor coordinate system. -Vectorial values such as velocity and acceleration are relative to the own vehicle's velocity and acceleration at the sensor position. - -.. _coordinatesystems_sensor_transformation: - -Conversions between SensorData coordinate systems -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Since all values in the SensorData are relative to the sensor the following conversions are needed. - -In the Sensor_OSI where the SensorData is written, data for other objects is calculated according to these steps: - -#) Get position, velocity and acceleration from the SensorView in world coordinates -#) For the position: - #) Translation by the sensor position (in world coordinates, inverse) - #) Rotation by the sensor orientation (in world coordinates, inverse) -#) For the velocity and acceleration (vectorial): - #) Subtract own velocity / acceleration at sensor position - #) Rotation by the sensor orientation (in world coordinates, inverse) - -ADAS using SensorData may need to convert the values back to the agent coordinate system. -The SensorFusion_Errorless also converts the merged SensorData to agent coordinate and sets the mounting position to the agents reference point. -This calculation follows the following steps: - -#) Get position, velocity and acceleration from the SensorData in sensor coordinates -#) For the position: - #) Rotation by the sensor orientation (mounting position in agent coordinates) - #) Translation by the sensor position (mounting position in agent coordinates) -#) For the velocity and acceleration (vectorial): - #) Calculate the difference between the ego velocity / acceleration at the sensor position to the reference point (in world coordinates) - #) Rotation of this difference by the inverse agent orientation - #) Rotation of objects' velocity / acceleration by the sensor orientation (mounting position in agent coordinates) - #) Add results of the two previous steps +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2022-2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _coordinatesystems: + +Coordinate Systems +================== + +|op| uses three different coordinate systems. +All systems rotate counterclockwise and use radian. + +.. _coordinatesystems_world: + +World Coordinate System +----------------------- + +The world coordinate system is absolute. +It is the parent coordinate system and all other systems are relative to the world coordinate system. +This system consists of *x*, *y* and *z* (*z* is currently unused). + +.. figure:: ./images/WorldCoordinateSystem.svg + + World Coordinate System + +.. _coordinatesystems_road: + +Road Coordinate System +---------------------- + +The road coordinate system is relative to the position of the road in the world coordinate system. +It consists of *s* and *t* coordinates, where *s* describes the longitudinal position along the road. +At the beginning of the road *s* = 0, increasing with the downstream direction of the road. +The coordinate *t* describes the lateral position relative to the center of the road, where *t* > 0 indicates left side and *t* < 0 right side of the road with respect to the road direction. + +.. figure:: ./images/RoadCoordinateSystem.svg + + Road Coordinate System + +.. _coordinatesystems_agent: + +Agent Coordinate System +~~~~~~~~~~~~~~~~~~~~~~~ + +The agent coordinate system is relative to the position of the agent in the world coordinate system. +It uses longitudinal, lateral and height (height currently unused). +The system originates at the *reference point*, which is located at the center of the rear axle. +The longitudinal axis is parallel to the length of the car and the lateral axis is parallel to the width of the car + +.. figure:: ./images/AgentCoordinateSystem.svg + + Agent Coordinate System + +.. _coordinatesystems_sensor: + +Sensor Coordinate System +------------------------ + +Each sensor has its own coordinate system whose origin is the mounting position of the sensor. +The *x* axis points in the direction of the sensor as defined by the mounting orientation. +All values in the OSI SensorData generated by a sensor are in its sensor coordinate system. +Vectorial values such as velocity and acceleration are relative to the own vehicle's velocity and acceleration at the sensor position. + +.. _coordinatesystems_sensor_transformation: + +Conversions between SensorData coordinate systems +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Since all values in the SensorData are relative to the sensor the following conversions are needed. + +In the Sensor_OSI where the SensorData is written, data for other objects is calculated according to these steps: + +#) Get position, velocity and acceleration from the SensorView in world coordinates +#) For the position: + #) Translation by the sensor position (in world coordinates, inverse) + #) Rotation by the sensor orientation (in world coordinates, inverse) +#) For the velocity and acceleration (vectorial): + #) Subtract own velocity / acceleration at sensor position + #) Rotation by the sensor orientation (in world coordinates, inverse) + +ADAS using SensorData may need to convert the values back to the agent coordinate system. +The SensorFusion_Errorless also converts the merged SensorData to agent coordinate and sets the mounting position to the agents reference point. +This calculation follows the following steps: + +#) Get position, velocity and acceleration from the SensorData in sensor coordinates +#) For the position: + #) Rotation by the sensor orientation (mounting position in agent coordinates) + #) Translation by the sensor position (mounting position in agent coordinates) +#) For the velocity and acceleration (vectorial): + #) Calculate the difference between the ego velocity / acceleration at the sensor position to the reference point (in world coordinates) + #) Rotation of this difference by the inverse agent orientation + #) Rotation of objects' velocity / acceleration by the sensor orientation (mounting position in agent coordinates) + #) Add results of the two previous steps diff --git a/content/html/_sources/advanced_topics/simulator/event_detector.rst.txt b/content/html/_sources/advanced_topics/simulator/event_detector.rst.txt index 9f5a2f479ef2f5f75ddb180dc5e6a741c51a0013..dfc5841fea492ddc9caebac47ebfe8019c74ee3a 100644 --- a/content/html/_sources/advanced_topics/simulator/event_detector.rst.txt +++ b/content/html/_sources/advanced_topics/simulator/event_detector.rst.txt @@ -1,75 +1,75 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - 2023 Mercedes-Benz Tech Innovation GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _eventdetector: - -EventDetector -============= - -EventDetectors are executed at the beginning of each timestep. -A detector uses its access to the world and the framework to detect specific events. -After detection, the event is usually forwarded to the EventNetwork. - -There are multiple EventDetectors available, all of them sharing a common interface. - -.. note:: Each instance of an EventDetector can have its own cycle time. - - -.. _eventdetector_collisiondetector: - -CollisionDetector ------------------ - -The CollisionDetector checks whether a collision has occurred. -Moving and stationary objects are taken into account. -Objects are considered as collided, if their two-dimensional bounding boxes intersect. - -.. note:: The calculation of the bounding box itself considers a potential inclination by the roll angle of an object (projection onto the xy-plane). - -In case of a collision, a CollisionEvent containing the participating object Ids is created. -This type of event is picked up by the CollisionManipulator, which updates the state of the collided objects accordingly. - -The geometric parameters of the crash configuration in terms of collision angles are determined according to Wagstrom et. al. (https://www-esv.nhtsa.dot.gov/Proceedings/26/26ESV-000177.pdf). In addition, collision velocities are stored. - -.. figure:: ./images/crash_config.svg - -Furthermore, the CollisionDetector contains an impact evaluation which estimates based on momentum the changes in velocities due to the collision, considering vehicle mass ratio and initial crash configuration, e.h. `VelocityChange`. The impact model behind these calculations was developed and tested with full-overlap vehicle-to-vehicle collisions. - -The concept was described in detail at ESAR 2016 in Kolk et. al. (https://bast.opus.hbz-nrw.de/opus45-bast/frontdoor/deliver/index/docId/1825/file/F117_21.pdf). - - -The parameters stored for each collision are listed in detail in the table below. - -============================ ==================================================================== -Parameter Description -============================ ==================================================================== -CollisionVelocity velocity of host prior to the collision -CollisionWithAgent true (1) / false (0) if collision occured with another agent -HCPA host collision point angle in degree -HCPAo normalized HCPA -OCPA opponent collision point angle -OCPAo normalized OCPA -OYA opponent yaw angle -OpponentCollisionVelocity velocity of opponent prior to the collision -OpponentPointOfContactLocalX X-coordinate of opponent point of contact in local coordinate system -OpponentPointOfContactLocalY Y-coordinate of opponent point of contact in local coordinate system -OpponentVelocity velocity of opponent after the collision -OpponentVelocityChange velocity change of opponent due to collision -OpponentVelocityDirection velocity direction -OpponentYawVelocity opponent yaw velocity -PointOfContactLocalX X-coordinate of point of contact in local coordinate system -PointOfContactLocalY Y-coordinate of opponent point of contact in local coordinate system -Velocity velocity of host after the collision -VelocityChange velocity change of host due to collision -============================ ==================================================================== - -.. note:: Both geometric interpretation and impact calculation only work for collisions between two car agents. A more general application is work in progress. +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2023 Mercedes-Benz Tech Innovation GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _eventdetector: + +EventDetector +============= + +EventDetectors are executed at the beginning of each timestep. +A detector uses its access to the world and the framework to detect specific events. +After detection, the event is usually forwarded to the EventNetwork. + +There are multiple EventDetectors available, all of them sharing a common interface. + +.. note:: Each instance of an EventDetector can have its own cycle time. + + +.. _eventdetector_collisiondetector: + +CollisionDetector +----------------- + +The CollisionDetector checks whether a collision has occurred. +Moving and stationary objects are taken into account. +Objects are considered as collided, if their two-dimensional bounding boxes intersect. + +.. note:: The calculation of the bounding box itself considers a potential inclination by the roll angle of an object (projection onto the xy-plane). + +In case of a collision, a CollisionEvent containing the participating object Ids is created. +This type of event is picked up by the CollisionManipulator, which updates the state of the collided objects accordingly. + +The geometric parameters of the crash configuration in terms of collision angles are determined according to Wagstrom et. al. (https://www-esv.nhtsa.dot.gov/Proceedings/26/26ESV-000177.pdf). In addition, collision velocities are stored. + +.. figure:: ./images/crash_config.svg + +Furthermore, the CollisionDetector contains an impact evaluation which estimates based on momentum the changes in velocities due to the collision, considering vehicle mass ratio and initial crash configuration, e.h. `VelocityChange`. The impact model behind these calculations was developed and tested with full-overlap vehicle-to-vehicle collisions. + +The concept was described in detail at ESAR 2016 in Kolk et. al. (https://bast.opus.hbz-nrw.de/opus45-bast/frontdoor/deliver/index/docId/1825/file/F117_21.pdf). + + +The parameters stored for each collision are listed in detail in the table below. + +============================ ==================================================================== +Parameter Description +============================ ==================================================================== +CollisionVelocity velocity of host prior to the collision +CollisionWithAgent true (1) / false (0) if collision occured with another agent +HCPA host collision point angle in degree +HCPAo normalized HCPA +OCPA opponent collision point angle +OCPAo normalized OCPA +OYA opponent yaw angle +OpponentCollisionVelocity velocity of opponent prior to the collision +OpponentPointOfContactLocalX X-coordinate of opponent point of contact in local coordinate system +OpponentPointOfContactLocalY Y-coordinate of opponent point of contact in local coordinate system +OpponentVelocity velocity of opponent after the collision +OpponentVelocityChange velocity change of opponent due to collision +OpponentVelocityDirection velocity direction +OpponentYawVelocity opponent yaw velocity +PointOfContactLocalX X-coordinate of point of contact in local coordinate system +PointOfContactLocalY Y-coordinate of opponent point of contact in local coordinate system +Velocity velocity of host after the collision +VelocityChange velocity change of host due to collision +============================ ==================================================================== + +.. note:: Both geometric interpretation and impact calculation only work for collisions between two car agents. A more general application is work in progress. diff --git a/content/html/_sources/advanced_topics/simulator/scenario_actions.rst.txt b/content/html/_sources/advanced_topics/simulator/scenario_actions.rst.txt index 0ab152c83e2f434d909135dbf077b5b92904878b..8c74d21a79e22f408e6484d37c98e2f02ff2fbdd 100644 --- a/content/html/_sources/advanced_topics/simulator/scenario_actions.rst.txt +++ b/content/html/_sources/advanced_topics/simulator/scenario_actions.rst.txt @@ -1,309 +1,353 @@ -.. - ******************************************************************************* - Copyright (c) 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _mapping_scenario_actions: - -Mapping of OpenSCENARIO Actions -================================ - -.. table:: - :class: tight-table - - =================== ============= - Layer/Component API/Datatype - =================== ============= - OpenSCENARIO - OpenScenarioEngine mantle_api - opSimualtion openPASS - FMU Interface osi3 - =================== ============= - -AcquirePositionAction ----------------------- - -.. table:: - :class: tight-table - - +--------------+-------------------------------------------------------------------------------------------------------+ - | API/Datatype | Used Methods/Classes/API | - +==============+=======================================================================================================+ - | OpenSCENARIO | **AcquirePositionAction** | - +--------------+-------------------------------------------------------------------------------------------------------+ - | mantle_api | Entity::AssignRoute(UniqueId, RouteDefinition) | - | | Entity::GetPosition() | - | | GeometryHelper::TranslateGlobalPositionLocally() | - +--------------+-------------------------------------------------------------------------------------------------------+ - | openPASS | SpawnParameter | - | | AgentInterface::GetPositionX() | - | | AgentInterface::GetPositionY() | - | | AgentInterface::GetYaw() | - | +-------------------------------------------------------------------------------------------------------+ - | | RouteSamplerInterface::CalculateRouteFromWaypoints(std::vector<mantle_api::RouteWaypoint>) | - | | EgoAgentInterface::SetRoadGraph(RoadGraph, RoadGraphVertex, RoadGraphVertex) | - +--------------+-------------------------------------------------------------------------------------------------------+ - | osi3 | x -- not implemented | - +--------------+-------------------------------------------------------------------------------------------------------+ - -AssignRouteAction ------------------- - -.. table:: - :class: tight-table - - +--------------+-------------------------------------------------------------------------------------------------------+ - | API/Datatype | Used Methods/Classes/API | - +==============+=======================================================================================================+ - | OpenSCENARIO | **AssignRouteAction** | - +--------------+-------------------------------------------------------------------------------------------------------+ - | mantle_api | Entity::AssignRoute(UniqueId, RouteDefinition) | - +--------------+-------------------------------------------------------------------------------------------------------+ - | openPASS | RouteSamplerInterface::CalculateRouteFromWaypoints(std::vector<mantle_api::RouteWaypoint>) | - | | EgoAgentInterface::SetRoadGraph(RoadGraph, RoadGraphVertex, RoadGraphVertex) | - +--------------+-------------------------------------------------------------------------------------------------------+ - | osi3 | x -- not relevant | - +--------------+-------------------------------------------------------------------------------------------------------+ - -CustomCommandAction --------------------- - -.. table:: - :class: tight-table - - +--------------+-------------------------------------------------------------------------------------------------------+ - | API/Datatype | Used Methods/Classes/API | - +==============+=======================================================================================================+ - | OpenSCENARIO | **CustomCommandAction** | - +--------------+-------------------------------------------------------------------------------------------------------+ - | mantle_api | ExecuteCustomCommand(actors, type, command) | - +--------------+-------------------------------------------------------------------------------------------------------+ - | openPASS | AddCustomCommand(command) | - | | GetCustomCommands() | - | | ComponentControllerImplementation::Trigger(time) | - | | TrajectoryFollowerCommonBase::Trigger(time) | - +--------------+-------------------------------------------------------------------------------------------------------+ - | osi3 | osi3::TrafficAction::CustomAction | - | | TrafficAction::mutable_custom_action() | - | | TrafficAction_CustomAction::set_command(command) | - +--------------+-------------------------------------------------------------------------------------------------------+ - -FollowTrajectoryAction ------------------------ - -.. table:: - :class: tight-table - - +--------------+-------------------------------------------------------------------------------------------------------+ - | API/Datatype | Used Methods/Classes/API | - +==============+=======================================================================================================+ - | OpenSCENARIO | **FollowTrajectoryAction** | - +--------------+-------------------------------------------------------------------------------------------------------+ - | mantle_api | UpdateControlStrategies(FollowTrajectoryControlStrategy) | - | | HasControlStrategyGoalBeenReached(ControlStrategyType::kFollowTrajectory) | - | | GeometryHelper::TranslateGlobalPositionLocally(PolyLine) | - | | MovementDomain::kBoth | - +--------------+-------------------------------------------------------------------------------------------------------+ - | openPASS | SetStrategies(MovementDomain::kBoth, ControlStrategyType::kFollowTrajectory) | - | | Algorithm_Routecontrol_Implementation::ReadWayPointData() | - | | DynamicsScenarioImplementation::ReadWayPointData() | - | | TrajectoryFollowerImplementation::Trigger(time) | - | | FmuHelper::AddTrafficCommandActionFromOpenScenarioTrajectory(TrafficCommand::add_action(), Trajectory)| - +--------------+-------------------------------------------------------------------------------------------------------+ - | osi3 | **osi3::TrafficAction::FollowTrajectoryAction** | - | | | - | | TrafficAction::mutable_follow_trajectory_action() | - | | TrafficAction_FollowTrajectoryAction::add_trajectory_point() | - | +-------------------------------------------------------------------------------------------------------+ - | | **osi3::TrafficAction::FollowPathAction** | - | | | - | | TrafficAction::mutable_follow_path_action() | - | | TrafficAction_FollowPathAction::add_path_point() | - +--------------+-------------------------------------------------------------------------------------------------------+ - -LaneChangeAction ----------------- - -.. table:: - :class: tight-table - - +--------------+-------------------------------------------------------------------------------------------------------+ - | API/Datatype | Used Methods/Classes/API | - +==============+=======================================================================================================+ - | OpenSCENARIO | **LaneChangeAction** | - | | | - | | LaneChangeActionImpl::GetLaneChangeTarget() | - | | ConvertScenarioLaneChangeTarget(ILaneChangeTarget) -> mantle_api::LaneId | - | +-------------------------------------------------------------------------------------------------------+ - | | **RelativeTargetLane** | - | | | - | | LaneChangeTargetImpl::GetRelativeTargetLane() | - | | ConvertScenarioRelativeTargetLane(IRelativeTargetLane) -> mantle_api::LaneId | - | +-------------------------------------------------------------------------------------------------------+ - | | **AbsoluteTargetLane** | - | | | - | | LaneChangeTargetImpl::GetAbsoluteTargetLane() | - | | ConvertScenarioAbsoluteTargetLane(IAbsoluteTargetLane) -> mantle_api::LaneId | - +--------------+-------------------------------------------------------------------------------------------------------+ - | mantle_api | UpdateControlStrategies(PerformLaneChangeControlStrategy) | - | | (ControlStrategyType::kPerformLaneChange) | - | +-------------------------------------------------------------------------------------------------------+ - | | **Relative** | - | | | - | | LaneLocationQueryService::GetRelativeLaneId() | - +--------------+-------------------------------------------------------------------------------------------------------+ - | openPASS | SetStrategies(MovementDomain::kLateral, ControlStrategyType::kPerformLaneChange) | - | | DynamicsScenarioImplementation::CalculateSinusiodalLaneChange(PerformLaneChangeControlStrategy) | - | | DynamicsScenarioImplementation::ReadWayPointData() | - +--------------+-------------------------------------------------------------------------------------------------------+ - | osi3 | x -- not implemented | - +--------------+-------------------------------------------------------------------------------------------------------+ - -SpeedAction ---------------- - -.. table:: - :class: tight-table - - +--------------+-------------------------------------------------------------------------------------------------------+ - | API/Datatype | Used Methods/Classes/API | - +==============+=======================================================================================================+ - | OpenSCENARIO | **SpeedAction** | - | | SetLinearVelocitySplineControlStrategy(std::string) | - +--------------+-------------------------------------------------------------------------------------------------------+ - | mantle_api | UpdateControlStrategies(FollowVelocitySplineControlStrategy) | - | | HasControlStrategyGoalBeenReached(ControlStrategyType::kFollowVelocitySpline) | - | | SetSpeed(IEntity, units::velocity::meters_per_second_t) | - | | MovementDomain::kLongitudinal | - +--------------+-------------------------------------------------------------------------------------------------------+ - | openPASS | SetStrategies(MovementDomain::kLongitudinal, ControlStrategyType::kFollowVelocitySpline) | - | | ControlStrategies::HasNewLongitudinalStrategy() | - | | DynamicsScenarioImplementation::GetVelocityFromSplines() | - +--------------+-------------------------------------------------------------------------------------------------------+ - | osi3 | osi3::TrafficAction::SpeedAction | - | | TrafficAction::mutable_speed_action() | - | | TrafficAction_CustomAction::set_absolute_target_speed(targetSpeed) | - +--------------+-------------------------------------------------------------------------------------------------------+ - -TeleportAction ---------------- - -.. table:: - :class: tight-table - - +--------------+-------------------------------------------------------------------------------------------------------+ - | API/Datatype | Used Methods/Classes/API | - +==============+=======================================================================================================+ - | OpenSCENARIO | **TeleportAction** | - +--------------+-------------------------------------------------------------------------------------------------------+ - | mantle_api | Entity::SetPosition(Vec3<units::length::meter_t>) | - | | Entity::SetOrientation(Orientation3<units::angle::radian_t>) | - | | Entity::SetAssignedLaneIds(std::vector<uint64_t>) | - | | GeometryHelper::TranslateGlobalPositionLocally(...) | - | | LaneLocationQueryService::GetUpwardsShiftedLanePosition(...) | - | | LaneLocationQueryService::GetLaneIdsAtPosition(…) | - +--------------+-------------------------------------------------------------------------------------------------------+ - | openPASS | RouteSampler::Sample(mantle_api::Vec3<units::length::meter_t>, units::angle::radian_t) | - | | AgentInterface::SetPositionX(units::length::meter_t) | - | | AgentInterface::SetPositionY(units::length::meter_t) | - | | AgentInterface:SetYaw(units::angle::radian_t) | - +--------------+-------------------------------------------------------------------------------------------------------+ - | osi3 | x -- not relevant | - +--------------+-------------------------------------------------------------------------------------------------------+ - -TrafficSignalAction --------------------- - -.. table:: - :class: tight-table - - +--------------+-------------------------------------------------------------------------------------------------------+ - | API/Datatype | Used Methods/Classes/API | - +==============+=======================================================================================================+ - | OpenSCENARIO | **TrafficSignalAction** | - +--------------+-------------------------------------------------------------------------------------------------------+ - | mantle_api | SetTrafficSignalState(std::string name, std::string state) | - +--------------+-------------------------------------------------------------------------------------------------------+ - | openPASS | WorldData::GetTrafficSignIdMapping() | - | | WorldData::GetSignalType(Id) | - | | WorldData::GetTrafficLight(Id) | - | | ThreeSignalsTrafficLight::SetState(CommonTrafficLight::State) | - | | TwoSignalsTrafficLight::SetState(CommonTrafficLight::State) | - | | OneSignalsTrafficLight::SetState(CommonTrafficLight::State) | - | | DataBuffer::PutAcyclic | - +--------------+-------------------------------------------------------------------------------------------------------+ - | osi3 | TrafficLight_Classification::set_mode(::osi3::TrafficLight_Classification_Mode) | - +--------------+-------------------------------------------------------------------------------------------------------+ - -TrafficSignalStateAction -------------------------- - -.. table:: - :class: tight-table - - +--------------+-------------------------------------------------------------------------------------------------------+ - | API/Datatype | Used Methods/Classes/API | - +==============+=======================================================================================================+ - | OpenSCENARIO | **TrafficSignalStateAction** | - +--------------+-------------------------------------------------------------------------------------------------------+ - | mantle_api | SetTrafficSignalState(std::string name, std::string state) | - +--------------+-------------------------------------------------------------------------------------------------------+ - | openPASS | WorldData::GetTrafficSignIdMapping() | - | | WorldData::GetSignalType(Id) | - | | WorldData::GetTrafficLight(Id) | - | | ThreeSignalsTrafficLight::SetState(CommonTrafficLight::State) | - | | TwoSignalsTrafficLight::SetState(CommonTrafficLight::State) | - | | OneSignalsTrafficLight::SetState(CommonTrafficLight::State) | - | | DataBuffer::PutAcyclic | - +--------------+-------------------------------------------------------------------------------------------------------+ - | osi3 | TrafficLight_Classification::set_mode(::osi3::TrafficLight_Classification_Mode) | - +--------------+-------------------------------------------------------------------------------------------------------+ - -TrafficSinkAction --------------------- - -.. table:: - :class: tight-table - - +--------------+-------------------------------------------------------------------------------------------------------+ - | API/Datatype | Used Methods/Classes/API | - +==============+=======================================================================================================+ - | OpenSCENARIO | **TrafficSinkAction** | - | | | - | | ConvertScenarioTrafficDefinition(NET_ASAM_OPENSCENARIO::v1_1::ITrafficDefinition) | - +--------------+-------------------------------------------------------------------------------------------------------+ - | mantle_api | Entity::GetPosition() | - | | GeometryHelper::TranslateGlobalPositionLocally() | - +--------------+-------------------------------------------------------------------------------------------------------+ - | openPASS | SpawnParameter | - | +-------------------------------------------------------------------------------------------------------+ - | | AgentInterface::GetPositionX() | - | | AgentInterface::GetPositionY() | - | | AgentInterface:GetYaw() | - +--------------+-------------------------------------------------------------------------------------------------------+ - | osi3 | x -- not relevant | - +--------------+-------------------------------------------------------------------------------------------------------+ - -VisibilityAction --------------------- - -.. table:: - :class: tight-table - - +--------------+-------------------------------------------------------------------------------------------------------+ - | API/Datatype | Used Methods/Classes/API | - +==============+=======================================================================================================+ - | OpenSCENARIO | **VisibilityAction** | - +--------------+-------------------------------------------------------------------------------------------------------+ - | mantle_api | SetVisibility(EntityVisibilityConfig) | - +--------------+-------------------------------------------------------------------------------------------------------+ - | openPASS | x -- not implemented | - +--------------+-------------------------------------------------------------------------------------------------------+ - | osi3 | x -- not implemented | - +--------------+-------------------------------------------------------------------------------------------------------+ +.. + ******************************************************************************* + Copyright (c) 2023-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _mapping_scenario_actions: + +Mapping of OpenSCENARIO Actions +=============================== + +.. table:: + :class: tight-table + + =================== ============= + Layer/Component API/Datatype + =================== ============= + OpenSCENARIO + OpenScenarioEngine mantle_api + opSimualtion openPASS + FMU Interface osi3 + =================== ============= + +AcquirePositionAction +--------------------- + +.. table:: + :class: tight-table + + +--------------+-------------------------------------------------------------------------------------------------------+ + | API/Datatype | Used Methods/Classes/API | + +==============+=======================================================================================================+ + | OpenSCENARIO | **AcquirePositionAction** | + +--------------+-------------------------------------------------------------------------------------------------------+ + | mantle_api | Entity::AssignRoute(UniqueId, RouteDefinition) | + | | Entity::GetPosition() | + | | GeometryHelper::TranslateGlobalPositionLocally() | + +--------------+-------------------------------------------------------------------------------------------------------+ + | openPASS | SpawnParameter | + | | AgentInterface::GetPositionX() | + | | AgentInterface::GetPositionY() | + | | AgentInterface::GetYaw() | + | +-------------------------------------------------------------------------------------------------------+ + | | RouteSamplerInterface::CalculateRouteFromWaypoints(std::vector<mantle_api::RouteWaypoint>) | + | | EgoAgentInterface::SetRoadGraph(RoadGraph, RoadGraphVertex, RoadGraphVertex) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | osi3 | x -- not implemented | + +--------------+-------------------------------------------------------------------------------------------------------+ + +AssignRouteAction +----------------- + +.. table:: + :class: tight-table + + +--------------+-------------------------------------------------------------------------------------------------------+ + | API/Datatype | Used Methods/Classes/API | + +==============+=======================================================================================================+ + | OpenSCENARIO | **AssignRouteAction** | + +--------------+-------------------------------------------------------------------------------------------------------+ + | mantle_api | Entity::AssignRoute(UniqueId, RouteDefinition) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | openPASS | RouteSamplerInterface::CalculateRouteFromWaypoints(std::vector<mantle_api::RouteWaypoint>) | + | | EgoAgentInterface::SetRoadGraph(RoadGraph, RoadGraphVertex, RoadGraphVertex) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | osi3 | x -- not relevant | + +--------------+-------------------------------------------------------------------------------------------------------+ + +CustomCommandAction +------------------- + +.. table:: + :class: tight-table + + +--------------+-------------------------------------------------------------------------------------------------------+ + | API/Datatype | Used Methods/Classes/API | + +==============+=======================================================================================================+ + | OpenSCENARIO | **CustomCommandAction** | + +--------------+-------------------------------------------------------------------------------------------------------+ + | mantle_api | ExecuteCustomCommand(actors, type, command) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | openPASS | AddCustomCommand(command) | + | | GetCustomCommands() | + | | ComponentControllerImplementation::Trigger(time) | + | | TrajectoryFollowerCommonBase::Trigger(time) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | osi3 | osi3::TrafficAction::CustomAction | + | | TrafficAction::mutable_custom_action() | + | | TrafficAction_CustomAction::set_command(command) | + +--------------+-------------------------------------------------------------------------------------------------------+ + +FollowTrajectoryAction +---------------------- + +.. table:: + :class: tight-table + + +--------------+-------------------------------------------------------------------------------------------------------+ + | API/Datatype | Used Methods/Classes/API | + +==============+=======================================================================================================+ + | OpenSCENARIO | **FollowTrajectoryAction** | + +--------------+-------------------------------------------------------------------------------------------------------+ + | mantle_api | UpdateControlStrategies(FollowTrajectoryControlStrategy) | + | | HasControlStrategyGoalBeenReached(ControlStrategyType::kFollowTrajectory) | + | | GeometryHelper::TranslateGlobalPositionLocally(PolyLine) | + | | MovementDomain::kBoth | + +--------------+-------------------------------------------------------------------------------------------------------+ + | openPASS | SetStrategies(MovementDomain::kBoth, ControlStrategyType::kFollowTrajectory) | + | | Algorithm_Routecontrol_Implementation::ReadWayPointData() | + | | DynamicsScenarioImplementation::ReadWayPointData() | + | | TrajectoryFollowerImplementation::Trigger(time) | + | | FmuHelper::AddTrafficCommandActionFromOpenScenarioTrajectory(TrafficCommand::add_action(), Trajectory)| + +--------------+-------------------------------------------------------------------------------------------------------+ + | osi3 | **osi3::TrafficAction::FollowTrajectoryAction** | + | | | + | | TrafficAction::mutable_follow_trajectory_action() | + | | TrafficAction_FollowTrajectoryAction::add_trajectory_point() | + | +-------------------------------------------------------------------------------------------------------+ + | | **osi3::TrafficAction::FollowPathAction** | + | | | + | | TrafficAction::mutable_follow_path_action() | + | | TrafficAction_FollowPathAction::add_path_point() | + +--------------+-------------------------------------------------------------------------------------------------------+ + +LaneChangeAction +---------------- + +.. table:: + :class: tight-table + + +--------------+-------------------------------------------------------------------------------------------------------+ + | API/Datatype | Used Methods/Classes/API | + +==============+=======================================================================================================+ + | OpenSCENARIO | **LaneChangeAction** | + | | | + | | LaneChangeActionImpl::GetLaneChangeTarget() | + | | ConvertScenarioLaneChangeTarget(ILaneChangeTarget) -> mantle_api::LaneId | + | +-------------------------------------------------------------------------------------------------------+ + | | **RelativeTargetLane** | + | | | + | | LaneChangeTargetImpl::GetRelativeTargetLane() | + | | ConvertScenarioRelativeTargetLane(IRelativeTargetLane) -> mantle_api::LaneId | + | +-------------------------------------------------------------------------------------------------------+ + | | **AbsoluteTargetLane** | + | | | + | | LaneChangeTargetImpl::GetAbsoluteTargetLane() | + | | ConvertScenarioAbsoluteTargetLane(IAbsoluteTargetLane) -> mantle_api::LaneId | + +--------------+-------------------------------------------------------------------------------------------------------+ + | mantle_api | UpdateControlStrategies(PerformLaneChangeControlStrategy) | + | | (ControlStrategyType::kPerformLaneChange) | + | +-------------------------------------------------------------------------------------------------------+ + | | **Relative** | + | | | + | | LaneLocationQueryService::GetRelativeLaneId() | + +--------------+-------------------------------------------------------------------------------------------------------+ + | openPASS | SetStrategies(MovementDomain::kLateral, ControlStrategyType::kPerformLaneChange) | + | | DynamicsScenarioImplementation::CalculateSinusiodalLaneChange(PerformLaneChangeControlStrategy) | + | | DynamicsScenarioImplementation::ReadWayPointData() | + +--------------+-------------------------------------------------------------------------------------------------------+ + | osi3 | x -- not implemented | + +--------------+-------------------------------------------------------------------------------------------------------+ + +LightStateAction +---------------- + +.. table:: + :class: tight-table + + +--------------+-------------------------------------------------------------------------------------------------------+ + | API/Datatype | Used Methods/Classes/API | + +==============+=======================================================================================================+ + | OpenSCENARIO | **LightStateAction** | + +--------------+-------------------------------------------------------------------------------------------------------+ + | mantle_api | UpdateControlStrategies(FollowVelocitySplineControlStrategy) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | openPASS | SetStrategies(std::vector<std::shared_ptr<mantle_api::ControlStrategy>>) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | osi3 | osi3::TrafficAction::CustomAction | + | | CustomAction::command_type("UpdateLightState <LightType>") | + | | CustomAction::command("<LightState>") | + +--------------+-------------------------------------------------------------------------------------------------------+ + +SpeedAction +----------- + +.. table:: + :class: tight-table + + +--------------+-------------------------------------------------------------------------------------------------------+ + | API/Datatype | Used Methods/Classes/API | + +==============+=======================================================================================================+ + | OpenSCENARIO | **SpeedAction** | + | | SetLinearVelocitySplineControlStrategy(std::string) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | mantle_api | UpdateControlStrategies(FollowVelocitySplineControlStrategy) | + | | HasControlStrategyGoalBeenReached(ControlStrategyType::kFollowVelocitySpline) | + | | SetSpeed(IEntity, units::velocity::meters_per_second_t) | + | | MovementDomain::kLongitudinal | + +--------------+-------------------------------------------------------------------------------------------------------+ + | openPASS | SetStrategies(MovementDomain::kLongitudinal, ControlStrategyType::kFollowVelocitySpline) | + | | ControlStrategies::HasNewLongitudinalStrategy() | + | | DynamicsScenarioImplementation::GetVelocityFromSplines() | + +--------------+-------------------------------------------------------------------------------------------------------+ + | osi3 | osi3::TrafficAction::SpeedAction | + | | TrafficAction::mutable_speed_action() | + | | TrafficAction_CustomAction::set_absolute_target_speed(targetSpeed) | + +--------------+-------------------------------------------------------------------------------------------------------+ + +TeleportAction +-------------- + +.. table:: + :class: tight-table + + +--------------+-------------------------------------------------------------------------------------------------------+ + | API/Datatype | Used Methods/Classes/API | + +==============+=======================================================================================================+ + | OpenSCENARIO | **TeleportAction** | + +--------------+-------------------------------------------------------------------------------------------------------+ + | mantle_api | Entity::SetPosition(Vec3<units::length::meter_t>) | + | | Entity::SetOrientation(Orientation3<units::angle::radian_t>) | + | | Entity::SetAssignedLaneIds(std::vector<uint64_t>) | + | | GeometryHelper::TranslateGlobalPositionLocally(...) | + | | LaneLocationQueryService::GetUpwardsShiftedLanePosition(...) | + | | LaneLocationQueryService::GetLaneIdsAtPosition(…) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | openPASS | RouteSampler::Sample(mantle_api::Vec3<units::length::meter_t>, units::angle::radian_t) | + | | AgentInterface::SetPositionX(units::length::meter_t) | + | | AgentInterface::SetPositionY(units::length::meter_t) | + | | AgentInterface:SetYaw(units::angle::radian_t) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | osi3 | x -- not relevant | + +--------------+-------------------------------------------------------------------------------------------------------+ + +TrafficSignalAction +------------------- + +.. table:: + :class: tight-table + + +--------------+-------------------------------------------------------------------------------------------------------+ + | API/Datatype | Used Methods/Classes/API | + +==============+=======================================================================================================+ + | OpenSCENARIO | **TrafficSignalAction** | + +--------------+-------------------------------------------------------------------------------------------------------+ + | mantle_api | SetTrafficSignalState(std::string name, std::string state) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | openPASS | WorldData::GetTrafficSignIdMapping() | + | | WorldData::GetSignalType(Id) | + | | WorldData::GetTrafficLight(Id) | + | | ThreeSignalsTrafficLight::SetState(CommonTrafficLight::State) | + | | TwoSignalsTrafficLight::SetState(CommonTrafficLight::State) | + | | OneSignalsTrafficLight::SetState(CommonTrafficLight::State) | + | | DataBuffer::PutAcyclic | + +--------------+-------------------------------------------------------------------------------------------------------+ + | osi3 | TrafficLight_Classification::set_mode(::osi3::TrafficLight_Classification_Mode) | + +--------------+-------------------------------------------------------------------------------------------------------+ + +TrafficSignalStateAction +------------------------ + +.. table:: + :class: tight-table + + +--------------+-------------------------------------------------------------------------------------------------------+ + | API/Datatype | Used Methods/Classes/API | + +==============+=======================================================================================================+ + | OpenSCENARIO | **TrafficSignalStateAction** | + +--------------+-------------------------------------------------------------------------------------------------------+ + | mantle_api | SetTrafficSignalState(std::string name, std::string state) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | openPASS | WorldData::GetTrafficSignIdMapping() | + | | WorldData::GetSignalType(Id) | + | | WorldData::GetTrafficLight(Id) | + | | ThreeSignalsTrafficLight::SetState(CommonTrafficLight::State) | + | | TwoSignalsTrafficLight::SetState(CommonTrafficLight::State) | + | | OneSignalsTrafficLight::SetState(CommonTrafficLight::State) | + | | DataBuffer::PutAcyclic | + +--------------+-------------------------------------------------------------------------------------------------------+ + | osi3 | TrafficLight_Classification::set_mode(::osi3::TrafficLight_Classification_Mode) | + +--------------+-------------------------------------------------------------------------------------------------------+ + +TrafficSinkAction +----------------- + +.. table:: + :class: tight-table + + +--------------+-------------------------------------------------------------------------------------------------------+ + | API/Datatype | Used Methods/Classes/API | + +==============+=======================================================================================================+ + | OpenSCENARIO | **TrafficSinkAction** | + | | | + | | ConvertScenarioTrafficDefinition(NET_ASAM_OPENSCENARIO::v1_1::ITrafficDefinition) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | mantle_api | Entity::GetPosition() | + | | GeometryHelper::TranslateGlobalPositionLocally() | + +--------------+-------------------------------------------------------------------------------------------------------+ + | openPASS | SpawnParameter | + | +-------------------------------------------------------------------------------------------------------+ + | | AgentInterface::GetPositionX() | + | | AgentInterface::GetPositionY() | + | | AgentInterface:GetYaw() | + +--------------+-------------------------------------------------------------------------------------------------------+ + | osi3 | x -- not relevant | + +--------------+-------------------------------------------------------------------------------------------------------+ + +VisibilityAction +-------------------- + +.. table:: + :class: tight-table + + +--------------+-------------------------------------------------------------------------------------------------------+ + | API/Datatype | Used Methods/Classes/API | + +==============+=======================================================================================================+ + | OpenSCENARIO | **VisibilityAction** | + +--------------+-------------------------------------------------------------------------------------------------------+ + | mantle_api | SetVisibility(EntityVisibilityConfig) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | openPASS | x -- not implemented | + +--------------+-------------------------------------------------------------------------------------------------------+ + | osi3 | x -- not implemented | + +--------------+-------------------------------------------------------------------------------------------------------+ + +LightStateAction +---------------- + +.. table:: + :class: tight-table + + +--------------+-------------------------------------------------------------------------------------------------------+ + | API/Datatype | Used Methods/Classes/API | + +==============+=======================================================================================================+ + | OpenSCENARIO | **LightStateAction** | + +--------------+-------------------------------------------------------------------------------------------------------+ + | mantle_api | UpdateControlStrategies(VehicleLightStatesControlStrategy) | + | | MovementDomain::kNone | + +--------------+-------------------------------------------------------------------------------------------------------+ + | openPASS | Entity::SetVehicleLightState(mantle_api::LightState, mantle_api::LightType) | + +--------------+-------------------------------------------------------------------------------------------------------+ + | osi3 | osi3::TrafficAction_CustomAction | + +--------------+-------------------------------------------------------------------------------------------------------+ + +.. note:: + + Currently only indicatorLeft, indicatorRight and warningLights of OpenSCENARIO VehicleLightType are supported in openPASS. + OpenSCENARIO LightStateAction attribute, transitionTime is not received from the OSE diff --git a/content/html/_sources/advanced_topics/simulator/simulation.rst.txt b/content/html/_sources/advanced_topics/simulator/simulation.rst.txt index 19919d4e842b79c6e5accaf81fd97c6c2ce01b2f..beeaa7486da5ce1234238af470c9a07d7ea0a612 100644 --- a/content/html/_sources/advanced_topics/simulator/simulation.rst.txt +++ b/content/html/_sources/advanced_topics/simulator/simulation.rst.txt @@ -1,115 +1,118 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _simulation: - -Simulation -========== - -.. _simulation_commandlinearguments: - -Command Line Arguments ------------------------ - -The simulation can be configured by applying the following command line arguments. -Unspecified arguments will be defaulted (*default values in []*). - -The simulation supports the following arguments: - -* *-\-logLevel* [0] : - Logging level between 0 (minimum) and 5 (maximum - debug core) -* *-\-logFile* [opSimulation.log]* : - Name of the log file -* *-\-lib* [modules] : - Path of the libraries (relative or absolute) -* *-\-configs* [configs] : - Path for writing outputs (relative or absolute) -* *-\-results* [results] : - Path for writing outputs (relative or absolute) - -.. _simulation_scheduler: - -Scheduler ---------- - -The Scheduler handles the sequence of agent based and common tasks before, during and after simulation. - -Executing phases -~~~~~~~~~~~~~~~~ - -Each simulation run splits up into 3 phases: Bootstrap tasks, Stepping and Finalize tasks. - -1. Initial task are grouped within the bootstrap tasks and are executed first and only once. - This includes updating the Observation modules and triggering all PreRun Spawners. - -2. After this Spawning, PreAgent, NonRecurring, Recurring and Syncronize Tasks are processed for each timestep. - First all Runtime Spawners are triggered. - Whenever a new agent is spawned, all its components are parsed to *Trigger* and *Update* tasks, grouped and sorted by execution time as non-recurring and recurring tasks. - Next all PreAgents task are executed, which includes publishing the world state to the DataBuffer in triggering all EventDetectors and Manipulators - Non-recurring tasks are executed just once and will be deleted afterwards (*init* flag in ComponentRepository). - Right after execution of all agent-based tasks, the Syncronize phase synchronizes all changes to the world as world state for the next timestep. - -3. The last phase is finalizing task, executed when an end condition is reached, such as end of simulation duration. Within this phase all EventDetectors and Manipulators are triggered and the Observation modules are updated one last time. - -Task type description -~~~~~~~~~~~~~~~~~~~~~ - -The scheduler handles 8 different task types: - -* **Spawning** - triggers agent spawning -* **EventDetector** - execute event detector -* **Manipulator** - execute manipulator -* **Observation** - update observation modules -* **Trigger** - execute trigger function of connected component -* **Update** - execute update output of connected component and resulting input -* **SyncWorld** - update world - -The following table gives an overview to all phases. - -.. table:: - :class: tight-table - - ================== ========== ======================================================== =================================================================================== - Phase Changeable Task types Notes - ================== ========== ======================================================== =================================================================================== - Bootstrap no Spawning (PreRun), Observation - Spawning no Spawning (Runtime), Observation - PreAgent no SyncWorld (publishing), EventDetector, Manipulator - Non recurring yes Trigger, Update Only components defined as "Init" - Recurring yes Trigger, Update Non Init components - Syncronize no SyncWorld Update the state of the agents and the virtual world (e.g. due to agent movements). - Finalize no EventDetector, Manipulator, Observation - ================== ========== ======================================================== =================================================================================== - -Task priorities -~~~~~~~~~~~~~~~ - -The order of the tasks within one phase depends on component priority and task type. -All tasks for a given timestamp are ordered by the SchedulerTasks priority, and divided into the aformentioned phases. - -The following table shows the priorities for the non-component task types: - -.. table:: - :class: tight-table - - =============== ======== ================================================================================================= - Task type Priority Notes - =============== ======== ================================================================================================= - Spawning 4 Highest priority, nothing can happen before any agent is instantiated. - EventDetector 3 - Manipulator 2 The manipulator task uses the event detector tasks as input. Therefore it is called afterwards. - SyncGlobalData 1 - Observation 0 Observation tasks have to be execute at the end. - =============== ======== ================================================================================================= - -The priority of trigger and update tasks depend on the priority within the SystemConfig. -They are independent of non-component priorities. -Since trigger tasks prepare output signals, output tasks are right called after the corresponding trigger tasks. +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _simulation: + +Simulation +========== + +.. _simulation_commandlinearguments: + +Command Line Arguments +----------------------- + +The simulation can be configured by applying the following command line arguments. +Unspecified arguments will be defaulted (*default values in []*). + +The simulation supports the following arguments: + +* *-\-clearResultsPath*: [false] : + If set, the results path will be cleared before the simulation starts. +* *-\-logLevel* [0] : + Logging level between 0 (minimum) and 5 (maximum - debug core) +* *-\-logFile* [opSimulation.log]* : + Name of the log file +* *-\-lib* [modules] : + Path of the libraries (relative or absolute) +* *-\-configs* [configs] : + Path for writing outputs (relative or absolute) +* *-\-results* [results] : + Path for writing outputs (relative or absolute) + +.. _simulation_scheduler: + +Scheduler +--------- + +The Scheduler handles the sequence of agent based and common tasks before, during and after simulation. + +Executing phases +~~~~~~~~~~~~~~~~ + +Each simulation run splits up into 3 phases: Bootstrap tasks, Stepping and Finalize tasks. + +1. Initial task are grouped within the bootstrap tasks and are executed first and only once. + This includes updating the Observation modules and triggering all PreRun Spawners. + +2. After this Spawning, PreAgent, NonRecurring, Recurring and Syncronize Tasks are processed for each timestep. + First all Runtime Spawners are triggered. + Whenever a new agent is spawned, all its components are parsed to *Trigger* and *Update* tasks, grouped and sorted by execution time as non-recurring and recurring tasks. + Next all PreAgents task are executed, which includes publishing the world state to the DataBuffer in triggering all EventDetectors and Manipulators + Non-recurring tasks are executed just once and will be deleted afterwards (*init* flag in ComponentRepository). + Right after execution of all agent-based tasks, the Syncronize phase synchronizes all changes to the world as world state for the next timestep. + +3. The last phase is finalizing task, executed when an end condition is reached, such as end of simulation duration. Within this phase all EventDetectors and Manipulators are triggered and the Observation modules are updated one last time. + +Task type description +~~~~~~~~~~~~~~~~~~~~~ + +The scheduler handles 8 different task types: + +* **Spawning** - triggers agent spawning +* **EventDetector** - execute event detector +* **Manipulator** - execute manipulator +* **Observation** - update observation modules +* **Trigger** - execute trigger function of connected component +* **Update** - execute update output of connected component and resulting input +* **SyncWorld** - update world + +The following table gives an overview to all phases. + +.. table:: + :class: tight-table + + ================== ========== ======================================================== =================================================================================== + Phase Changeable Task types Notes + ================== ========== ======================================================== =================================================================================== + Bootstrap no Spawning (PreRun), Observation + Spawning no Spawning (Runtime), Observation + PreAgent no SyncWorld (publishing), EventDetector, Manipulator + Non recurring yes Trigger, Update Only components defined as "Init" + Recurring yes Trigger, Update Non Init components + Syncronize no SyncWorld Update the state of the agents and the virtual world (e.g. due to agent movements). + Finalize no EventDetector, Manipulator, Observation + ================== ========== ======================================================== =================================================================================== + +Task priorities +~~~~~~~~~~~~~~~ + +The order of the tasks within one phase depends on component priority and task type. +All tasks for a given timestamp are ordered by the SchedulerTasks priority, and divided into the aformentioned phases. + +The following table shows the priorities for the non-component task types: + +.. table:: + :class: tight-table + + =============== ======== ================================================================================================= + Task type Priority Notes + =============== ======== ================================================================================================= + Spawning 4 Highest priority, nothing can happen before any agent is instantiated. + EventDetector 3 + Manipulator 2 The manipulator task uses the event detector tasks as input. Therefore it is called afterwards. + SyncGlobalData 1 + Observation 0 Observation tasks have to be execute at the end. + =============== ======== ================================================================================================= + +The priority of trigger and update tasks depend on the priority within the SystemConfig. +They are independent of non-component priorities. +Since trigger tasks prepare output signals, output tasks are right called after the corresponding trigger tasks. diff --git a/content/html/_sources/advanced_topics/simulator/spawner_features.rst.txt b/content/html/_sources/advanced_topics/simulator/spawner_features.rst.txt index 65d878dc122105db33ee9ce0c2bd0467c8991ab4..67636cdd1b70751d73e0d84fcb51063b92be83be 100644 --- a/content/html/_sources/advanced_topics/simulator/spawner_features.rst.txt +++ b/content/html/_sources/advanced_topics/simulator/spawner_features.rst.txt @@ -1,562 +1,562 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _spawner_features: - -**************** -Spawner Features -**************** - - -.. _spawner_features_prerun: - -PreRunSpawner -============= - -Spawning on roads, lanes and ranges ------------------------------------ - -Non-existent roads -^^^^^^^^^^^^^^^^^^ - -Requirement - Road IDs specified in the configuration, but not part of the scenery file are igored. - -Verified by - Unit Test SpawnerPreRunCommonParameterExtractor_GetWayToNextRoad_NoPossibleWay - - -.. _spawner_features_prerun_on_roads_single_road: - -Single road -^^^^^^^^^^^ - -Requirement - Spawning on the given road takes place. - -Requirement - No agents are spawned on other roads in the scenery. - -Verified by - End-to-end Test SpawnerPreRun_Highway_SingleRoad - - -.. _spawner_features_prerun_on_roads_consecutive_roads: - -Consecutive roads -^^^^^^^^^^^^^^^^^ - -Precondition - Spawner configuration specifies a list of consecutively connected roads in a single ListItem. - -Requirement - Spawning on the given roads takes place. - -Requirement - No agents spawned on other roads in the scenery. - -Requirement - Agents are spawned on all drivable lanes (which are part of the roads being specified in the configuration). - -Requirement - Agents are spawned in the correct driving direction. - -Verified by - End-to-end Test SpawnerPreRun_Highway_FullStream - End-to-end Test SpawnerPreRun_SingleRoad_DrivingDirection - - -Non-consecutive roads -^^^^^^^^^^^^^^^^^^^^^ - -Precondition - Spawner configuration specifies a list of non-consecutively connected roads. - -Requirement - Spawning on the given roads takes place. - -Requirement - Missing roads between the specified ones are automatically determined by the Spawner and handled like they were specified in the configuration in the first place. - The resulting path being spawned on is arbitrary if multiple solutions exist for a scenery, but only one path shall be used. - -Verified by - Covered by :ref:`spawner_features_prerun_on_roads_across_junction` - - -.. _spawner_features_prerun_on_roads_across_junction: - -Roads across junction -^^^^^^^^^^^^^^^^^^^^^ - -Precondition - Spawner configuration specifies a list of (not necessarily consecutively) connected roads in a single ListItem. - -Precondition - The chain of roads specified has to cross a single junction. - -Requirement - Spawning on the given roads takes place. - -Requirement - Missing roads between the specified ones are automatically determined by the Spawner and handled like they were specified in the configuration in the first place. - The resulting path being spawned on is arbitrary if multiple solutions exist for a scenery, but only one path shall be used. - -Verified by - End-to-end Test SpawnerPreRun_Highway_EntryExit - - -Multiple roads (including non existent IDs) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Precondition - Spawner configuration specifies a list of (at least partially) consecutively connected roads in a single ListItem. - -Precondition - At least one road id given in the configuration is not present in the scenery. - -Requirement - Spawning on the given roads takes place up to the first non-existent road that is encountered. - -Requirement - No spawning takes place, if the first road of the list doesn't exist. - -Verified by - End-to-end Test SpawnerPreRun_Highway_IncorrectStreamBegin - End-to-end Test SpawnerPreRun_Highway_IncorrectStreamMid - - -Specified lanes -^^^^^^^^^^^^^^^ - -Precondition - Basic setup as as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`. - -Precondition - A list of lanes to be spawned on is specified in the Spawner configuration. - -Precondition - The list of lanes contains at least one lane IDs which exist for the first specified road. - -Precondition - The list of lanes contains at least one lane IDs which doesn't exist for the first specified road. - -Requirement - Spawning takes place on the specified lane IDs (on drivable lanes). - -Requirement - Spawning does not take place on other lane IDs. - -Requirement - Lane IDs not present for one or more roads do not lead to an error. - -Verified by - End-to-end Test SpawnerPreRun_SingleRoad_SpecifiedLanes - - -Multiple overlapping road streams -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Precondition - Two road streams are specified in the Spawner configuration (as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`). - -Precondition - The two road streams have at least one road in common. - -Precondition - The Spawner configuration specifies the lanes to spawn on in such a way that there are no overlapping lanes (on the road being common to both streams). - -Requirement - Spawning on the given roads and all given lanes takes place. - -Verified by - End-to-end Test SpawnerPreRun_Highway_RoadOverlap - - -Spawning on range (SStart + SEnd within road boundaries) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Precondition - Basic setup as as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`. - -Precondition - SStart and SEnd are set to values within the road boundaries (with the effective start s-coordinate being lower than the effective end s-coordinate when taking the whole road stream into account). - -Requirement - Agents are spawned within the specified range. - -Requirement - No agents are spawned outside of the specified range. - -Verified by - Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreas_AllOptionalParameters - End-to-end Test SpawnerPreRun_SingleRoad_SpecifiedRange - - - -Spawning on range (SStart + SLength within road boundaries) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Precondition - Basic setup as as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`. - -Precondition - SStart and SLength are set to values within the road boundaries (with the effective start s-coordinate being lower than the effective end s-coordinate when taking the whole road stream into account). - -Requirement - Agents are spawned within the specified range. - -Requirement - No agents are spawned outside of the specified range. - -Verified by - Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreas_AllOptionalParameters - - -Spawning on range (SEnd outside of road boundaries) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Precondition - Basic setup as as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`. - -Precondition - SStart is set set to a value within the road boundaries, SEnd is set greater than the length of the last road given. - -Requirement - Agents are spawned within the specified range. - -Requirement - The specified range is capped to the length of the last road. - -Verified by - Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreasWithSOutOfRange_ReturnsValidS - - -Spawning on range (SLength outside of road boundaries) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Precondition - Basic setup as as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`. - -Precondition - SStart is set set to a value within the road boundaries, SLength is set greater than the accumulated length of all roads given. - -Requirement - Agents are spawned within the specified range. - -Requirement - The specified range is capped to the length of the roads. - -Verified by - Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreasWithSOutOfRange_ReturnsValidS - - -Right lane only -^^^^^^^^^^^^^^^ - -Precondition - Basic setup as as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`. - -Precondition - ``RightLaneOnly`` set to ``true`` in the Spawner configuration. - -Requirement - Spawning takes place on the specified roads. - -Requirement - Spawning takes place on the rightmost lanes only. - -Verified by - End-to-end Test SpawnerPreRun_SingleRoad_RightLaneOnly - - -Traffic parameters ------------------- - -Separation buffer specified -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Precondition - Basic setup as as in :ref:`spawner_features_prerun_on_roads_single_road`. - -Precondition - ``MinimumSeparationBuffer`` is set in the Spawner configuration. - -Requirement - No two agents are spawned with a net distance lower than the specified separation buffer. - -Verified by - UNTESTED - - -Separation buffer not specified -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Precondition - Basic setup as as in :ref:`spawner_features_prerun_on_roads_single_road`. - -Precondition - ``MinimumSeparationBuffer`` is not set in the Spawner configuration. - -Requirement - No two agents are spawned with a net distance lower than 5 m. - -Verified by - UNTESTED - - -Time to collision -^^^^^^^^^^^^^^^^^ - -Precondition - Basic setup as as in :ref:`spawner_features_prerun_on_roads_single_road`. - -Requirement - No agent is spawned with a TTC lower than the configured threshold (with respect to end of lane). - -Verified by - UNTESTED - Also has to be checked by analysis of simulation output by an external tool - - -Stochastics ------------ - -Traffic groups -^^^^^^^^^^^^^^ - -Requirement - The selection of traffic groups is randomized using a uniform distribution. - -Verified by - UNTESTED - - -Agent profiles -^^^^^^^^^^^^^^ - -Requirement - The selection of agent profiles is randomized using a uniform distribution. - -Verified by - UNTESTED - - -Velocity distribution -^^^^^^^^^^^^^^^^^^^^^ - -Requirement - The distribution of the velocities of a traffic group has to match the configured distribution. - -Verified by - UNTESTED - Also has to be checked by analysis of simulation output by an external tool - - -TGap distribution -^^^^^^^^^^^^^^^^^ - -Requirement - The distribution of the TGaps of a traffic group has to match the configured distribution. - -Verified by - UNTESTED - Also has to be checked by analysis of simulation output by an external tool - - -.. _spawner_features_runtime: - -RuntimeSpawner -============== - -Spawning on roads, lanes and ranges ------------------------------------ - -Non-existent roads -^^^^^^^^^^^^^^^^^^ - -Requirement - Road IDs specified in the configuration, but not part of the scenery file are igored. - -Verified by - UNTESTED - - -.. _spawner_features_runtime_on_roads_single_road: - -Single road -^^^^^^^^^^^ - -Requirement - Spawning on the given road takes place. - -Requirement - No agents are spawned on other roads in the scenery. - -Requirement - Agents are spawned in the correct driving direction. - -Verified by - End-to-end Test SpawnerRuntime_Highway_SingleRoad - - -Driving direction -^^^^^^^^^^^^^^^^^ - -Requirement - Agents are spawned in the correct driving direction (matching lane direction). - -Verified by - End-to-end Test SpawnerRuntime_Highway_SingleRoad_DrivingDirection - - -Multiple roads (including non existent IDs) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Precondition - Spawner configuration specifies a list of roads in a single ListItem. - -Precondition - At least one road id given in the configuration is not present in the scenery. - -Requirement - Spawning on the given roads takes place. - -Requirement - Non-existent road IDs are ignored. - -Verified by - End-to-end Test SpawnerRuntime_Highway_MultipleRoads - - -Specified lanes -^^^^^^^^^^^^^^^ - -Precondition - Basic setup as as in :ref:`spawner_features_runtime_on_roads_single_road`. - -Precondition - A list of lanes to be spawned on is specified in the Spawner configuration. - -Precondition - The list of lanes contains lane IDs which don't exist for the specified road. - -Requirement - Spawning takes place on the specified lane IDs (on drivable lanes). - -Requirement - Spawning does not take place on other lane IDs. - -Requirement - Lane IDs not present for the specified road do not lead to an error. - -Verified by - End-to-end Test SpawnerRuntime_SingleRoad_SpecifiedLanes - - -Right lane only -^^^^^^^^^^^^^^^ - -Precondition - Basic setup as as in :ref:`spawner_features_runtime_on_roads_single_road`. - -Precondition - ``RightLaneOnly`` set to ``true`` in the Spawner configuration. - -Requirement - Spawning takes place on the specified road. - -Requirement - Spawning takes place on the rightmost lane only. - -Verified by - End-to-end Test SpawnerRuntime_SingleRoad_RightLaneOnly - - -Traffic parameters ------------------- - -Separation buffer specified -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Precondition - Basic setup as as in :ref:`spawner_features_runtime_on_roads_single_road`. - -Precondition - ``MinimumSeparationBuffer`` is set in the Spawner configuration. - -Requirement - No two agents are spawned with a net distance lower than the specified separation buffer. - -Verified by - Unit Test SpawnerRuntimeCommonParameterExtractor_ExtractMinimumSeparationBuffer_FixedValue - - -Separation buffer not specified -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Precondition - Basic setup as as in :ref:`spawner_features_runtime_on_roads_single_road`. - -Precondition - ``MinimumSeparationBuffer`` is not set in the Spawner configuration. - -Requirement - No two agents are spawned with a net distance lower than 5 m. - -Verified by - Unit Test SpawnerRuntimeCommonParameterExtractor_ExtractMinimumSeparationBuffer_NoValue_SetsDefault - - - -Stochastics ------------ - -Traffic groups -^^^^^^^^^^^^^^ - -Requirement - The selection of traffic groups is randomized using a uniform distribution. - -Verified by - UNTESTED - - -Agent profiles -^^^^^^^^^^^^^^ - -Requirement - The selection of agent profiles is randomized using a uniform distribution. - -Verified by - UNTESTED - - -Velocity distribution -^^^^^^^^^^^^^^^^^^^^^ - -Requirement - The distribution of the velocities of a traffic group has to match the configured distribution. - -Verified by - UNTESTED - Also has to be checked by analysis of simulation output by an external tool - - -TGap distribution -^^^^^^^^^^^^^^^^^ - -Requirement - The distribution of the TGaps of a traffic group has to match the configured distribution. - -Verified by - UNTESTED - Also has to be checked by analysis of simulation output by an external tool - +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _spawner_features: + +**************** +Spawner Features +**************** + + +.. _spawner_features_prerun: + +PreRunSpawner +============= + +Spawning on roads, lanes and ranges +----------------------------------- + +Non-existent roads +^^^^^^^^^^^^^^^^^^ + +Requirement + Road IDs specified in the configuration, but not part of the scenery file are igored. + +Verified by + Unit Test SpawnerPreRunCommonParameterExtractor_GetWayToNextRoad_NoPossibleWay + + +.. _spawner_features_prerun_on_roads_single_road: + +Single road +^^^^^^^^^^^ + +Requirement + Spawning on the given road takes place. + +Requirement + No agents are spawned on other roads in the scenery. + +Verified by + End-to-end Test SpawnerPreRun_Highway_SingleRoad + + +.. _spawner_features_prerun_on_roads_consecutive_roads: + +Consecutive roads +^^^^^^^^^^^^^^^^^ + +Precondition + Spawner configuration specifies a list of consecutively connected roads in a single ListItem. + +Requirement + Spawning on the given roads takes place. + +Requirement + No agents spawned on other roads in the scenery. + +Requirement + Agents are spawned on all drivable lanes (which are part of the roads being specified in the configuration). + +Requirement + Agents are spawned in the correct driving direction. + +Verified by + End-to-end Test SpawnerPreRun_Highway_FullStream + End-to-end Test SpawnerPreRun_SingleRoad_DrivingDirection + + +Non-consecutive roads +^^^^^^^^^^^^^^^^^^^^^ + +Precondition + Spawner configuration specifies a list of non-consecutively connected roads. + +Requirement + Spawning on the given roads takes place. + +Requirement + Missing roads between the specified ones are automatically determined by the Spawner and handled like they were specified in the configuration in the first place. + The resulting path being spawned on is arbitrary if multiple solutions exist for a scenery, but only one path shall be used. + +Verified by + Covered by :ref:`spawner_features_prerun_on_roads_across_junction` + + +.. _spawner_features_prerun_on_roads_across_junction: + +Roads across junction +^^^^^^^^^^^^^^^^^^^^^ + +Precondition + Spawner configuration specifies a list of (not necessarily consecutively) connected roads in a single ListItem. + +Precondition + The chain of roads specified has to cross a single junction. + +Requirement + Spawning on the given roads takes place. + +Requirement + Missing roads between the specified ones are automatically determined by the Spawner and handled like they were specified in the configuration in the first place. + The resulting path being spawned on is arbitrary if multiple solutions exist for a scenery, but only one path shall be used. + +Verified by + End-to-end Test SpawnerPreRun_Highway_EntryExit + + +Multiple roads (including non existent IDs) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Precondition + Spawner configuration specifies a list of (at least partially) consecutively connected roads in a single ListItem. + +Precondition + At least one road id given in the configuration is not present in the scenery. + +Requirement + Spawning on the given roads takes place up to the first non-existent road that is encountered. + +Requirement + No spawning takes place, if the first road of the list doesn't exist. + +Verified by + End-to-end Test SpawnerPreRun_Highway_IncorrectStreamBegin + End-to-end Test SpawnerPreRun_Highway_IncorrectStreamMid + + +Specified lanes +^^^^^^^^^^^^^^^ + +Precondition + Basic setup as as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`. + +Precondition + A list of lanes to be spawned on is specified in the Spawner configuration. + +Precondition + The list of lanes contains at least one lane IDs which exist for the first specified road. + +Precondition + The list of lanes contains at least one lane IDs which doesn't exist for the first specified road. + +Requirement + Spawning takes place on the specified lane IDs (on drivable lanes). + +Requirement + Spawning does not take place on other lane IDs. + +Requirement + Lane IDs not present for one or more roads do not lead to an error. + +Verified by + End-to-end Test SpawnerPreRun_SingleRoad_SpecifiedLanes + + +Multiple overlapping road streams +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Precondition + Two road streams are specified in the Spawner configuration (as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`). + +Precondition + The two road streams have at least one road in common. + +Precondition + The Spawner configuration specifies the lanes to spawn on in such a way that there are no overlapping lanes (on the road being common to both streams). + +Requirement + Spawning on the given roads and all given lanes takes place. + +Verified by + End-to-end Test SpawnerPreRun_Highway_RoadOverlap + + +Spawning on range (SStart + SEnd within road boundaries) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Precondition + Basic setup as as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`. + +Precondition + SStart and SEnd are set to values within the road boundaries (with the effective start s-coordinate being lower than the effective end s-coordinate when taking the whole road stream into account). + +Requirement + Agents are spawned within the specified range. + +Requirement + No agents are spawned outside of the specified range. + +Verified by + Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreas_AllOptionalParameters + End-to-end Test SpawnerPreRun_SingleRoad_SpecifiedRange + + + +Spawning on range (SStart + SLength within road boundaries) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Precondition + Basic setup as as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`. + +Precondition + SStart and SLength are set to values within the road boundaries (with the effective start s-coordinate being lower than the effective end s-coordinate when taking the whole road stream into account). + +Requirement + Agents are spawned within the specified range. + +Requirement + No agents are spawned outside of the specified range. + +Verified by + Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreas_AllOptionalParameters + + +Spawning on range (SEnd outside of road boundaries) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Precondition + Basic setup as as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`. + +Precondition + SStart is set set to a value within the road boundaries, SEnd is set greater than the length of the last road given. + +Requirement + Agents are spawned within the specified range. + +Requirement + The specified range is capped to the length of the last road. + +Verified by + Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreasWithSOutOfRange_ReturnsValidS + + +Spawning on range (SLength outside of road boundaries) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Precondition + Basic setup as as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`. + +Precondition + SStart is set set to a value within the road boundaries, SLength is set greater than the accumulated length of all roads given. + +Requirement + Agents are spawned within the specified range. + +Requirement + The specified range is capped to the length of the roads. + +Verified by + Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreasWithSOutOfRange_ReturnsValidS + + +Right lane only +^^^^^^^^^^^^^^^ + +Precondition + Basic setup as as in :ref:`spawner_features_prerun_on_roads_consecutive_roads`. + +Precondition + ``RightLaneOnly`` set to ``true`` in the Spawner configuration. + +Requirement + Spawning takes place on the specified roads. + +Requirement + Spawning takes place on the rightmost lanes only. + +Verified by + End-to-end Test SpawnerPreRun_SingleRoad_RightLaneOnly + + +Traffic parameters +------------------ + +Separation buffer specified +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Precondition + Basic setup as as in :ref:`spawner_features_prerun_on_roads_single_road`. + +Precondition + ``MinimumSeparationBuffer`` is set in the Spawner configuration. + +Requirement + No two agents are spawned with a net distance lower than the specified separation buffer. + +Verified by + UNTESTED + + +Separation buffer not specified +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Precondition + Basic setup as as in :ref:`spawner_features_prerun_on_roads_single_road`. + +Precondition + ``MinimumSeparationBuffer`` is not set in the Spawner configuration. + +Requirement + No two agents are spawned with a net distance lower than 5 m. + +Verified by + UNTESTED + + +Time to collision +^^^^^^^^^^^^^^^^^ + +Precondition + Basic setup as as in :ref:`spawner_features_prerun_on_roads_single_road`. + +Requirement + No agent is spawned with a TTC lower than the configured threshold (with respect to end of lane). + +Verified by + UNTESTED + Also has to be checked by analysis of simulation output by an external tool + + +Stochastics +----------- + +Traffic groups +^^^^^^^^^^^^^^ + +Requirement + The selection of traffic groups is randomized using a uniform distribution. + +Verified by + UNTESTED + + +Agent profiles +^^^^^^^^^^^^^^ + +Requirement + The selection of agent profiles is randomized using a uniform distribution. + +Verified by + UNTESTED + + +Velocity distribution +^^^^^^^^^^^^^^^^^^^^^ + +Requirement + The distribution of the velocities of a traffic group has to match the configured distribution. + +Verified by + UNTESTED + Also has to be checked by analysis of simulation output by an external tool + + +TGap distribution +^^^^^^^^^^^^^^^^^ + +Requirement + The distribution of the TGaps of a traffic group has to match the configured distribution. + +Verified by + UNTESTED + Also has to be checked by analysis of simulation output by an external tool + + +.. _spawner_features_runtime: + +RuntimeSpawner +============== + +Spawning on roads, lanes and ranges +----------------------------------- + +Non-existent roads +^^^^^^^^^^^^^^^^^^ + +Requirement + Road IDs specified in the configuration, but not part of the scenery file are igored. + +Verified by + UNTESTED + + +.. _spawner_features_runtime_on_roads_single_road: + +Single road +^^^^^^^^^^^ + +Requirement + Spawning on the given road takes place. + +Requirement + No agents are spawned on other roads in the scenery. + +Requirement + Agents are spawned in the correct driving direction. + +Verified by + End-to-end Test SpawnerRuntime_Highway_SingleRoad + + +Driving direction +^^^^^^^^^^^^^^^^^ + +Requirement + Agents are spawned in the correct driving direction (matching lane direction). + +Verified by + End-to-end Test SpawnerRuntime_Highway_SingleRoad_DrivingDirection + + +Multiple roads (including non existent IDs) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Precondition + Spawner configuration specifies a list of roads in a single ListItem. + +Precondition + At least one road id given in the configuration is not present in the scenery. + +Requirement + Spawning on the given roads takes place. + +Requirement + Non-existent road IDs are ignored. + +Verified by + End-to-end Test SpawnerRuntime_Highway_MultipleRoads + + +Specified lanes +^^^^^^^^^^^^^^^ + +Precondition + Basic setup as as in :ref:`spawner_features_runtime_on_roads_single_road`. + +Precondition + A list of lanes to be spawned on is specified in the Spawner configuration. + +Precondition + The list of lanes contains lane IDs which don't exist for the specified road. + +Requirement + Spawning takes place on the specified lane IDs (on drivable lanes). + +Requirement + Spawning does not take place on other lane IDs. + +Requirement + Lane IDs not present for the specified road do not lead to an error. + +Verified by + End-to-end Test SpawnerRuntime_SingleRoad_SpecifiedLanes + + +Right lane only +^^^^^^^^^^^^^^^ + +Precondition + Basic setup as as in :ref:`spawner_features_runtime_on_roads_single_road`. + +Precondition + ``RightLaneOnly`` set to ``true`` in the Spawner configuration. + +Requirement + Spawning takes place on the specified road. + +Requirement + Spawning takes place on the rightmost lane only. + +Verified by + End-to-end Test SpawnerRuntime_SingleRoad_RightLaneOnly + + +Traffic parameters +------------------ + +Separation buffer specified +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Precondition + Basic setup as as in :ref:`spawner_features_runtime_on_roads_single_road`. + +Precondition + ``MinimumSeparationBuffer`` is set in the Spawner configuration. + +Requirement + No two agents are spawned with a net distance lower than the specified separation buffer. + +Verified by + Unit Test SpawnerRuntimeCommonParameterExtractor_ExtractMinimumSeparationBuffer_FixedValue + + +Separation buffer not specified +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Precondition + Basic setup as as in :ref:`spawner_features_runtime_on_roads_single_road`. + +Precondition + ``MinimumSeparationBuffer`` is not set in the Spawner configuration. + +Requirement + No two agents are spawned with a net distance lower than 5 m. + +Verified by + Unit Test SpawnerRuntimeCommonParameterExtractor_ExtractMinimumSeparationBuffer_NoValue_SetsDefault + + + +Stochastics +----------- + +Traffic groups +^^^^^^^^^^^^^^ + +Requirement + The selection of traffic groups is randomized using a uniform distribution. + +Verified by + UNTESTED + + +Agent profiles +^^^^^^^^^^^^^^ + +Requirement + The selection of agent profiles is randomized using a uniform distribution. + +Verified by + UNTESTED + + +Velocity distribution +^^^^^^^^^^^^^^^^^^^^^ + +Requirement + The distribution of the velocities of a traffic group has to match the configured distribution. + +Verified by + UNTESTED + Also has to be checked by analysis of simulation output by an external tool + + +TGap distribution +^^^^^^^^^^^^^^^^^ + +Requirement + The distribution of the TGaps of a traffic group has to match the configured distribution. + +Verified by + UNTESTED + Also has to be checked by analysis of simulation output by an external tool + diff --git a/content/html/_sources/advanced_topics/simulator/system_structure_and_parameterization_(SSP).rst.txt b/content/html/_sources/advanced_topics/simulator/system_structure_and_parameterization_(SSP).rst.txt index a8aee19964c1022de5493c62db2a8659ab510158..16e936f011b886178f1290845f60e5307ac2e9ec 100644 --- a/content/html/_sources/advanced_topics/simulator/system_structure_and_parameterization_(SSP).rst.txt +++ b/content/html/_sources/advanced_topics/simulator/system_structure_and_parameterization_(SSP).rst.txt @@ -1,428 +1,428 @@ -.. - ******************************************************************************* - Copyright (c) 2022-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _ssp: - -System Structure and Parameterization (SSP) -=========================================== - -System Structure and Parameterization (SSP) is a tool independent standard to define -complete systems consisting of one or more FMUs -(see Functional-Mockup-Interface [LINK: https://fmi-standard.org/]) -including its parameterization that can be transferred between simulation tools. -Official content is available under: https://ssp-standard.org/ . - -In |op| we use SSP to connect FMUs with each other, -especially those which need communication during one simulation time step. -The whole SSP is appended as vehicle component. - -.. _ssp_input: - -Inputs / SSP Structure ----------------------- -The following image displays the example ConnectionTest.ssp. This SSP contains one root SSD-System, -the subsystem OSMPConnectionTest and two SSD-Components, that are connected with each other. - -.. _OsmpConnectionTest_Visual: -.. figure:: ./draw.io/[B2]OsmpConnectionTest_Visual.png - - -FMUs are wrapped within a SSD-Component. The example consists of two FMU's "DummySensor" and "OSMPTrafficUpdateStepper". -To allow these two to exchange data within one timestep, they need a connection, which consists of two connectors. -Either a connector gets data from outside of the SSP-System, for instance |op|. -Or two connectors which are directly connected within the SSP-System. -These connections are only one directional. -The example shows a common usecase of SSP: A sensor Component transfers SensorData to the TrafficUpdateStepper, -which writes a DynamicSignal. This signal leaves this SSP to animate the agent. - - -System Structure Package SSP -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -On the filesystem, a SSP is a zip file, which includes one or more .ssd files together with related resources. - -In our example the unpacked zip looks like this: - - :: - - ..\ConnectionTest.ssp - ├── SystemStructure.ssd (mandatory !) - ├── OSMPConnectionTest.ssd - ├── ParameterValues.ssv - ├── Resources - │ ├── DummySensor.fmu - │ └── OsmpTrafficUpdateStepper.fmu - - In the folder structure above: - - - ``SystemStructure.ssd`` can be perceived as the root of the SSP. It contains the root system. - - ``OSMPConnectionTest.ssd`` A system within the root system - - ``ParameterValues.ssv`` Alternative way to describe the values of SSP parameters (:ref:`ref <ssvFiles>`) - - ``Resources`` The Resources folder is for additional data, like FMUs. - - -Resources can be referenced FMUs. -Any SSP specific files should be located in the zip root directory. -SSP files are referenced from the System Structure Description file(s) through relative URIs (cf. RFC 3986). -SystemStructure.ssd is the root file of the zip archive. System structure definitions (\*.ssd) describe entities called Systems. -Additional entries may include Parameter Values (\*.ssv), Parameter Mappings (\*.ssm) or Signal Dictionaries (\*.ssb). - -**System Structure description (.ssd files)** - -The file "SystemStructure.ssd" is mandatory because it defines to root of the SSP. -Other (\*).ssd can be used to make use of more then one system, or for organisation purpose. -Subsystems that are hierarchically within the root system should be listed in that SSD. -Subsystems which are only present as (\*).ssd but are not connected with the root. More on that in section :ref:`ssd`. - -.. _ssvFiles: - -**System Structure Parameter Values (.ssv files)** - -Not mandatory. Is supported in the current version of |op|. -Parameter Values describes a collection of ssd:ParameterSet -A ParameterSet is a collection of parameters grouped under a name. -Parameter Values can be added in two ways: - -1. directly define it within the .ssd file in ssd:ParameterValues -2. create a .ssv file and reference it within the .ssd under ssd:ParameterValues - - -**System Structure Parameter Mapping (.ssm files)** - -Not mandatory. Not yet implemented in current |op| version. -A parameter mapping describes a mapping between parameters. -A parameter mapping can be added in two ways: - -1. directly define it within the .ssd file in one ssd:ParameterMapping -2. create a .ssm file and reference it within the .ssd in one ssd:ParameterMappings - - -**System Structure Signal Dictionaries (.ssb files)** - -Is not mandatory. Not yet implemented in current |op| version. -A signal dictionary is a collection of signals. -There are two ways to define a signal dictionary: - -1. directly define it within the .ssd file in ssd:ParameterMappings -2. create a .ssb file and reference it within the .ssd in ssd:ParameterMappings - -.. _ssd: - -SSD - System Structure Definition -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The following example shows the definition of a system "OSMPConnectionTest". - -.. _OsmpConnectionTest_Schema: - -.. figure:: ./draw.io/OsmpConnectionTest.ssd_Schemaansicht.png - - Schematic representation of OSMPConnection.ssd - -In the root System, OSMPConnectionTest is defined as an Element. -So this System is a subsystem of the root System. -The file "OSMPConnectionTest.ssd" defines the subsystem, which consists of two Components "DummySensor" and "TrafficUpdateStepper". -Notice, how Components are listed as Elements. In general, Elements of a System can either be a System or a Component. -You can think of it as a filestructure, in our example we keep it simple with just two Components in the Elements of OSMPConnectionTest. - -**In General** - -Each System consists of zero to many Elements and zero to many Connections -A Element can either be a Component, a SignalDictionaryReference or a System (Subsystem). -Each Element can have zero to many connectors, which are used to define Connections. -Connectors can interface with the FMU model description. -A Connector has a certain type (data type), and can have zero two many Annotations -An Annotation is used to give additional information for any model entity, which we are using in |op| to make OSMPConnectors (see :ref:`SSP_OSMPConnector`) -Furthermore each Element has zero to many ParameterBindings. -The parametrization of the FMUs is handled with a ParameterSet. - -**OSMP Connectors** - -By using an Annotation, we can combine three Connectors to be able to handle OSI messages. Notice, that Annotations -are a valid way to extend the standard with features, which are not part of SSP yet. - - .. literalinclude:: /../../../repo/sim/contrib/ssp/ConnectionTest/OSMPConnectionTest.ssd - :language: xml - :start-at: <ssd:Annotations> - :end-at: </ssd:Annotations> - -Three Connectors combine with an Annotation of type "net.psmf.osmp", by having the same name inside the osmp:osmp-binary-variable. -osmp:osmp-binary-variable comes always in the same shape. -Each triple of connectors must have the three following roles: base.lo, base.hi and size. -base.lo and base.hi make a memory pointer, where the OSI message is allocated during simulation. -size contains the memory size of the message. In combination of the three connectors the message can be passed between components -Also, notice how mime-type contains crucial information. Type specifies the type of the OSI message. Version is specified as well. - -**FMU Parameters** - -The FMU inside the ssd component needs parametrization as well. These are the same parameters as the parameters of the Algorithm_FmuWrapper. -To parametrize the FMU inside ssd, we define a ParameterSet inside the ParameterBindings. Important is the name attribute of the ParameterSet (name="FMUParameters"): - - .. literalinclude:: /../../../repo/sim/contrib/ssp/ConnectionTest/OSMPConnectionTest.ssd - :language: xml - :start-at: <ssv:ParameterSet version="1.0" name="FmuParameters"> - :end-at: </ssv:ParameterSet> - -Each ssv::parameter has a sub object of the parameter type, with the attribute value containing the actual value. -SSP support the following types: Real (float value), Integer, Boolean, String, Enumeration and Binary. - -**PriorityParameter** -The priority of the component is set through an annotation on component level -With a higher priority, a FMU component triggers earlier then others. - - - .. literalinclude:: /../../../repo/sim/contrib/ssp/ConnectionTest/OSMPConnectionTest.ssd - :language: xml - :start-at: <ssc:Annotation type="de.setlevel.ssp.scheduling"> - :end-at: </ssc:Annotation> - - -.. _ssp_implementation: - -Implementation --------------- - -Parsing -~~~~~~~ - -The first implementation detail of Algorithm SSP Wrapper, a selected SSP is loaded as vehicle component. -The following picture illustrates how files are parsed and interpreted in Algorithm_SspWrapper. - -.. _SSP_Parsing: -.. figure:: ./draw.io/[I1]Parsing.png - -Algorithm_SspWrapper is initialized by parsing one .ssp. The zip folded contents of the .ssp is unpacked to a temporary folder -and the contents are scanned for ssd files, such as the mandatory "SystemStructure.ssd". -The System described by "SystemStructure.ssd" makes the root system, -any other fully parsed system is included as subsystem of that root system. - -.. note:: - One parsed ssd. System includes GroupConnectors, which contain all outer accessible connectors. - A Connector is only visible from outside if it is connected with a connection. More on that in section :ref:`SSP_ObjectStructure` - -.. note:: - Should there be systems which are described by .ssd files, they must be in the elements array of the root system, - or in any other system related to the root system. Is a .ssd not in any relation to the root, it is ignored! - -The process of interpreting the connections is part of the system creation. -Another feature of system creation is the formation of OSI Connectors we discuss in the next chapter: - -.. _SSP_OSMPConnector: - -OSI Connectors -~~~~~~~~~~~~~~ - -The next figure describes how triples of connectors form a OSI Connector. - -.. figure:: ./draw.io/[I2]OsmpConnector.png - -OSI connectors come in triples since OSI messages are represented with 3 integers. -The integers base.lo and base.hi specify the memory location of the OSI message. base.size describes the buffer length. -Through the osmp annotation, a triple of connectors are joined together. -In the figures of this documentation, OSI Connectors are signaled by the purple color. - -.. note:: - The name attribute in the annotation joins the triple, whereas the connector name is relevant for the ssd system. - -.. note:: - To connect OSI connectors, they require 3 connections in the .ssd. Once the file is parsed, - the 3 connections forms a complete connection in the system. - - -OSI connectors are responsible for writing messages. Should the OSI message of a OSI connector change, -and the connector parametrized to write output, it writes the new message as soon as it changes. -While json messages can be written to file directly, binary traces contain the serialized messages of much timesteps in one file. -Because of that, osi messages append binary traces to message containers in their SSP system. It's contents are written -to file as soon the system destructs. - - -.. _SSP_ObjectStructure: - -Object Structure -~~~~~~~~~~~~~~~~ - -The implementation of SSP follows the relation of objects which the standard imposes. -Mainly the SSP contains at least one System. Each System contains Elements and Connectors. -Since Systems are Elements, Systems can include other Systems as subelements. - -Another type of Elements are Components. One common used Component is the FMUComponent. -It is good practice that FMUComponents don't contain further subelements. - -The System originating from the mandatory SystemStructure.ssd makes the root System object, -containing all of it's subsystems. - -The Following picture shows ConnectionTest.ssp with two connected FMU's. - -.. _SSP_ConnectionTestDetail: -.. figure:: ./draw.io/[I3]OSMPConnectionTestDetail.png - -After parsing, Algorithm_SspWrapper holds only one SSP System, which is the root System defined by the systemstructure.ssd -In our example, we have one subsystem: OSMPConnection, which is a Element of the root System. -Within the Elements of the System OSMPConnection are two components, which are of the type FMUComponent. -Each of these Components hold an instance of Algorithm_FmuWrapper. -The two FMUs are connected by two OSI Connectors. To establish a connection, the following requirements need to be fulfilled: - -- SensorDataOut has to be a OSI connector (see section :ref:`SSP_OSMPConnector`) -- SensorDataOut should be an output connector of SensorDummy and SensorDataIn should be an input connector of TrafficUpdateStepper. Their kind is specified as a connector attribute in the ssd file. -- both connectors are connected by the connection depicted with '*' in the figure. - -The OSI connector SensorDataOut will propagate its SensorData to the other connector SensorDataIn. -Each System can have connections, which can connect connectors of two different elements. -Hence, each Connection is just a tuple of : (elementStartName, startConnectorName) -> (elementEndName, endConnectorName) - - .. note:: - While OSI Connectors are abstracted as singular units in the figure, they appear as triple in the ssd. files. - Hence they require three connections in the ssd. file as well - -Example Connection between two components within the SSP (Connection '*') - .. literalinclude:: /../../../repo/sim/contrib/ssp/ConnectionTest/OSMPConnectionTest.ssd - :language: xml - :start-at: <!-- DummySensor <-> TrafficStepper --> - :end-at: suppressUnitConversion="false"/> - -Example Connection from outside the system(e.g. openPASS or another system) to a component in the system (Connection '**') - .. literalinclude:: /../../../repo/sim/contrib/ssp/ConnectionTest/OSMPConnectionTest.ssd - :language: xml - :start-at: <!-- System <-> TrafficStepper --> - :end-at: suppressUnitConversion="false"/> - -.. _ssp_connections: - -Notice that the connectors SensorDataIn, SensorDataOut and TrafficUpdate belong to their Components. -In the case of OSMPConnection, we are interested in the TrafficUpdate OSI message as output of the whole SSP. -Therefore, it needs a connection outwards. -This connection is represented by the connection '**' in the figure. As you can see in the figure above, the second connection -connects connector TrafficUpdateOut with the GroupConnector systemOutput. To make the connection work, the following is necessary: -- TrafficUpdateOut has to be a OSI connector (see section :ref:`SSP_OSMPConnector`) -- TrafficUpdateOut should be an output connector of TrafficUpdate and there must be three output connectors at the system OSMPConnection. These mirror the names of the three connectors forming the OSI connector on TrafficUpdateStepper. -- Both connectors are connected by a connection depicted with ** in the figure. - -.. note:: - For the connectors of system level, the most minimal connectors are necessary. - These only require the attribute name that mirrors the name of the connectors forming the OSI Connector. - -If all conditions are met, the output connector is emplaced in the GroupConnector systemOutput. -In this example there are no input connectors which are accessible form outside. - -.. note:: - Again TrafficUpdateOut makes up a pair of three connectors in the .ssd files. Notice that, if connectors inside sub elements - are only accessible from outside by well defined connections. - -Let's see how these outside accessible connectors are utilized by |op| in the next section. - - -SSP and |op| -~~~~~~~~~~~~ - -From |op|, the Algorithm SspWrapper receives three events: UpdateInput, UpdateOutput and Trigger. -For each of these events, the SSP Wrapper implementation handles them by creating Visitors following the Visitor software pattern. -These Visitors visiting Elements, and allow the Elements to implement the behaviour for each visitor based on if the element is a System or a Component. - -In general, we have two types of Visitors: ConnectorVisitors and ElementVisitors. -In the following figure, you can see how the Visitors traverse through our OSMPConnectionExample - -.. _SSP_ConnectionTestDetailwithOpenPass: -.. figure:: ./draw.io/[I4]OSMPConnectionTestDetailwithOpenPass.png - - Components and channel communication - -Trigger is an event that manifests as ElementVisitor in the Algorithm SSP Wrapper. -Each Element in the root System is visited by the TriggerVisitor. A system accepts the Visitor by passing it to further subsystems -and by creating a queue of FMUComponents that are stored inside the system's elements array. -Each component has a priority which is used to order the queue. -Then, the queue is processed and Trigger is called on the Algorithm_FmuWrapper instances which are stored inside the FMUComponents. -After each Trigger, all output Connectors are visited by the PropagateDataVisitor, which propagates OSI messages from one Connector to the next. - -UpdateInput and UpdateOutput are ConnectorVisitors. For each System in the root system, they visit the SystemConnectors -systemInput and systemOutput. GroupConnectors can be connected to other connectors (see :ref:`SSP Connections <ssp_connections>`). -Their job is to delegate ConnectorVisitors to their connected counterparts. -The UpdateInputVisitor and UpdateOutputVisitor follow the GroupConnectors systemInput/systemOutput down to it's OSI Connectors. -Once these Visitors visit a OSIConnector, they can perform UpdateInput and UpdateOutput, if the OSI Connector is a connector of a FMUComponent. - -.. Note:: - UpdateInput and UpdateOutput handling is still experimental. Since we need to decide to continue in calling UpdateInput/UpdateOutput on the FMU, - or to refactor OSMPFmuHandler. - -At the beginning of the simulation, the Init Visitor is a unique ElementVisitor, which will traverse through the System and trigger on every FMU the init procedure. - -.. _ssp_output: - -Limits ------- - -The current implementation of SSP in the SSP Wrapper is not a full implementation of the SSP Standard -but rather a solution to connect more then one FMUs together. -Currently, these SSP features are not part of Algorithm SspWrapper : - -- The standard allows usage of ids that can be used to refer any BaseElement in SSP -- Other annotations besides OSMP Connectors and the component priority are ignored -- Top Level meta data is not parsed -- units and transformation between units are not supported -- XML Element Choice : "Transformation Choice" as GType choice (for Connections) is not supported -- SSP as component of Systems is not implemented -- ParameterMapping (SSM) for automatic unit-mapping and name transformations in parameter binding is not implemented -- Signal directories (SSB) as element of systems for cross hierarchical signal pools (e.g for buses) (and Signal Directory Reference) are not implemented -- Default Experiment (with startTime and StopTime) is not used and ignored, the experiment control comes through |op| events -- Connectors of type string and binary data are not supported - -Outputs -------- - -For debugging purposes we allow to write out intermediate results during Simulation. - -FolderStructure -~~~~~~~~~~~~~~~ -The following folder structure shows the output files of our example. - - :: - - ..\results - ├── ssp - │ ├── Agent0xxx - │ │ ├──OsmpConnectionTest - │ │ │ ├── DummySensor - │ │ │ │ ├── JsonFiles - │ │ │ │ └── BinaryTraceFiles - │ │ │ ├── TrafficUpdateStepper - │ │ │ │ ├── JsonFiles - │ │ │ │ └── BinaryTraceFiles - │ │ │ └── - │ │ └── - │ └── - └── - -In the folder structure above: - - ``ssp`` is always the root of the output structure - - ``Agent0xxx``: the output is grouped by the agent who produced it (Agent0 -> Agent0000, Agent1 -> Agent0001) - - the output is grouped by its producing System name - - Further, the output is grouped by Components - - There are two different possible output files: Json and BinaryTrace - -Json files for -- For every timestep a json file containing the connector's OSI message will be created - -BinaryTrace files for -- Serialized OSI message as string from a specified connector - - -WriteMessageParameters -~~~~~~~~~~~~~~~~~~~~~~ - -We can specify for each component if json and/or binary traces are written to a file by using the parameter set -"WriteMessageParameters". The following shows an example: - - .. literalinclude:: /../../../repo/sim/contrib/ssp/ConnectionTest/OSMPConnectionTest.ssd - :language: xml - :start-at: <ssv:ParameterSet version="1.0" name="WriteMessageParameters"> - :end-at: </ssv:ParameterSet> - -How to read these parameters: -- WriteJson_SensorData: We write json outputs for the connector triple "OSMPSensorDataOut" -- WriteTrace_SensorData: We write binary traces for the connector triple "OSMPSensorDataOut" +.. + ******************************************************************************* + Copyright (c) 2022-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _ssp: + +System Structure and Parameterization (SSP) +=========================================== + +System Structure and Parameterization (SSP) is a tool independent standard to define +complete systems consisting of one or more FMUs +(see Functional-Mockup-Interface [LINK: https://fmi-standard.org/]) +including its parameterization that can be transferred between simulation tools. +Official content is available under: https://ssp-standard.org/ . + +In |op| we use SSP to connect FMUs with each other, +especially those which need communication during one simulation time step. +The whole SSP is appended as vehicle component. + +.. _ssp_input: + +Inputs / SSP Structure +---------------------- +The following image displays the example ConnectionTest.ssp. This SSP contains one root SSD-System, +the subsystem OSMPConnectionTest and two SSD-Components, that are connected with each other. + +.. _OsmpConnectionTest_Visual: +.. figure:: ./draw.io/[B2]OsmpConnectionTest_Visual.png + + +FMUs are wrapped within a SSD-Component. The example consists of two FMU's "DummySensor" and "OSMPTrafficUpdateStepper". +To allow these two to exchange data within one timestep, they need a connection, which consists of two connectors. +Either a connector gets data from outside of the SSP-System, for instance |op|. +Or two connectors which are directly connected within the SSP-System. +These connections are only one directional. +The example shows a common usecase of SSP: A sensor Component transfers SensorData to the TrafficUpdateStepper, +which writes a DynamicSignal. This signal leaves this SSP to animate the agent. + + +System Structure Package SSP +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +On the filesystem, a SSP is a zip file, which includes one or more .ssd files together with related resources. + +In our example the unpacked zip looks like this: + + :: + + ..\ConnectionTest.ssp + ├── SystemStructure.ssd (mandatory !) + ├── OSMPConnectionTest.ssd + ├── ParameterValues.ssv + ├── Resources + │ ├── DummySensor.fmu + │ └── OsmpTrafficUpdateStepper.fmu + + In the folder structure above: + + - ``SystemStructure.ssd`` can be perceived as the root of the SSP. It contains the root system. + - ``OSMPConnectionTest.ssd`` A system within the root system + - ``ParameterValues.ssv`` Alternative way to describe the values of SSP parameters (:ref:`ref <ssvFiles>`) + - ``Resources`` The Resources folder is for additional data, like FMUs. + + +Resources can be referenced FMUs. +Any SSP specific files should be located in the zip root directory. +SSP files are referenced from the System Structure Description file(s) through relative URIs (cf. RFC 3986). +SystemStructure.ssd is the root file of the zip archive. System structure definitions (\*.ssd) describe entities called Systems. +Additional entries may include Parameter Values (\*.ssv), Parameter Mappings (\*.ssm) or Signal Dictionaries (\*.ssb). + +**System Structure description (.ssd files)** + +The file "SystemStructure.ssd" is mandatory because it defines to root of the SSP. +Other (\*).ssd can be used to make use of more then one system, or for organisation purpose. +Subsystems that are hierarchically within the root system should be listed in that SSD. +Subsystems which are only present as (\*).ssd but are not connected with the root. More on that in section :ref:`ssd`. + +.. _ssvFiles: + +**System Structure Parameter Values (.ssv files)** + +Not mandatory. Is supported in the current version of |op|. +Parameter Values describes a collection of ssd:ParameterSet +A ParameterSet is a collection of parameters grouped under a name. +Parameter Values can be added in two ways: + +1. directly define it within the .ssd file in ssd:ParameterValues +2. create a .ssv file and reference it within the .ssd under ssd:ParameterValues + + +**System Structure Parameter Mapping (.ssm files)** + +Not mandatory. Not yet implemented in current |op| version. +A parameter mapping describes a mapping between parameters. +A parameter mapping can be added in two ways: + +1. directly define it within the .ssd file in one ssd:ParameterMapping +2. create a .ssm file and reference it within the .ssd in one ssd:ParameterMappings + + +**System Structure Signal Dictionaries (.ssb files)** + +Is not mandatory. Not yet implemented in current |op| version. +A signal dictionary is a collection of signals. +There are two ways to define a signal dictionary: + +1. directly define it within the .ssd file in ssd:ParameterMappings +2. create a .ssb file and reference it within the .ssd in ssd:ParameterMappings + +.. _ssd: + +SSD - System Structure Definition +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The following example shows the definition of a system "OSMPConnectionTest". + +.. _OsmpConnectionTest_Schema: + +.. figure:: ./draw.io/OsmpConnectionTest.ssd_Schemaansicht.png + + Schematic representation of OSMPConnection.ssd + +In the root System, OSMPConnectionTest is defined as an Element. +So this System is a subsystem of the root System. +The file "OSMPConnectionTest.ssd" defines the subsystem, which consists of two Components "DummySensor" and "TrafficUpdateStepper". +Notice, how Components are listed as Elements. In general, Elements of a System can either be a System or a Component. +You can think of it as a filestructure, in our example we keep it simple with just two Components in the Elements of OSMPConnectionTest. + +**In General** + +Each System consists of zero to many Elements and zero to many Connections +A Element can either be a Component, a SignalDictionaryReference or a System (Subsystem). +Each Element can have zero to many connectors, which are used to define Connections. +Connectors can interface with the FMU model description. +A Connector has a certain type (data type), and can have zero two many Annotations +An Annotation is used to give additional information for any model entity, which we are using in |op| to make OSMPConnectors (see :ref:`SSP_OSMPConnector`) +Furthermore each Element has zero to many ParameterBindings. +The parametrization of the FMUs is handled with a ParameterSet. + +**OSMP Connectors** + +By using an Annotation, we can combine three Connectors to be able to handle OSI messages. Notice, that Annotations +are a valid way to extend the standard with features, which are not part of SSP yet. + + .. literalinclude:: /../../../repo/sim/contrib/ssp/ConnectionTest/OSMPConnectionTest.ssd + :language: xml + :start-at: <ssd:Annotations> + :end-at: </ssd:Annotations> + +Three Connectors combine with an Annotation of type "net.psmf.osmp", by having the same name inside the osmp:osmp-binary-variable. +osmp:osmp-binary-variable comes always in the same shape. +Each triple of connectors must have the three following roles: base.lo, base.hi and size. +base.lo and base.hi make a memory pointer, where the OSI message is allocated during simulation. +size contains the memory size of the message. In combination of the three connectors the message can be passed between components +Also, notice how mime-type contains crucial information. Type specifies the type of the OSI message. Version is specified as well. + +**FMU Parameters** + +The FMU inside the ssd component needs parametrization as well. These are the same parameters as the parameters of the Algorithm_FmuWrapper. +To parametrize the FMU inside ssd, we define a ParameterSet inside the ParameterBindings. Important is the name attribute of the ParameterSet (name="FMUParameters"): + + .. literalinclude:: /../../../repo/sim/contrib/ssp/ConnectionTest/OSMPConnectionTest.ssd + :language: xml + :start-at: <ssv:ParameterSet version="1.0" name="FmuParameters"> + :end-at: </ssv:ParameterSet> + +Each ssv::parameter has a sub object of the parameter type, with the attribute value containing the actual value. +SSP support the following types: Real (float value), Integer, Boolean, String, Enumeration and Binary. + +**PriorityParameter** +The priority of the component is set through an annotation on component level +With a higher priority, a FMU component triggers earlier then others. + + + .. literalinclude:: /../../../repo/sim/contrib/ssp/ConnectionTest/OSMPConnectionTest.ssd + :language: xml + :start-at: <ssc:Annotation type="de.setlevel.ssp.scheduling"> + :end-at: </ssc:Annotation> + + +.. _ssp_implementation: + +Implementation +-------------- + +Parsing +~~~~~~~ + +The first implementation detail of Algorithm SSP Wrapper, a selected SSP is loaded as vehicle component. +The following picture illustrates how files are parsed and interpreted in Algorithm_SspWrapper. + +.. _SSP_Parsing: +.. figure:: ./draw.io/[I1]Parsing.png + +Algorithm_SspWrapper is initialized by parsing one .ssp. The zip folded contents of the .ssp is unpacked to a temporary folder +and the contents are scanned for ssd files, such as the mandatory "SystemStructure.ssd". +The System described by "SystemStructure.ssd" makes the root system, +any other fully parsed system is included as subsystem of that root system. + +.. note:: + One parsed ssd. System includes GroupConnectors, which contain all outer accessible connectors. + A Connector is only visible from outside if it is connected with a connection. More on that in section :ref:`SSP_ObjectStructure` + +.. note:: + Should there be systems which are described by .ssd files, they must be in the elements array of the root system, + or in any other system related to the root system. Is a .ssd not in any relation to the root, it is ignored! + +The process of interpreting the connections is part of the system creation. +Another feature of system creation is the formation of OSI Connectors we discuss in the next chapter: + +.. _SSP_OSMPConnector: + +OSI Connectors +~~~~~~~~~~~~~~ + +The next figure describes how triples of connectors form a OSI Connector. + +.. figure:: ./draw.io/[I2]OsmpConnector.png + +OSI connectors come in triples since OSI messages are represented with 3 integers. +The integers base.lo and base.hi specify the memory location of the OSI message. base.size describes the buffer length. +Through the osmp annotation, a triple of connectors are joined together. +In the figures of this documentation, OSI Connectors are signaled by the purple color. + +.. note:: + The name attribute in the annotation joins the triple, whereas the connector name is relevant for the ssd system. + +.. note:: + To connect OSI connectors, they require 3 connections in the .ssd. Once the file is parsed, + the 3 connections forms a complete connection in the system. + + +OSI connectors are responsible for writing messages. Should the OSI message of a OSI connector change, +and the connector parametrized to write output, it writes the new message as soon as it changes. +While json messages can be written to file directly, binary traces contain the serialized messages of much timesteps in one file. +Because of that, osi messages append binary traces to message containers in their SSP system. It's contents are written +to file as soon the system destructs. + + +.. _SSP_ObjectStructure: + +Object Structure +~~~~~~~~~~~~~~~~ + +The implementation of SSP follows the relation of objects which the standard imposes. +Mainly the SSP contains at least one System. Each System contains Elements and Connectors. +Since Systems are Elements, Systems can include other Systems as subelements. + +Another type of Elements are Components. One common used Component is the FMUComponent. +It is good practice that FMUComponents don't contain further subelements. + +The System originating from the mandatory SystemStructure.ssd makes the root System object, +containing all of it's subsystems. + +The Following picture shows ConnectionTest.ssp with two connected FMU's. + +.. _SSP_ConnectionTestDetail: +.. figure:: ./draw.io/[I3]OSMPConnectionTestDetail.png + +After parsing, Algorithm_SspWrapper holds only one SSP System, which is the root System defined by the systemstructure.ssd +In our example, we have one subsystem: OSMPConnection, which is a Element of the root System. +Within the Elements of the System OSMPConnection are two components, which are of the type FMUComponent. +Each of these Components hold an instance of Algorithm_FmuWrapper. +The two FMUs are connected by two OSI Connectors. To establish a connection, the following requirements need to be fulfilled: + +- SensorDataOut has to be a OSI connector (see section :ref:`SSP_OSMPConnector`) +- SensorDataOut should be an output connector of SensorDummy and SensorDataIn should be an input connector of TrafficUpdateStepper. Their kind is specified as a connector attribute in the ssd file. +- both connectors are connected by the connection depicted with '*' in the figure. + +The OSI connector SensorDataOut will propagate its SensorData to the other connector SensorDataIn. +Each System can have connections, which can connect connectors of two different elements. +Hence, each Connection is just a tuple of : (elementStartName, startConnectorName) -> (elementEndName, endConnectorName) + + .. note:: + While OSI Connectors are abstracted as singular units in the figure, they appear as triple in the ssd. files. + Hence they require three connections in the ssd. file as well + +Example Connection between two components within the SSP (Connection '*') + .. literalinclude:: /../../../repo/sim/contrib/ssp/ConnectionTest/OSMPConnectionTest.ssd + :language: xml + :start-at: <!-- DummySensor <-> TrafficStepper --> + :end-at: suppressUnitConversion="false"/> + +Example Connection from outside the system(e.g. openPASS or another system) to a component in the system (Connection '**') + .. literalinclude:: /../../../repo/sim/contrib/ssp/ConnectionTest/OSMPConnectionTest.ssd + :language: xml + :start-at: <!-- System <-> TrafficStepper --> + :end-at: suppressUnitConversion="false"/> + +.. _ssp_connections: + +Notice that the connectors SensorDataIn, SensorDataOut and TrafficUpdate belong to their Components. +In the case of OSMPConnection, we are interested in the TrafficUpdate OSI message as output of the whole SSP. +Therefore, it needs a connection outwards. +This connection is represented by the connection '**' in the figure. As you can see in the figure above, the second connection +connects connector TrafficUpdateOut with the GroupConnector systemOutput. To make the connection work, the following is necessary: +- TrafficUpdateOut has to be a OSI connector (see section :ref:`SSP_OSMPConnector`) +- TrafficUpdateOut should be an output connector of TrafficUpdate and there must be three output connectors at the system OSMPConnection. These mirror the names of the three connectors forming the OSI connector on TrafficUpdateStepper. +- Both connectors are connected by a connection depicted with ** in the figure. + +.. note:: + For the connectors of system level, the most minimal connectors are necessary. + These only require the attribute name that mirrors the name of the connectors forming the OSI Connector. + +If all conditions are met, the output connector is emplaced in the GroupConnector systemOutput. +In this example there are no input connectors which are accessible form outside. + +.. note:: + Again TrafficUpdateOut makes up a pair of three connectors in the .ssd files. Notice that, if connectors inside sub elements + are only accessible from outside by well defined connections. + +Let's see how these outside accessible connectors are utilized by |op| in the next section. + + +SSP and |op| +~~~~~~~~~~~~ + +From |op|, the Algorithm SspWrapper receives three events: UpdateInput, UpdateOutput and Trigger. +For each of these events, the SSP Wrapper implementation handles them by creating Visitors following the Visitor software pattern. +These Visitors visiting Elements, and allow the Elements to implement the behaviour for each visitor based on if the element is a System or a Component. + +In general, we have two types of Visitors: ConnectorVisitors and ElementVisitors. +In the following figure, you can see how the Visitors traverse through our OSMPConnectionExample + +.. _SSP_ConnectionTestDetailwithOpenPass: +.. figure:: ./draw.io/[I4]OSMPConnectionTestDetailwithOpenPass.png + + Components and channel communication + +Trigger is an event that manifests as ElementVisitor in the Algorithm SSP Wrapper. +Each Element in the root System is visited by the TriggerVisitor. A system accepts the Visitor by passing it to further subsystems +and by creating a queue of FMUComponents that are stored inside the system's elements array. +Each component has a priority which is used to order the queue. +Then, the queue is processed and Trigger is called on the Algorithm_FmuWrapper instances which are stored inside the FMUComponents. +After each Trigger, all output Connectors are visited by the PropagateDataVisitor, which propagates OSI messages from one Connector to the next. + +UpdateInput and UpdateOutput are ConnectorVisitors. For each System in the root system, they visit the SystemConnectors +systemInput and systemOutput. GroupConnectors can be connected to other connectors (see :ref:`SSP Connections <ssp_connections>`). +Their job is to delegate ConnectorVisitors to their connected counterparts. +The UpdateInputVisitor and UpdateOutputVisitor follow the GroupConnectors systemInput/systemOutput down to it's OSI Connectors. +Once these Visitors visit a OSIConnector, they can perform UpdateInput and UpdateOutput, if the OSI Connector is a connector of a FMUComponent. + +.. Note:: + UpdateInput and UpdateOutput handling is still experimental. Since we need to decide to continue in calling UpdateInput/UpdateOutput on the FMU, + or to refactor OSMPFmuHandler. + +At the beginning of the simulation, the Init Visitor is a unique ElementVisitor, which will traverse through the System and trigger on every FMU the init procedure. + +.. _ssp_output: + +Limits +------ + +The current implementation of SSP in the SSP Wrapper is not a full implementation of the SSP Standard +but rather a solution to connect more then one FMUs together. +Currently, these SSP features are not part of Algorithm SspWrapper : + +- The standard allows usage of ids that can be used to refer any BaseElement in SSP +- Other annotations besides OSMP Connectors and the component priority are ignored +- Top Level meta data is not parsed +- units and transformation between units are not supported +- XML Element Choice : "Transformation Choice" as GType choice (for Connections) is not supported +- SSP as component of Systems is not implemented +- ParameterMapping (SSM) for automatic unit-mapping and name transformations in parameter binding is not implemented +- Signal directories (SSB) as element of systems for cross hierarchical signal pools (e.g for buses) (and Signal Directory Reference) are not implemented +- Default Experiment (with startTime and StopTime) is not used and ignored, the experiment control comes through |op| events +- Connectors of type string and binary data are not supported + +Outputs +------- + +For debugging purposes we allow to write out intermediate results during Simulation. + +FolderStructure +~~~~~~~~~~~~~~~ +The following folder structure shows the output files of our example. + + :: + + ..\results + ├── ssp + │ ├── Agent0xxx + │ │ ├──OsmpConnectionTest + │ │ │ ├── DummySensor + │ │ │ │ ├── JsonFiles + │ │ │ │ └── BinaryTraceFiles + │ │ │ ├── TrafficUpdateStepper + │ │ │ │ ├── JsonFiles + │ │ │ │ └── BinaryTraceFiles + │ │ │ └── + │ │ └── + │ └── + └── + +In the folder structure above: + - ``ssp`` is always the root of the output structure + - ``Agent0xxx``: the output is grouped by the agent who produced it (Agent0 -> Agent0000, Agent1 -> Agent0001) + - the output is grouped by its producing System name + - Further, the output is grouped by Components + - There are two different possible output files: Json and BinaryTrace + +Json files for +- For every timestep a json file containing the connector's OSI message will be created + +BinaryTrace files for +- Serialized OSI message as string from a specified connector + + +WriteMessageParameters +~~~~~~~~~~~~~~~~~~~~~~ + +We can specify for each component if json and/or binary traces are written to a file by using the parameter set +"WriteMessageParameters". The following shows an example: + + .. literalinclude:: /../../../repo/sim/contrib/ssp/ConnectionTest/OSMPConnectionTest.ssd + :language: xml + :start-at: <ssv:ParameterSet version="1.0" name="WriteMessageParameters"> + :end-at: </ssv:ParameterSet> + +How to read these parameters: +- WriteJson_SensorData: We write json outputs for the connector triple "OSMPSensorDataOut" +- WriteTrace_SensorData: We write binary traces for the connector triple "OSMPSensorDataOut" diff --git a/content/html/_sources/advanced_topics/simulator/world_osi.rst.txt b/content/html/_sources/advanced_topics/simulator/world_osi.rst.txt index 07c891992a24c60c346cc275ec5d5176df32fc43..2131ea0bf014883b260f8b8f9e9165659e1a6075 100644 --- a/content/html/_sources/advanced_topics/simulator/world_osi.rst.txt +++ b/content/html/_sources/advanced_topics/simulator/world_osi.rst.txt @@ -1,370 +1,370 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _world_osi: - -World_OSI -========== - -.. _world_sampling: - -Sampling of World Geometries ----------------------------- - -.. _OpenDRIVE: https://www.asam.net/standards/detail/opendrive/ -.. _OpenSCENARIO: https://www.asam.net/standards/detail/openscenario/ -.. _open simulation interface: https://github.com/OpenSimulationInterface -.. _Ramer-Douglas-Peucker algorithm: https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm - -Roads are described following the `OpenDRIVE`_ specification. -There the geometry of a road is defined algebraically as lines, clothoids and by means of cubic polynomials, whereby primarily only one reference line is defined. -The lanes can be understood as a stack of parallel lanes, which are given by the width and the offset, now in relation to this reference line, which acts as the underlying coordinate system ('s/t' road coordinates with s along the road). -Here, too, width and offset are defined algebraically, which means that almost any boundary lines can be defined. - -When the world is initialized, these boundary definitions (i.e. algebraic geometries) are converted into piecewise linear elements, which is called sampling. -The road is scanned at a constant interval along 's', which leads to four-sided (quadrangular) sections of the lanes at common 's' coordinates, so-called lane elements (see LaneElement). -The scanning is carried out at a scanning rate of 10 centimeters with the aim of achieving a total scanning error of less than 5 centimeters, as required by the representation used internally (c.f. `open simulation interface`_). -Note that this error is only guaranteed if geometries do not exhibit extreme curvatures, i.e. a deviation of more than 5 cm within two sampling points (10 cm along s). -The scanned points define so-called joints, which contain all scanned points at an 's' coordinate across all lane boundaries of the given road. -The number of these joints is reduced by a `Ramer-Douglas-Peucker algorithm`_, which ensures that the maximum lateral error of each individual point within a joint is less than 5 cm compared to the originally scanned points. -Note that (a) the boundary points of geometries are always retained and (b) additional points for lane marking transitions are also retained to ensure the maximum accuracy of these edge cases. -The lane elements are generated with two successive connections, which are ultimately used in the localization at runtime (see :ref:`world_localization`). - -Internally, each lane element receives a constant direction, which is defined by the direction of the vector spanned between the centers of the corresponding connections. -Each joint also holds the corresponding curvature of the road, so that the curvature can be interpolated linearly within a lane element along the 's' coordinate. - -.. _world_localization: - -Localization ------------- - -Generally, the position of an agent is stored with respect to :ref:`world coordinates (x,y) <coordinatesystems_world>`. -As queries on the world operates in :ref:`road coordinates (s,t) <coordinatesystems_road>`, the position of the agent needs to be transformed. - -This section describes the translation of coordinates (x,y) of an agent into RoadCoordinate (s,t), whereas the notion of (s,t) comes from the `OpenDRIVE` _ standard. - -Basics -~~~~~~ - -The following image depics the basic principes of the localization which is rooted on the specifics of the OSI World Layer (aka OWL). - -.. figure:: ./images/LocalizationBasics.svg - - Localization Basics - -Given is a point P in cartesian coordinates (x/y). -The task is to assign the point to a lane, defined by a general road geometry and calculate the transformed Point P' in road coordinates (s/t). - -Road geometry (based on `OpenDRIVE`_): - - - A road consists of several sections - - Each section consists of several lanes - - Within a section, the number of lanes is constant - - Lanes can have one predecessor and one successor - - The road follows a reference line, which is the reference for the *s*\ -coordinate. - The *t*\ -coordinate is perpendicular to this line. - -OWL specifics: - - - All lanes are sampled, generating a stream of generic quadrilaterals (LaneGeometryElements). - - Within a section, the number of quads per lane is equal, and all lanes have the same length in s. - - This is realized by a variable sampling width, determined by a constant sampling width along the longest arc. - - Consequently, points perpendicular to the reference line (*t*\ -axis) have the same *s*\ -coordinate. - -Note, that the final *t*\ -coordinate is calculated with respect to a virtual reference line for each lane. -This means, that points on the center of a lane have *t*\ -coordinate of 0. - -Localization Sequence -~~~~~~~~~~~~~~~~~~~~~ - -.. _r-tree: https://www.boost.org/doc/libs/1_65_0/libs/geometry/doc/html/geometry/reference/spatial_indexes/boost__geometry__index__rtree.html - -The following outlines the localization process implemented in openPASS, using a specific example of a bus changing lanes on a widening road. - -.. figure:: ./images/localization_with_bus_step0.svg - - Bus changing lanes on a widening road - -First, as described above LaneGeometryElements are generated for the road, here shown as a simplified red grid: - -.. figure:: ./images/localization_with_bus_step1.svg - - LaneGeometryElements and bounding box of the bus - -All geometries are internally managed by an `r-tree`_, used to check for overlaps between the bounding box of the bus and all stored objects in the tree, making checks for overlap extremely fast. -However, the r-tree comes with the restriction that all stored objects are stored by boxes orthogonal to ``x`` and ``y`` (= maximum Cartesian coordinates of the boundary points). - -.. figure:: ./images/localization_with_bus_step2.svg - - r-Tree representation of the Bus and a single LaneGeometryElement - -.. figure:: ./images/localization_with_bus_step3.svg - - r-Tree representation of all participating geometries - -This introduces additional overlaps, resulting in false positives where the bus is located on segments it does not actually touch. - -.. figure:: ./images/localization_with_bus_step4.svg - - Found overlaps with false positives - -This is justified because the subsequent filtering can be carried out quickly since the possible geometries allow a simplified intersection check. -Finally, for each point of a non-empty intersection polygon, the ``s`` and ``t`` coordinates are calculated and aggregated with respect to the underlying lane. -For each touched lane, the minimum and maximum ``s`` coordinate, and the minimum and maximum lane remainder (delta t) is stored. - -.. figure:: ./images/localization_with_bus_step5.svg - - Example for the calculation of s_min, s_max and delta_right - -In addition, if the reference point (i.e. the middle of the rear axle) or the mainLaneLocator (i.e. the middle of the agent front) are located within a LaneGeometryElement, ``s/t/yaw`` is calculated of each point, respectively. -Further aggregation is done with respect to each road by calculating the minimum and maximum ``s`` for each road the agent intersects with. -For the current route of an agent, the following information is stored: ``s/t/yaw`` of the reference point and mainLaneLocator on the route (roads along a route are not allowed to intersect), distance from the lane boundary to the left and right for the road(s) along the route, and OpenDRIVE Ids of the lanes on the route that the agent touches. -The results also holds information whether both the reference point and the mainLaneLocator lay on the route. -In the current implementation, these points must be located - otherwise the agent is despawened, as the agent cannot execute distance queries without a relation to its current route. - - -.. _world_trafficsigns: - -Traffic Signs, Road Markings and TrafficLights ----------------------------------------------- - -The world currently supports a variety of traffic signs, road markings and traffic lights. -All of these are defined in `OpenDRIVE`_ as "RoadSignal". -At the moment it can interpret traffic signs and road markings according to the German regulations, US regulations, and China regulations and traffic lights according the the `OpenDRIVE`_ appendix. -Traffic signs can contain optional supplementary traffic signs. Supplementary signs are dependent on a main traffic sign and contain additional information. - -For Germany the types are based on the StVO (see: https://www.bast.de/BASt_2017/DE/Verkehrstechnik/Fachthemen/v1-verkehrszeichen/vz-download.html). -The following traffic signs are supported for Germany: - -.. table:: - :class: tight-table - - ============================================= ============================================================================= ========= =========== ================================================================================= - TrafficSign Image StVo Type Subtype Value and Units - ============================================= ============================================================================= ========= =========== ================================================================================= - GiveWay .. figure:: ./images/DE/GiveWay_205.svg 205 - :width: 400 - Stop .. figure:: ./images/DE/Stop_206.svg 206 - :width: 400 - DoNotEnter .. figure:: ./images/DE/DoNotEnter_267.svg 267 - :width: 400 - EnvironmentalZoneBegin .. figure:: ./images/DE/EnvironmentalZoneBegin_270.1.svg 270.1 - :width: 400 - EnvironmentalZoneEnd .. figure:: ./images/DE/EnvironmentalZoneEnd_270.2.svg 270.2 - :width: 400 - MaximumSpeedLimit .. figure:: ./images/DE/MaximumSpeedLimit_274-5.svg 274 X The subtype "X" is used to define the speedlimit in km/h. - :width: 400 Afterwards the world converts it to m/s. - .. figure:: ./images/DE/MaximumSpeedLimit_274-130.svg - :width: 400 - SpeedLimitZoneBegin .. figure:: ./images/DE/SpeedLimitZoneBegin_274.1.svg 274.1 -/20 The subtype is used to define the speedlimit in km/h. - :width: 400 Afterwards the world converts it to m/s. - .. figure:: ./images/DE/SpeedLimitZoneBegin_274.1-20.svg No subtype = 30km/h, 20 = 20km/h - :width: 400 - SpeedLimitZoneEnd .. figure:: ./images/DE/SpeedLimitZoneEnd_274.2.svg 274.2 -/20 The subtype is used to define the speedlimit in km/h. - :width: 400 Afterwards the world converts it to m/s. - .. figure:: ./images/DE/SpeedLimitZoneEnd_274.2-20.svg No subtype = 30km/h, 20 = 20km/h - :width: 400 - MinimumSpeedLimit .. figure:: ./images/DE/MinimumSpeedLimit_275.svg 275 X The subtype is used to define the speedlimit in km/h. - :width: 400 Afterwards the world converts it to m/s. - OvertakingBanBegin .. figure:: ./images/DE/OvertakingBanBegin_276.svg 276 - :width: 400 - OvertakingBanTrucksBegin .. figure:: ./images/DE/OvertakingBanTrucksBegin_277.svg 277 - :width: 400 - EndOfMaximumSpeedLimit .. figure:: ./images/DE/EndOfMaximumSpeedLimit_278-5.svg 278 X The subtype "X" is used to define the speedlimit in km/h. - :width: 400 Afterwards the world converts it to m/s. - .. figure:: ./images/DE/EndOfMaximumSpeedLimit_278-130.svg - :width: 400 - EndOfMinimumSpeedLimit .. figure:: ./images/DE/EndOfMinimumSpeedLimit_279.svg 279 X The subtype "X" is used to define the speedlimit in km/h. - :width: 400 Afterwards the world converts it to m/s. - OvertakingBanEnd .. figure:: ./images/DE/OvertakingBanEnd_280.svg 280 - :width: 400 - OvertakingBanTrucksEnd .. figure:: ./images/DE/OvertakingBanTrucksEnd_281.svg 281 - :width: 400 - EndOffAllSpeedLimitsAndOvertakingRestrictions .. figure:: ./images/DE/EndOffAllSpeedLimitsAndOvertakingRestrictions_282.svg 282 - :width: 400 - RightOfWayNextIntersection .. figure:: ./images/DE/RightOfWayNextIntersection_301.svg 301 - :width: 400 - RightOfWayBegin .. figure:: ./images/DE/RightOfWayBegin_306.svg 306 - :width: 400 - RightOfWayEnd .. figure:: ./images/DE/RightOfWayEnd_307.svg 307 - :width: 400 - TownBegin .. figure:: ./images/DE/TownBegin_310.svg 310 This sign contains a text describing the name of the town - :width: 400 - TownEnd .. figure:: ./images/DE/TownEnd_311.svg 311 This sign contains a text describing the name of the town - :width: 400 - TrafficCalmedDistrictBegin .. figure:: ./images/DE/TrafficCalmedDistrictBegin_325.1.svg 325.1 - :width: 400 - TrafficCalmedDistrictEnd .. figure:: ./images/DE/TrafficCalmedDistrictEnd_325.2.svg 325.2 - :width: 400 - HighWayBegin .. figure:: ./images/DE/HighWayBegin_330.1.svg 330.1 - :width: 400 - HighWayEnd .. figure:: ./images/DE/HighWayEnd_330.2.svg 330.2 - :width: 400 - HighWayExit .. figure:: ./images/DE/HighWayExit_333.svg 333 - :width: 400 - AnnounceHighwayExit .. figure:: ./images/DE/AnnounceHighwayExit_448.svg 448 - :width: 400 - PreannounceHighwayExitDirections .. figure:: ./images/DE/AnnounceHighwayExit_449.svg 449 - :width: 400 - HighwayExitPole .. figure:: ./images/DE/HighwayExitPole_450-50.svg 450 50/51/52 The subtype describes the distance to the highway exit in m. - :width: 400 50 = 100m, 51 = 200m, 52 = 300m - .. figure:: ./images/DE/HighwayExitPole_450-51.svg - :width: 400 - .. figure:: ./images/DE/HighwayExitPole_450-52.svg - :width: 400 - AnnounceRightLaneEnd .. figure:: ./images/DE/AnnounceRightLaneEnd_531-10.svg 531 10/11/12/13 The subtype describes the number of continuing lanes after the right lane ends. - :width: 400 10 = 1 lane, 11 = 2 lanes, 12 = 3 lanes, 13 = 4 lanes - .. figure:: ./images/DE/AnnounceRightLaneEnd_531-11.svg - :width: 400 - .. figure:: ./images/DE/AnnounceRightLaneEnd_531-12.svg - :width: 400 - .. figure:: ./images/DE/AnnounceRightLaneEnd_531-13.svg - :width: 400 - AnnounceLeftLaneEnd .. figure:: ./images/DE/AnnounceLeftLaneEnd_531-20.svg 531 20/21/22/23 The subtype describes the number of continuing lanes after the left lane ends. - :width: 400 10 = 1 lane, 11 = 2 lanes, 12 = 3 lanes, 13 = 4 lanes - .. figure:: ./images/DE/AnnounceLeftLaneEnd_531-21.svg - :width: 400 - .. figure:: ./images/DE/AnnounceLeftLaneEnd_531-22.svg - :width: 400 - .. figure:: ./images/DE/AnnounceLeftLaneEnd_531-23.svg - :width: 400 - DistanceIndication .. figure:: ./images/DE/DistanceIndication_1004-30.svg 1004 30/31/32 For subtype 30 the value describes the distance in m. - :width: 400 For subtype 31 the value describes the distance in km. - .. figure:: ./images/DE/DistanceIndication_1004-31.svg Subtype 32 has a STOP in 100m. - :width: 400 - .. figure:: ./images/DE/DistanceIndication_1004-32.svg - :width: 400 - ============================================= ============================================================================= ========= =========== ================================================================================= - -The following road markings are supported for Germany: - -.. table:: - :class: tight-table - - ======================= ================================================== ========= ======= ================ - RoadMarking Image StVo Type Subtype Value and Units - ======================= ================================================== ========= ======= ================ - PedestrianCrossing .. figure:: ./images/DE/PedestrianCrossing_293.svg 293 - :width: 400 - Stop line .. figure:: ./images/DE/Stop_line_294.svg 294 - :width: 400 - ======================= ================================================== ========= ======= ================ - -The pedestrian crossing can also be defined in `OpenDRIVE`_ as object with type "crosswalk". - -For United States the types are based on the "Manual on Uniform Traffic Control Devices" (see: https://mutcd.fhwa.dot.gov/pdfs/2009r1r2/pdf_index.htm). -The following traffic signs are supported for United States: - -.. table:: - - ============================================= ======================================================== ========= ======================================================== - TrafficSign Image Type Value and Units - ============================================= ======================================================== ========= ======================================================== - HighWayExit .. figure:: ./images/US/HighWayExit_E5-1.svg E5-1 - :width: 400 - HighWayExit .. figure:: ./images/US/HighWayExit_E2-5.svg E2-5 - :width: 400 - AnnounceHighwayExit .. figure:: ./images/US/AnnounceHighwayExit_E1-2.svg E1-2 - :width: 400 - PreannounceHighwayExit .. figure:: ./images/US/PreannounceHighwayExit_E1-2a.svg E1-2a - :width: 400 - Stop .. figure:: ./images/US/Stop_R1-1.svg R1-1 - :width: 400 - GiveWay .. figure:: ./images/US/GiveWay_R1-2.svg R1-2 - :width: 400 - MaximumSpeedLimit .. figure:: ./images/US/MaximumSpeedLimit_R2-1.svg R2-1 as defined via the "value" and "unit" attributes - :width: 400 - DoNotPass (OvertakingBan) .. figure:: ./images/US/DoNotPass_R4-1.svg R4-1 - :width: 400 - DoNotEnter .. figure:: ./images/US/DoNotEnter_R5-1.svg R5-1 - :width: 400 - RightLaneEnd .. figure:: ./images/US/RightLaneEnd_W4-2R.svg W4-2R - :width: 400 - LeftLaneEnd .. figure:: ./images/US/LeftLaneEnd_W4-2L.svg W4-2L - :width: 400 - ============================================= ======================================================== ========= ======================================================== - -For China the types are based on the https://upload.wikimedia.org/wikipedia/commons/8/8c/China_GB_5768.2-2009.pdf. -The following traffic signs are supported for China: - -.. table:: - - ============================================= ======================================================= ============================= =========== ================================================================================ - TrafficSign Image Type Subtype Value and Units - ============================================= ======================================================= ============================= =========== ================================================================================ - AnnounceRightLaneEnd .. figure:: ./images/CN/EndofLaneRight-32a.svg EndofLane-32 a/b The subtype describes the number of continuing lanes after the right lane ends. - :width: 400 a = 2 lanes, b = 3 lanes - .. figure:: ./images/CN/EndofLaneRight-32b.svg - :width: 400 - AnnounceLeftLaneEnd .. figure:: ./images/CN/EndofLaneLeft-32c.svg EndofLane-32 c/d The subtype describes the number of continuing lanes after the left lane ends. - :width: 400 c = 2 lanes, d = 3 lanes - .. figure:: ./images/CN/EndofLaneLeft-32d.svg - :width: 400 - MaximumSpeedLimit .. figure:: ./images/CN/MaximumSpeedLimit-38.svg SpeedLimit-38 as defined via the "value" and "unit" attributes - :width: 400 - EndOfMaximumSpeedLimit .. figure:: ./images/CN/EndOfMaximumSpeedLimit-39.svg EndOfSpeedLimit-39 as defined via the "value" and "unit" attributes - :width: 400 - AnnounceHighwayExit (1km) .. figure:: ./images/CN/AnnouceHighwayExit1km-50b.svg AnnounceHighwayExit-50b - :width: 400 - AnnounceHighwayExit (500m) .. figure:: ./images/CN/AnnouceHighwayExit500m-50c.svg AnnounceHighwayExit-50c - :width: 400 - HighWayExit .. figure:: ./images/CN/HighwayExit-50d.svg HighwayExit-50d - :width: 400 - ============================================= ======================================================= ============================= =========== ================================================================================ - -The following traffic lights are supported: - -.. table:: - :class: tight-table - - ============================================= =============== ======= =============== - TrafficLight OpenDRIVE Type Subtype Value and Units - ============================================= =============== ======= =============== - Standard traffic light (red, yellow, green) 1.000.001 \- \- - Left arrows 1.000.011 10 \- - Right arrows 1.000.011 20 \- - Upwards arrows 1.000.011 30 \- - Left und upwards arrows 1.000.011 40 \- - Right und upwards arrows 1.000.011 50 \- - ============================================= =============== ======= =============== - -These traffic lights are controlled by `OpenSCENARIO`_. - -.. _world_lanemarkings: - -Lane Markings -------------- - -The world also supports lane markings (i.e. printed lines between two lanes) according to the `OpenDRIVE`_ standard. -The following attributes of the "roadMark" tag in the scenery file are stored in the world and can be retrieved by the GetLaneMarkings query: sOffset, type, weight, color. -The weight is converted into a width in meter: 0.15 for standard and 0.3 for bold. Lane markings are also converted to OSI LaneBoundaries. -For the OpenDRIVE type "solid solid", "solid broken", "broken solid", and "broken broken" two LaneBoundaries are created in OSI with a fixed lateral distance of 0.15m. - -.. _world_getobstruction: - -GetObstruction --------------- - -The GetObstruction function calculates the lateral distance an agent must travel in order to align with either the left or right boundary of a target object occupying the same lane. - -The calculation adheres to the following process: - -#) Project the agent's MainLaneLocator along the lane to the nearest and furthest s-coordinate of the target object, capturing the projected points -#) Create a straight line from the two captured points -#) Calculate the Euclidean distance of each of the target object's corners to the created line -#) Return the left-most and right-most points with respect to the created line - -If the first step fails, because the ego lane does not extend to the object's position (i.e. it ends prematurely or the objects is outside the ego's route), then the result is invalid, which is indicated by a separate valid flag. - -.. figure:: ./images/GetObstruction.svg - - Example for the calculation of GetObstruction +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _world_osi: + +World_OSI +========== + +.. _world_sampling: + +Sampling of World Geometries +---------------------------- + +.. _OpenDRIVE: https://www.asam.net/standards/detail/opendrive/ +.. _OpenSCENARIO: https://www.asam.net/standards/detail/openscenario/ +.. _open simulation interface: https://github.com/OpenSimulationInterface +.. _Ramer-Douglas-Peucker algorithm: https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm + +Roads are described following the `OpenDRIVE`_ specification. +There the geometry of a road is defined algebraically as lines, clothoids and by means of cubic polynomials, whereby primarily only one reference line is defined. +The lanes can be understood as a stack of parallel lanes, which are given by the width and the offset, now in relation to this reference line, which acts as the underlying coordinate system ('s/t' road coordinates with s along the road). +Here, too, width and offset are defined algebraically, which means that almost any boundary lines can be defined. + +When the world is initialized, these boundary definitions (i.e. algebraic geometries) are converted into piecewise linear elements, which is called sampling. +The road is scanned at a constant interval along 's', which leads to four-sided (quadrangular) sections of the lanes at common 's' coordinates, so-called lane elements (see LaneElement). +The scanning is carried out at a scanning rate of 10 centimeters with the aim of achieving a total scanning error of less than 5 centimeters, as required by the representation used internally (c.f. `open simulation interface`_). +Note that this error is only guaranteed if geometries do not exhibit extreme curvatures, i.e. a deviation of more than 5 cm within two sampling points (10 cm along s). +The scanned points define so-called joints, which contain all scanned points at an 's' coordinate across all lane boundaries of the given road. +The number of these joints is reduced by a `Ramer-Douglas-Peucker algorithm`_, which ensures that the maximum lateral error of each individual point within a joint is less than 5 cm compared to the originally scanned points. +Note that (a) the boundary points of geometries are always retained and (b) additional points for lane marking transitions are also retained to ensure the maximum accuracy of these edge cases. +The lane elements are generated with two successive connections, which are ultimately used in the localization at runtime (see :ref:`world_localization`). + +Internally, each lane element receives a constant direction, which is defined by the direction of the vector spanned between the centers of the corresponding connections. +Each joint also holds the corresponding curvature of the road, so that the curvature can be interpolated linearly within a lane element along the 's' coordinate. + +.. _world_localization: + +Localization +------------ + +Generally, the position of an agent is stored with respect to :ref:`world coordinates (x,y) <coordinatesystems_world>`. +As queries on the world operates in :ref:`road coordinates (s,t) <coordinatesystems_road>`, the position of the agent needs to be transformed. + +This section describes the translation of coordinates (x,y) of an agent into RoadCoordinate (s,t), whereas the notion of (s,t) comes from the `OpenDRIVE` _ standard. + +Basics +~~~~~~ + +The following image depics the basic principes of the localization which is rooted on the specifics of the OSI World Layer (aka OWL). + +.. figure:: ./images/LocalizationBasics.svg + + Localization Basics + +Given is a point P in cartesian coordinates (x/y). +The task is to assign the point to a lane, defined by a general road geometry and calculate the transformed Point P' in road coordinates (s/t). + +Road geometry (based on `OpenDRIVE`_): + + - A road consists of several sections + - Each section consists of several lanes + - Within a section, the number of lanes is constant + - Lanes can have one predecessor and one successor + - The road follows a reference line, which is the reference for the *s*\ -coordinate. + The *t*\ -coordinate is perpendicular to this line. + +OWL specifics: + + - All lanes are sampled, generating a stream of generic quadrilaterals (LaneGeometryElements). + - Within a section, the number of quads per lane is equal, and all lanes have the same length in s. + - This is realized by a variable sampling width, determined by a constant sampling width along the longest arc. + - Consequently, points perpendicular to the reference line (*t*\ -axis) have the same *s*\ -coordinate. + +Note, that the final *t*\ -coordinate is calculated with respect to a virtual reference line for each lane. +This means, that points on the center of a lane have *t*\ -coordinate of 0. + +Localization Sequence +~~~~~~~~~~~~~~~~~~~~~ + +.. _r-tree: https://www.boost.org/doc/libs/1_65_0/libs/geometry/doc/html/geometry/reference/spatial_indexes/boost__geometry__index__rtree.html + +The following outlines the localization process implemented in openPASS, using a specific example of a bus changing lanes on a widening road. + +.. figure:: ./images/localization_with_bus_step0.svg + + Bus changing lanes on a widening road + +First, as described above LaneGeometryElements are generated for the road, here shown as a simplified red grid: + +.. figure:: ./images/localization_with_bus_step1.svg + + LaneGeometryElements and bounding box of the bus + +All geometries are internally managed by an `r-tree`_, used to check for overlaps between the bounding box of the bus and all stored objects in the tree, making checks for overlap extremely fast. +However, the r-tree comes with the restriction that all stored objects are stored by boxes orthogonal to ``x`` and ``y`` (= maximum Cartesian coordinates of the boundary points). + +.. figure:: ./images/localization_with_bus_step2.svg + + r-Tree representation of the Bus and a single LaneGeometryElement + +.. figure:: ./images/localization_with_bus_step3.svg + + r-Tree representation of all participating geometries + +This introduces additional overlaps, resulting in false positives where the bus is located on segments it does not actually touch. + +.. figure:: ./images/localization_with_bus_step4.svg + + Found overlaps with false positives + +This is justified because the subsequent filtering can be carried out quickly since the possible geometries allow a simplified intersection check. +Finally, for each point of a non-empty intersection polygon, the ``s`` and ``t`` coordinates are calculated and aggregated with respect to the underlying lane. +For each touched lane, the minimum and maximum ``s`` coordinate, and the minimum and maximum lane remainder (delta t) is stored. + +.. figure:: ./images/localization_with_bus_step5.svg + + Example for the calculation of s_min, s_max and delta_right + +In addition, if the reference point (i.e. the middle of the rear axle) or the mainLaneLocator (i.e. the middle of the agent front) are located within a LaneGeometryElement, ``s/t/yaw`` is calculated of each point, respectively. +Further aggregation is done with respect to each road by calculating the minimum and maximum ``s`` for each road the agent intersects with. +For the current route of an agent, the following information is stored: ``s/t/yaw`` of the reference point and mainLaneLocator on the route (roads along a route are not allowed to intersect), distance from the lane boundary to the left and right for the road(s) along the route, and OpenDRIVE Ids of the lanes on the route that the agent touches. +The results also holds information whether both the reference point and the mainLaneLocator lay on the route. +In the current implementation, these points must be located - otherwise the agent is despawened, as the agent cannot execute distance queries without a relation to its current route. + + +.. _world_trafficsigns: + +Traffic Signs, Road Markings and TrafficLights +---------------------------------------------- + +The world currently supports a variety of traffic signs, road markings and traffic lights. +All of these are defined in `OpenDRIVE`_ as "RoadSignal". +At the moment it can interpret traffic signs and road markings according to the German regulations, US regulations, and China regulations and traffic lights according the the `OpenDRIVE`_ appendix. +Traffic signs can contain optional supplementary traffic signs. Supplementary signs are dependent on a main traffic sign and contain additional information. + +For Germany the types are based on the StVO (see: https://www.bast.de/BASt_2017/DE/Verkehrstechnik/Fachthemen/v1-verkehrszeichen/vz-download.html). +The following traffic signs are supported for Germany: + +.. table:: + :class: tight-table + + ============================================= ============================================================================= ========= =========== ================================================================================= + TrafficSign Image StVo Type Subtype Value and Units + ============================================= ============================================================================= ========= =========== ================================================================================= + GiveWay .. figure:: ./images/DE/GiveWay_205.svg 205 + :width: 400 + Stop .. figure:: ./images/DE/Stop_206.svg 206 + :width: 400 + DoNotEnter .. figure:: ./images/DE/DoNotEnter_267.svg 267 + :width: 400 + EnvironmentalZoneBegin .. figure:: ./images/DE/EnvironmentalZoneBegin_270.1.svg 270.1 + :width: 400 + EnvironmentalZoneEnd .. figure:: ./images/DE/EnvironmentalZoneEnd_270.2.svg 270.2 + :width: 400 + MaximumSpeedLimit .. figure:: ./images/DE/MaximumSpeedLimit_274-5.svg 274 X The subtype "X" is used to define the speedlimit in km/h. + :width: 400 Afterwards the world converts it to m/s. + .. figure:: ./images/DE/MaximumSpeedLimit_274-130.svg + :width: 400 + SpeedLimitZoneBegin .. figure:: ./images/DE/SpeedLimitZoneBegin_274.1.svg 274.1 -/20 The subtype is used to define the speedlimit in km/h. + :width: 400 Afterwards the world converts it to m/s. + .. figure:: ./images/DE/SpeedLimitZoneBegin_274.1-20.svg No subtype = 30km/h, 20 = 20km/h + :width: 400 + SpeedLimitZoneEnd .. figure:: ./images/DE/SpeedLimitZoneEnd_274.2.svg 274.2 -/20 The subtype is used to define the speedlimit in km/h. + :width: 400 Afterwards the world converts it to m/s. + .. figure:: ./images/DE/SpeedLimitZoneEnd_274.2-20.svg No subtype = 30km/h, 20 = 20km/h + :width: 400 + MinimumSpeedLimit .. figure:: ./images/DE/MinimumSpeedLimit_275.svg 275 X The subtype is used to define the speedlimit in km/h. + :width: 400 Afterwards the world converts it to m/s. + OvertakingBanBegin .. figure:: ./images/DE/OvertakingBanBegin_276.svg 276 + :width: 400 + OvertakingBanTrucksBegin .. figure:: ./images/DE/OvertakingBanTrucksBegin_277.svg 277 + :width: 400 + EndOfMaximumSpeedLimit .. figure:: ./images/DE/EndOfMaximumSpeedLimit_278-5.svg 278 X The subtype "X" is used to define the speedlimit in km/h. + :width: 400 Afterwards the world converts it to m/s. + .. figure:: ./images/DE/EndOfMaximumSpeedLimit_278-130.svg + :width: 400 + EndOfMinimumSpeedLimit .. figure:: ./images/DE/EndOfMinimumSpeedLimit_279.svg 279 X The subtype "X" is used to define the speedlimit in km/h. + :width: 400 Afterwards the world converts it to m/s. + OvertakingBanEnd .. figure:: ./images/DE/OvertakingBanEnd_280.svg 280 + :width: 400 + OvertakingBanTrucksEnd .. figure:: ./images/DE/OvertakingBanTrucksEnd_281.svg 281 + :width: 400 + EndOffAllSpeedLimitsAndOvertakingRestrictions .. figure:: ./images/DE/EndOffAllSpeedLimitsAndOvertakingRestrictions_282.svg 282 + :width: 400 + RightOfWayNextIntersection .. figure:: ./images/DE/RightOfWayNextIntersection_301.svg 301 + :width: 400 + RightOfWayBegin .. figure:: ./images/DE/RightOfWayBegin_306.svg 306 + :width: 400 + RightOfWayEnd .. figure:: ./images/DE/RightOfWayEnd_307.svg 307 + :width: 400 + TownBegin .. figure:: ./images/DE/TownBegin_310.svg 310 This sign contains a text describing the name of the town + :width: 400 + TownEnd .. figure:: ./images/DE/TownEnd_311.svg 311 This sign contains a text describing the name of the town + :width: 400 + TrafficCalmedDistrictBegin .. figure:: ./images/DE/TrafficCalmedDistrictBegin_325.1.svg 325.1 + :width: 400 + TrafficCalmedDistrictEnd .. figure:: ./images/DE/TrafficCalmedDistrictEnd_325.2.svg 325.2 + :width: 400 + HighWayBegin .. figure:: ./images/DE/HighWayBegin_330.1.svg 330.1 + :width: 400 + HighWayEnd .. figure:: ./images/DE/HighWayEnd_330.2.svg 330.2 + :width: 400 + HighWayExit .. figure:: ./images/DE/HighWayExit_333.svg 333 + :width: 400 + AnnounceHighwayExit .. figure:: ./images/DE/AnnounceHighwayExit_448.svg 448 + :width: 400 + PreannounceHighwayExitDirections .. figure:: ./images/DE/AnnounceHighwayExit_449.svg 449 + :width: 400 + HighwayExitPole .. figure:: ./images/DE/HighwayExitPole_450-50.svg 450 50/51/52 The subtype describes the distance to the highway exit in m. + :width: 400 50 = 100m, 51 = 200m, 52 = 300m + .. figure:: ./images/DE/HighwayExitPole_450-51.svg + :width: 400 + .. figure:: ./images/DE/HighwayExitPole_450-52.svg + :width: 400 + AnnounceRightLaneEnd .. figure:: ./images/DE/AnnounceRightLaneEnd_531-10.svg 531 10/11/12/13 The subtype describes the number of continuing lanes after the right lane ends. + :width: 400 10 = 1 lane, 11 = 2 lanes, 12 = 3 lanes, 13 = 4 lanes + .. figure:: ./images/DE/AnnounceRightLaneEnd_531-11.svg + :width: 400 + .. figure:: ./images/DE/AnnounceRightLaneEnd_531-12.svg + :width: 400 + .. figure:: ./images/DE/AnnounceRightLaneEnd_531-13.svg + :width: 400 + AnnounceLeftLaneEnd .. figure:: ./images/DE/AnnounceLeftLaneEnd_531-20.svg 531 20/21/22/23 The subtype describes the number of continuing lanes after the left lane ends. + :width: 400 10 = 1 lane, 11 = 2 lanes, 12 = 3 lanes, 13 = 4 lanes + .. figure:: ./images/DE/AnnounceLeftLaneEnd_531-21.svg + :width: 400 + .. figure:: ./images/DE/AnnounceLeftLaneEnd_531-22.svg + :width: 400 + .. figure:: ./images/DE/AnnounceLeftLaneEnd_531-23.svg + :width: 400 + DistanceIndication .. figure:: ./images/DE/DistanceIndication_1004-30.svg 1004 30/31/32 For subtype 30 the value describes the distance in m. + :width: 400 For subtype 31 the value describes the distance in km. + .. figure:: ./images/DE/DistanceIndication_1004-31.svg Subtype 32 has a STOP in 100m. + :width: 400 + .. figure:: ./images/DE/DistanceIndication_1004-32.svg + :width: 400 + ============================================= ============================================================================= ========= =========== ================================================================================= + +The following road markings are supported for Germany: + +.. table:: + :class: tight-table + + ======================= ================================================== ========= ======= ================ + RoadMarking Image StVo Type Subtype Value and Units + ======================= ================================================== ========= ======= ================ + PedestrianCrossing .. figure:: ./images/DE/PedestrianCrossing_293.svg 293 + :width: 400 + Stop line .. figure:: ./images/DE/Stop_line_294.svg 294 + :width: 400 + ======================= ================================================== ========= ======= ================ + +The pedestrian crossing can also be defined in `OpenDRIVE`_ as object with type "crosswalk". + +For United States the types are based on the "Manual on Uniform Traffic Control Devices" (see: https://mutcd.fhwa.dot.gov/pdfs/2009r1r2/pdf_index.htm). +The following traffic signs are supported for United States: + +.. table:: + + ============================================= ======================================================== ========= ======================================================== + TrafficSign Image Type Value and Units + ============================================= ======================================================== ========= ======================================================== + HighWayExit .. figure:: ./images/US/HighWayExit_E5-1.svg E5-1 + :width: 400 + HighWayExit .. figure:: ./images/US/HighWayExit_E2-5.svg E2-5 + :width: 400 + AnnounceHighwayExit .. figure:: ./images/US/AnnounceHighwayExit_E1-2.svg E1-2 + :width: 400 + PreannounceHighwayExit .. figure:: ./images/US/PreannounceHighwayExit_E1-2a.svg E1-2a + :width: 400 + Stop .. figure:: ./images/US/Stop_R1-1.svg R1-1 + :width: 400 + GiveWay .. figure:: ./images/US/GiveWay_R1-2.svg R1-2 + :width: 400 + MaximumSpeedLimit .. figure:: ./images/US/MaximumSpeedLimit_R2-1.svg R2-1 as defined via the "value" and "unit" attributes + :width: 400 + DoNotPass (OvertakingBan) .. figure:: ./images/US/DoNotPass_R4-1.svg R4-1 + :width: 400 + DoNotEnter .. figure:: ./images/US/DoNotEnter_R5-1.svg R5-1 + :width: 400 + RightLaneEnd .. figure:: ./images/US/RightLaneEnd_W4-2R.svg W4-2R + :width: 400 + LeftLaneEnd .. figure:: ./images/US/LeftLaneEnd_W4-2L.svg W4-2L + :width: 400 + ============================================= ======================================================== ========= ======================================================== + +For China the types are based on the https://upload.wikimedia.org/wikipedia/commons/8/8c/China_GB_5768.2-2009.pdf. +The following traffic signs are supported for China: + +.. table:: + + ============================================= ======================================================= ============================= =========== ================================================================================ + TrafficSign Image Type Subtype Value and Units + ============================================= ======================================================= ============================= =========== ================================================================================ + AnnounceRightLaneEnd .. figure:: ./images/CN/EndofLaneRight-32a.svg EndofLane-32 a/b The subtype describes the number of continuing lanes after the right lane ends. + :width: 400 a = 2 lanes, b = 3 lanes + .. figure:: ./images/CN/EndofLaneRight-32b.svg + :width: 400 + AnnounceLeftLaneEnd .. figure:: ./images/CN/EndofLaneLeft-32c.svg EndofLane-32 c/d The subtype describes the number of continuing lanes after the left lane ends. + :width: 400 c = 2 lanes, d = 3 lanes + .. figure:: ./images/CN/EndofLaneLeft-32d.svg + :width: 400 + MaximumSpeedLimit .. figure:: ./images/CN/MaximumSpeedLimit-38.svg SpeedLimit-38 as defined via the "value" and "unit" attributes + :width: 400 + EndOfMaximumSpeedLimit .. figure:: ./images/CN/EndOfMaximumSpeedLimit-39.svg EndOfSpeedLimit-39 as defined via the "value" and "unit" attributes + :width: 400 + AnnounceHighwayExit (1km) .. figure:: ./images/CN/AnnouceHighwayExit1km-50b.svg AnnounceHighwayExit-50b + :width: 400 + AnnounceHighwayExit (500m) .. figure:: ./images/CN/AnnouceHighwayExit500m-50c.svg AnnounceHighwayExit-50c + :width: 400 + HighWayExit .. figure:: ./images/CN/HighwayExit-50d.svg HighwayExit-50d + :width: 400 + ============================================= ======================================================= ============================= =========== ================================================================================ + +The following traffic lights are supported: + +.. table:: + :class: tight-table + + ============================================= =============== ======= =============== + TrafficLight OpenDRIVE Type Subtype Value and Units + ============================================= =============== ======= =============== + Standard traffic light (red, yellow, green) 1.000.001 \- \- + Left arrows 1.000.011 10 \- + Right arrows 1.000.011 20 \- + Upwards arrows 1.000.011 30 \- + Left und upwards arrows 1.000.011 40 \- + Right und upwards arrows 1.000.011 50 \- + ============================================= =============== ======= =============== + +These traffic lights are controlled by `OpenSCENARIO`_. + +.. _world_lanemarkings: + +Lane Markings +------------- + +The world also supports lane markings (i.e. printed lines between two lanes) according to the `OpenDRIVE`_ standard. +The following attributes of the "roadMark" tag in the scenery file are stored in the world and can be retrieved by the GetLaneMarkings query: sOffset, type, weight, color. +The weight is converted into a width in meter: 0.15 for standard and 0.3 for bold. Lane markings are also converted to OSI LaneBoundaries. +For the OpenDRIVE type "solid solid", "solid broken", "broken solid", and "broken broken" two LaneBoundaries are created in OSI with a fixed lateral distance of 0.15m. + +.. _world_getobstruction: + +GetObstruction +-------------- + +The GetObstruction function calculates the lateral distance an agent must travel in order to align with either the left or right boundary of a target object occupying the same lane. + +The calculation adheres to the following process: + +#) Project the agent's MainLaneLocator along the lane to the nearest and furthest s-coordinate of the target object, capturing the projected points +#) Create a straight line from the two captured points +#) Calculate the Euclidean distance of each of the target object's corners to the created line +#) Return the left-most and right-most points with respect to the created line + +If the first step fails, because the ego lane does not extend to the object's position (i.e. it ends prematurely or the objects is outside the ego's route), then the result is invalid, which is indicated by a separate valid flag. + +.. figure:: ./images/GetObstruction.svg + + Example for the calculation of GetObstruction diff --git a/content/html/_sources/developer_information/10_ide_support.rst.txt b/content/html/_sources/developer_information/10_ide_support.rst.txt index 7ffb7cd8073dfad001ee81bd99c7305ba8e545bb..b484ea26b6debcc61a8168f48090977562b6e0d5 100644 --- a/content/html/_sources/developer_information/10_ide_support.rst.txt +++ b/content/html/_sources/developer_information/10_ide_support.rst.txt @@ -1,24 +1,24 @@ -.. - ******************************************************************************* - Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - - -.. _ide_support: - -IDE Support -=========== - -Development of |op| is often done in Visual Studio Code. This section provides guides to set up your build environment. - -.. toctree:: - :glob: - :maxdepth: 1 - - ide_support/* +.. + ******************************************************************************* + Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + + +.. _ide_support: + +IDE Support +=========== + +Development of |op| is often done in Visual Studio Code. This section provides guides to set up your build environment. + +.. toctree:: + :glob: + :maxdepth: 1 + + ide_support/* diff --git a/content/html/_sources/developer_information/20_documentation.rst.txt b/content/html/_sources/developer_information/20_documentation.rst.txt index 5586eb74ad8b534671357695fbd721201d8e182f..6de57126643c00e1f2e64f0810c8e601337b0a99 100644 --- a/content/html/_sources/developer_information/20_documentation.rst.txt +++ b/content/html/_sources/developer_information/20_documentation.rst.txt @@ -1,115 +1,115 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - 2023 Mercedes-Benz Tech Innovation GmbH - 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _documentation: - -Documentation Concept -===================== - -|Op_oss| is developed under the Eclipse Public License and as such private and commercial use is allowed under certain rules (see `EPL 2.0 <https://www.eclipse.org/legal/epl-2.0/>`_). -The basic documentation concept facilitates this by providing a way to include custom content which is not necessarily part of the |op_oss| distribution. -This results in certain restrictions on how documentation is to be written. -The following sections describe this restrictions and the process of integrating proprietary documentation into the |op_oss| documentation build. - -Basic Build Mechanics ---------------------- - -The required steps to build the documentation are described in :ref:`download_and_install_openpass`. -Before building, a temporary copy of the original documentation is made. -This temporary copy acts as *seam* for custom extension, as proprietary content is simply copied into the temporary folder (see below). -This mechanism keeps contents clearly separated during development and allows easy transition from closed to open source if desired. - -References to files located outside of the documentation root is used at various places, as this allows to keep documentation as close to the source as possible. -These references normally would become invalid when the documentation source is copied or moved to another location. -Thus, placeholders are used to have a fixed reference to the |op_oss| tree: - - - *@*\ *OP_REL_ROOT*\ *@* - Root of repository (``.``) - - *@*\ *OP_REL_SIM*\ *@* - Folder ``./sim`` - -These placeholders must be used when files outside of the documentation root shall be referenced. -Note that this also makes sources more readable. - -**Example** - -.. literalinclude:: /../../../repo/doc/source/user_guide/configs/scenery.rst - :start-at: OP_REL_SIM - :lines: 1 - -.. warning:: - - Generally, when moving or deleting files, make sure to run ``make clean`` prior to ``make doc`` to remove any outdated files from the build directory. - -openPASS as Submodule ---------------------- - -#. **Write the documentation** - - As custom documentation simply integrates into the |op_oss| documentation, it is also written in the *reStructuredText* file format. - Thereby files have to reside in a directory structure that is a clone of the open source documentation directory structure (starting from ``doc/source``). - During the build your documentation and the open source documentation will both be copied to a temporary directory. - - .. note:: Files existing in both source directories will be overwritten at the destination, with the custom files having higher precedence. - - On the TOC tree level, the **seam** to custom files is made through *globbing* using wildcards, such as ``folder/*.rst``. - Ordering of the files (and to avoid file name collisions) is established through a two digit number prefix and an underscore, e.g. ``10_quickstart.rst``. - This allows injection of proprietary documentation at any position in the TOC tree, as the order of headings is determined by the (ASCII) sorting of the filenames. - -#. **Referencing files** - - Sphinx uses some special path format when referencing files from documentation. - All paths are relative to a single documentation root directory, but are specified like absolute paths (i.e. with a leading slash). - Due to the documentation source files being copied to a temporary directory during build, all file references have to be prefixed with a path constant: - - - When specifying a file reference relative to the |op_oss| repository, the file path has to be prefixed with custom placeholders, such as *@*\ *OP_REL_ROOT*\ *@* (see above). - - When referencing files relative to a custom root, additional placeholders can be introduced in a custom ``PrepareDocCustom.cmake`` (see next steps). - - These placeholders will then coexist and will be replaced with the corresponding paths during build. - -#. **Add a cmake file for documentation preparation** - - The file :download:`PrepareDocCustom.cmake<_static/custom_doc/PrepareDocCustom.cmake>` can be used as a template. - Just add the placeholders used in your proprietary documentation. - - This diff highlights the important parts in comparison to the original ``PrepareDoc.cmake``, used in the open source documentation build: - - .. literalinclude:: _static/custom_doc/PrepareDocCustom.cmake - :diff: /../../../repo/doc/PrepareDoc.cmake - -#. **Add a ``doc`` CMake target to your custom build** - - To add your custom build target, the following ``CMakeLists.txt`` snippet can be used as template. - Note the usage of the ``PrepareDocCustom.cmake``. - - .. literalinclude:: _static/custom_doc/CMakeLists_doc.cmake - :emphasize-lines: 23 - -#. **Provide a config file for Sphinx** - - Sphinx allows to specify a configuration residing in ``conf.py`` in the documentation source directory. - Customization is done by providing a customized file here, with the open source version as template (:download:`/../../../repo/doc/source/conf.py`). - -Docker Image ------------- - -This documentation provides an overview of the Dockerfile used to build an image containing all the necessary packages required for building |Op_oss|. The resulting image can be used as a development environment. - -**Usage** - -#. Clone the |Op_oss| project - -#. At the root level (the folder containing the repo), execute the following command - - .. code-block:: - - docker build -f ./repo/utils/Dockerfile -t <DockerImageName> . - - .. note:: The Dockerfile assumes the name of the repository as "repo". The command and the Dockerfile should be modified accordingly, if different name is used +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2023 Mercedes-Benz Tech Innovation GmbH + 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _documentation: + +Documentation Concept +===================== + +|Op_oss| is developed under the Eclipse Public License and as such private and commercial use is allowed under certain rules (see `EPL 2.0 <https://www.eclipse.org/legal/epl-2.0/>`_). +The basic documentation concept facilitates this by providing a way to include custom content which is not necessarily part of the |op_oss| distribution. +This results in certain restrictions on how documentation is to be written. +The following sections describe this restrictions and the process of integrating proprietary documentation into the |op_oss| documentation build. + +Basic Build Mechanics +--------------------- + +The required steps to build the documentation are described in :ref:`download_and_install_openpass`. +Before building, a temporary copy of the original documentation is made. +This temporary copy acts as *seam* for custom extension, as proprietary content is simply copied into the temporary folder (see below). +This mechanism keeps contents clearly separated during development and allows easy transition from closed to open source if desired. + +References to files located outside of the documentation root is used at various places, as this allows to keep documentation as close to the source as possible. +These references normally would become invalid when the documentation source is copied or moved to another location. +Thus, placeholders are used to have a fixed reference to the |op_oss| tree: + + - *@*\ *OP_REL_ROOT*\ *@* - Root of repository (``.``) + - *@*\ *OP_REL_SIM*\ *@* - Folder ``./sim`` + +These placeholders must be used when files outside of the documentation root shall be referenced. +Note that this also makes sources more readable. + +**Example** + +.. literalinclude:: /../../../repo/doc/source/user_guide/configs/scenery.rst + :start-at: OP_REL_SIM + :lines: 1 + +.. warning:: + + Generally, when moving or deleting files, make sure to run ``make clean`` prior to ``make doc`` to remove any outdated files from the build directory. + +openPASS as Submodule +--------------------- + +#. **Write the documentation** + + As custom documentation simply integrates into the |op_oss| documentation, it is also written in the *reStructuredText* file format. + Thereby files have to reside in a directory structure that is a clone of the open source documentation directory structure (starting from ``doc/source``). + During the build your documentation and the open source documentation will both be copied to a temporary directory. + + .. note:: Files existing in both source directories will be overwritten at the destination, with the custom files having higher precedence. + + On the TOC tree level, the **seam** to custom files is made through *globbing* using wildcards, such as ``folder/*.rst``. + Ordering of the files (and to avoid file name collisions) is established through a two digit number prefix and an underscore, e.g. ``10_quickstart.rst``. + This allows injection of proprietary documentation at any position in the TOC tree, as the order of headings is determined by the (ASCII) sorting of the filenames. + +#. **Referencing files** + + Sphinx uses some special path format when referencing files from documentation. + All paths are relative to a single documentation root directory, but are specified like absolute paths (i.e. with a leading slash). + Due to the documentation source files being copied to a temporary directory during build, all file references have to be prefixed with a path constant: + + - When specifying a file reference relative to the |op_oss| repository, the file path has to be prefixed with custom placeholders, such as *@*\ *OP_REL_ROOT*\ *@* (see above). + - When referencing files relative to a custom root, additional placeholders can be introduced in a custom ``PrepareDocCustom.cmake`` (see next steps). + - These placeholders will then coexist and will be replaced with the corresponding paths during build. + +#. **Add a cmake file for documentation preparation** + + The file :download:`PrepareDocCustom.cmake<_static/custom_doc/PrepareDocCustom.cmake>` can be used as a template. + Just add the placeholders used in your proprietary documentation. + + This diff highlights the important parts in comparison to the original ``PrepareDoc.cmake``, used in the open source documentation build: + + .. literalinclude:: _static/custom_doc/PrepareDocCustom.cmake + :diff: /../../../repo/doc/PrepareDoc.cmake + +#. **Add a ``doc`` CMake target to your custom build** + + To add your custom build target, the following ``CMakeLists.txt`` snippet can be used as template. + Note the usage of the ``PrepareDocCustom.cmake``. + + .. literalinclude:: _static/custom_doc/CMakeLists_doc.cmake + :emphasize-lines: 23 + +#. **Provide a config file for Sphinx** + + Sphinx allows to specify a configuration residing in ``conf.py`` in the documentation source directory. + Customization is done by providing a customized file here, with the open source version as template (:download:`/../../../repo/doc/source/conf.py`). + +Docker Image +------------ + +This documentation provides an overview of the Dockerfile used to build an image containing all the necessary packages required for building |Op_oss|. The resulting image can be used as a development environment. + +**Usage** + +#. Clone the |Op_oss| project + +#. At the root level (the folder containing the repo), execute the following command + + .. code-block:: + + docker build -f ./repo/utils/Dockerfile -t <DockerImageName> . + + .. note:: The Dockerfile assumes the name of the repository as "repo". The command and the Dockerfile should be modified accordingly, if different name is used diff --git a/content/html/_sources/developer_information/30_coding_conventions.rst.txt b/content/html/_sources/developer_information/30_coding_conventions.rst.txt index 507927ffd016618414d08ac6d206c6f0a4e5cde8..9068e21cc092105bf421ffb4b1b6cf436a787113 100644 --- a/content/html/_sources/developer_information/30_coding_conventions.rst.txt +++ b/content/html/_sources/developer_information/30_coding_conventions.rst.txt @@ -1,339 +1,339 @@ -.. - ******************************************************************************* - Copyright (c) 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _coding_conventions: - -Coding Guidelines -================= - -General -------- - -|Op_oss| is based on modern C++ (currently C++17). For coding guidelines, please refer to `ISO C++ Core Guidelines <https://github.com/isocpp/CppCoreGuidelines>`_. - -**Headers/Sources** - - - Use ``*.h`` as file extension for header files - - Use ``*.cpp`` as file extension for source files - -Naming Conventions ------------------- -Concise summarized Naming Conventions - -.. literalinclude:: _static/custom_doc/NamingConventions.txt - -**Namespaces** - - #. Use lowercase for namespaces - #. Use singular form for namespaces where appropriate - #. Use base namespace ``openpass`` - #. Core uses ``openpass::core::*`` - #. Components use ``openpass::component::*`` - #. Use the appropriate namespace for the type your component - * ``openpass::component::algorithm`` - * ``openpass::component::sensor`` - * ``openpass::component::dynamics`` - * ``openpass::component::driver`` - * ... - #. Code with shared scope (e.g. ``common``) namespaces are separated in - - * For everyone ``openpass::common`` e.g. ``openpass::common::XmlParser`` - * Common for components ``openpass::component::common`` e.g. ``openpass::components::Ports`` - * For the core only ``openpass::core::common`` e.g. ``openpass::core::common::Parameters`` - - #. Discussion: ``openpass::type::*`` - - Example: ``openpass::type::Vector2D, openpass::type::OpenDriveId`` - -**Interfaces** - - #. Interfaces should be named descriptively according to the functionality they outline with an ``UpperCamelCase`` name - - Example: Interface for the **world** = ``class WorldInterface`` - #. Interfaces are abstract classes, and as such provide pure virtual functions only, withtout any default implementation. For example: - - ``virtual double GetDistance() const = 0;`` - - #. Interface methods **do not** exibit default parameters. - #. We excessively use **gmock**, so for every interface a fake interface should be provided - - Example: ``class FakeWorld : public WorldInterface {...};`` - - Note: Following ***Roy Osherove***, we use Fake instead of Mock, whick allows to distinguish Mocks and - Stubs more easily in the code - -**Classes** - - #. Classes should be named descriptively according to the functionality they implement with an ``UpperCamelCase`` name - #. A Class implementing an Interface should have the Interfaces name (see below), with the Interface portion removed. For example: - .. code-block:: - - class AgentBlueprint : public AgentBlueprintInterface {...}; - -**Methods** - - #. Methods should be descriptively named in ``UpperCamelCase`` - - Example: Method for retrieving the time of day should be named ``GetTimeOfDay()`` - -**Member Variables** - - #. Member variables should be descriptively named in ``lowerCamelCase`` - #. Normally, it is sufficient to use the classes name directly. - - Example: The member variable containing the AgentNetwork should be named ``agentNetwork`` - -**Input / Output Signal Naming** - - #. Components use a special form of signal transmission. For easier use, the following abstraction is recommended: - .. code-block:: - - std::map<int, ComponentPort *> outputPorts; - bool success = outputPorts.at(localLinkId)->SetSignalValue(data); - - .. code-block:: - - std::map<int, ComponentPort *> inputPorts; - bool success = inputPorts.at(localLinkId)->GetSignalValue(data); - #. Discussion: Wrap in ``openpass::components::common::Port`` and further - ``openpass::components::common::Ports`` - -**Additional Information** - - #. Use ``UpperCamelCase`` for abbreviations used in files, classes, methods, or variables - #. This does not apply if the abbreviation is the entire name or the beginning of the name - in such a case the name is written with the rules for the appropriate type - - * int ID→int id - * class AgentID→ class AgentId - * ADASDriver.cpp→adasDriver.cpp - #. Avoid public class data members. If unavoidable, use ``lowerCamelCase`` - #. Enums should be preferably defined as enum class; as such, enum names should be in ``UpperCamelCase`` - #. Decorate container by type aliases and use UpperCamelCase. For example: - - .. code-block:: - - using FooParts = std::vector<FooPart>; - -**Avoid** - - #. Do **not** use Hungarian notation for variables names (iCounter → counter) - #. Do **not** specify the type of the underlying implementation (partMap→ parts) - #. Do **not** use magic numbers in the code; explicitly define constants instead - #. Do **not** use global variables - -**Exceptions** - - #. Autogenerated code does not need to follow the coding conventions - - Example:: Signals/Slots (QT): ``void on_button_clicked();`` - -**Documentation** - - #. The following should be documented - * Public functions and class methods - * Classes - * File headers - * Constants - * Private functions or methods with more than 3 arguments and/or complex functionality?? - - #. Language - - * Document "what" it does rather than describing "why" - * Third-person singular verbs should be used to describe what it does - - #. Use the below methods to comment in source code. The below 2 syntaxes must be placed just above an entity. - - Multi line comments - - .. code-block:: - - //! … comments… - //! … comments… - //! … comments… - - Single line comments - - .. code-block:: - - /// Comments. - - #. Use the following structural commands - - .. list-table:: - :widths: 25 50 - :header-rows: 1 - - * - Syntax - - Definition - * - @file - - The file name must be present in the file header - * - @param[in/out] - - Parameter documentation for functions - * - @page - - Markdown page name - - #. Use the following syntax for parameter description - - .. code-block:: - - @param[in/out] <variable name> <variable description> - #. All parameters description should be aligned as shown below to make them more readable. - - .. code-block:: - - @param[in] shortName Description. - @param[in] longerName Description. - @param[out] veryLongName Description. - #. Example - - .. literalinclude:: _static/custom_doc/InlineDocumentation.txt - - #. Do not comment on polymorph methods (virtual base → override), unless there is a severe change - -**End Of Line** - - #. Native end of line (EOL) should be used in the working directory - #. The ``.gitattributes`` configuration file provides correct EOL handling for ``git`` related commands and actions - #. When editing files - - * Trim trailing whitespaces - * Single EOL at end of files - * Use spaces for tabs (use tab size according to coding guidelines or existing file contents) - -See :ref:`Example VSCode user settings <vscode_user_settings>`. - -ClangFormat ------------ - -To ensure consistent and readable code across the project, **ClangFormat** is recommended. - -.. note:: - - The following guidelines are based on ClangFormat version 15.0.7 - -**Installing ClangFormat** - -To install **ClangFormat 15.0.7**, execute the following command depending on the operating system. - -.. tabs:: - - .. tab:: Windows - - .. code-block:: - - pacman -S mingw-w64-x86_64-clang - - .. tab:: Linux (Debian Bookworm or Ubuntu 22.04) - - .. code-block:: - - apt -y install clang-format - -**Configuring ClangFormat** - -To configure ClangFormat, create a `.clang-format` file in the root directory of your project. Below is the configuration used in |op_oss|: - - .. literalinclude:: /../../../repo/.clang-format - -**Running ClangFormat** - -To format the code using ClangFormat, run the following command in the terminal: - -.. code-block:: bash - - clang-format -i [source_file(s)] - -Replace `[source_file(s)]` with the path(s) to the file(s) to format. The `-i` option tells ClangFormat to modify the files in-place. - -ClangTidy ------------ - -Supported Version: 14.0.6 - -To ensure code quality and adherence to coding standards, ClangTidy is recommended. - -The used checks are located in the :download:`.clang-tidy </../../../repo/.clang-tidy>` file, where lines starting with ``-`` are checks that have been deactivated. -For more details, visit the `ClangTidy official page <https://clang.llvm.org/extra/clang-tidy/#using-clang-tidy>`_. - -Commit Message Guidelines -------------------------- - -**Overview** - -This section outlines the guidelines for writing commit messages in openPASS repository. Following these guidelines ensures that commit messages are clear, descriptive, and help facilitate collaboration among team members. -This section uses excerpts from `Conventional Commits <https://www.conventionalcommits.org/en/v1.0.0/>`_ licensed under `CC BY 3.0 <https://creativecommons.org/licenses/by/3.0/>`_ by it's authors. - -**Commit Message Format** - -Each commit message should consist of a single short summary line (recommended, up to 50 characters) followed by a more detailed description (if necessary). -The message should adhere to the following format: - - .. code-block:: - - <type>[optional scope]: <description> - - [optional body] - - [optional footer(s)] - - #. The ``<type>`` part represents the type of the commit, which helps in categorizing the nature of the changes. The following types are allowed: - - * ``feat``: A new feature or enhancement. - * ``fix``: A bug fix. - * ``docs``: Documentation-related changes. - * ``style``: Code style changes (e.g., formatting, spacing). - * ``refactor``: Code refactoring without adding new features or fixing bugs. - * ``test``: Adding or improving tests. - * ``chore``: Maintenance tasks, build changes, or other non-functional modifications. - * ``ci``: Changes related to CI. - * ``build``: Modifications related to build step. - * ``perf``: Modifications related to performance improvements. - * ``revert``: Revert any code changes. - - #. The ``<optional scope>`` section is optional but is used to provide additional contextual information and is contained within parenthesis. - - #. The ``<description>`` is a brief description of the changes made in the commit. It should be concise yet informative and is recommended to not exceed 50 characters. - - #. The ``<optional body>`` section is optional but recommended, especially for complex changes or when further explanation is needed. This section should provide additional context, justification, and details about the changes made. Use bullet points for better readability when necessary. - - #. The ``<optional footer>`` section is also optional but can be used to provide supplementary information related to the commit. - -Header File Inclusion ---------------------- - -**Overview** - -When working on a C/C++ project, it's essential to include header files correctly. This documentation explains the various ways to include header files, depending on their source. - -**System Libraries** - -Header files from system libraries should be enclosed in angular brackets (`< >`). This syntax informs the compiler to search for the headers in the system's standard include directories. - - .. code-block:: - - #include <stdio.h> - #include <stdlib.h> - -**Dependencies in CMAKE_PREFIX_PATH** - -If the header files are from dependencies that are part of the `CMAKE_PREFIX_PATH`, use angular brackets (`< >`) as well. This indicates to the compiler that the headers are part of external dependencies. - - .. code-block:: - - #include <dependency/header.h> - -**Repository Header Files** - -If the header files are from project's repository then, use double quotes (`" ""`). - - .. code-block:: - - #include "my_component/header.h" +.. + ******************************************************************************* + Copyright (c) 2023-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _coding_conventions: + +Coding Guidelines +================= + +General +------- + +|Op_oss| is based on modern C++ (currently C++17). For coding guidelines, please refer to `ISO C++ Core Guidelines <https://github.com/isocpp/CppCoreGuidelines>`_. + +**Headers/Sources** + + - Use ``*.h`` as file extension for header files + - Use ``*.cpp`` as file extension for source files + +Naming Conventions +------------------ +Concise summarized Naming Conventions + +.. literalinclude:: _static/custom_doc/NamingConventions.txt + +**Namespaces** + + #. Use lowercase for namespaces + #. Use singular form for namespaces where appropriate + #. Use base namespace ``openpass`` + #. Core uses ``openpass::core::*`` + #. Components use ``openpass::component::*`` + #. Use the appropriate namespace for the type your component + * ``openpass::component::algorithm`` + * ``openpass::component::sensor`` + * ``openpass::component::dynamics`` + * ``openpass::component::driver`` + * ... + #. Code with shared scope (e.g. ``common``) namespaces are separated in + + * For everyone ``openpass::common`` e.g. ``openpass::common::XmlParser`` + * Common for components ``openpass::component::common`` e.g. ``openpass::components::Ports`` + * For the core only ``openpass::core::common`` e.g. ``openpass::core::common::Parameters`` + + #. Discussion: ``openpass::type::*`` + + Example: ``openpass::type::Vector2D, openpass::type::OpenDriveId`` + +**Interfaces** + + #. Interfaces should be named descriptively according to the functionality they outline with an ``UpperCamelCase`` name + + Example: Interface for the **world** = ``class WorldInterface`` + #. Interfaces are abstract classes, and as such provide pure virtual functions only, withtout any default implementation. For example: + + ``virtual double GetDistance() const = 0;`` + + #. Interface methods **do not** exibit default parameters. + #. We excessively use **gmock**, so for every interface a fake interface should be provided + + Example: ``class FakeWorld : public WorldInterface {...};`` + + Note: Following ***Roy Osherove***, we use Fake instead of Mock, whick allows to distinguish Mocks and + Stubs more easily in the code + +**Classes** + + #. Classes should be named descriptively according to the functionality they implement with an ``UpperCamelCase`` name + #. A Class implementing an Interface should have the Interfaces name (see below), with the Interface portion removed. For example: + .. code-block:: + + class AgentBlueprint : public AgentBlueprintInterface {...}; + +**Methods** + + #. Methods should be descriptively named in ``UpperCamelCase`` + + Example: Method for retrieving the time of day should be named ``GetTimeOfDay()`` + +**Member Variables** + + #. Member variables should be descriptively named in ``lowerCamelCase`` + #. Normally, it is sufficient to use the classes name directly. + + Example: The member variable containing the AgentNetwork should be named ``agentNetwork`` + +**Input / Output Signal Naming** + + #. Components use a special form of signal transmission. For easier use, the following abstraction is recommended: + .. code-block:: + + std::map<int, ComponentPort *> outputPorts; + bool success = outputPorts.at(localLinkId)->SetSignalValue(data); + + .. code-block:: + + std::map<int, ComponentPort *> inputPorts; + bool success = inputPorts.at(localLinkId)->GetSignalValue(data); + #. Discussion: Wrap in ``openpass::components::common::Port`` and further + ``openpass::components::common::Ports`` + +**Additional Information** + + #. Use ``UpperCamelCase`` for abbreviations used in files, classes, methods, or variables + #. This does not apply if the abbreviation is the entire name or the beginning of the name - in such a case the name is written with the rules for the appropriate type + + * int ID→int id + * class AgentID→ class AgentId + * ADASDriver.cpp→adasDriver.cpp + #. Avoid public class data members. If unavoidable, use ``lowerCamelCase`` + #. Enums should be preferably defined as enum class; as such, enum names should be in ``UpperCamelCase`` + #. Decorate container by type aliases and use UpperCamelCase. For example: + + .. code-block:: + + using FooParts = std::vector<FooPart>; + +**Avoid** + + #. Do **not** use Hungarian notation for variables names (iCounter → counter) + #. Do **not** specify the type of the underlying implementation (partMap→ parts) + #. Do **not** use magic numbers in the code; explicitly define constants instead + #. Do **not** use global variables + +**Exceptions** + + #. Autogenerated code does not need to follow the coding conventions + + Example:: osi3: ``::osi3::DetectedEntityHeader* mutable_moving_object_header()`` + +**Documentation** + + #. The following should be documented + * Public functions and class methods + * Classes + * File headers + * Constants + * Private functions or methods with more than 3 arguments and/or complex functionality?? + + #. Language + + * Document "what" it does rather than describing "why" + * Third-person singular verbs should be used to describe what it does + + #. Use the below methods to comment in source code. The below 2 syntaxes must be placed just above an entity. + + Multi line comments + + .. code-block:: + + //! … comments… + //! … comments… + //! … comments… + + Single line comments + + .. code-block:: + + /// Comments. + + #. Use the following structural commands + + .. list-table:: + :widths: 25 50 + :header-rows: 1 + + * - Syntax + - Definition + * - @file + - The file name must be present in the file header + * - @param[in/out] + - Parameter documentation for functions + * - @page + - Markdown page name + + #. Use the following syntax for parameter description + + .. code-block:: + + @param[in/out] <variable name> <variable description> + #. All parameters description should be aligned as shown below to make them more readable. + + .. code-block:: + + @param[in] shortName Description. + @param[in] longerName Description. + @param[out] veryLongName Description. + #. Example + + .. literalinclude:: _static/custom_doc/InlineDocumentation.txt + + #. Do not comment on polymorph methods (virtual base → override), unless there is a severe change + +**End Of Line** + + #. Native end of line (EOL) should be used in the working directory + #. The ``.gitattributes`` configuration file provides correct EOL handling for ``git`` related commands and actions + #. When editing files + + * Trim trailing whitespaces + * Single EOL at end of files + * Use spaces for tabs (use tab size according to coding guidelines or existing file contents) + +See :ref:`Example VSCode user settings <vscode_user_settings>`. + +ClangFormat +----------- + +To ensure consistent and readable code across the project, **ClangFormat** is recommended. + +.. note:: + + The following guidelines are based on ClangFormat version 15.0.7 + +**Installing ClangFormat** + +To install **ClangFormat 15.0.7**, execute the following command depending on the operating system. + +.. tabs:: + + .. tab:: Windows + + .. code-block:: + + pacman -S mingw-w64-x86_64-clang + + .. tab:: Linux (Debian Bookworm or Ubuntu 22.04) + + .. code-block:: + + apt -y install clang-format + +**Configuring ClangFormat** + +To configure ClangFormat, create a `.clang-format` file in the root directory of your project. Below is the configuration used in |op_oss|: + + .. literalinclude:: /../../../repo/.clang-format + +**Running ClangFormat** + +To format the code using ClangFormat, run the following command in the terminal: + +.. code-block:: bash + + clang-format -i [source_file(s)] + +Replace `[source_file(s)]` with the path(s) to the file(s) to format. The `-i` option tells ClangFormat to modify the files in-place. + +ClangTidy +----------- + +Supported Version: 14.0.6 + +To ensure code quality and adherence to coding standards, ClangTidy is recommended. + +The used checks are located in the :download:`.clang-tidy </../../../repo/.clang-tidy>` file, where lines starting with ``-`` are checks that have been deactivated. +For more details, visit the `ClangTidy official page <https://clang.llvm.org/extra/clang-tidy/#using-clang-tidy>`_. + +Commit Message Guidelines +------------------------- + +**Overview** + +This section outlines the guidelines for writing commit messages in openPASS repository. Following these guidelines ensures that commit messages are clear, descriptive, and help facilitate collaboration among team members. +This section uses excerpts from `Conventional Commits <https://www.conventionalcommits.org/en/v1.0.0/>`_ licensed under `CC BY 3.0 <https://creativecommons.org/licenses/by/3.0/>`_ by it's authors. + +**Commit Message Format** + +Each commit message should consist of a single short summary line (recommended, up to 50 characters) followed by a more detailed description (if necessary). +The message should adhere to the following format: + + .. code-block:: + + <type>[optional scope]: <description> + + [optional body] + + [optional footer(s)] + + #. The ``<type>`` part represents the type of the commit, which helps in categorizing the nature of the changes. The following types are allowed: + + * ``feat``: A new feature or enhancement. + * ``fix``: A bug fix. + * ``docs``: Documentation-related changes. + * ``style``: Code style changes (e.g., formatting, spacing). + * ``refactor``: Code refactoring without adding new features or fixing bugs. + * ``test``: Adding or improving tests. + * ``chore``: Maintenance tasks, build changes, or other non-functional modifications. + * ``ci``: Changes related to CI. + * ``build``: Modifications related to build step. + * ``perf``: Modifications related to performance improvements. + * ``revert``: Revert any code changes. + + #. The ``<optional scope>`` section is optional but is used to provide additional contextual information and is contained within parenthesis. + + #. The ``<description>`` is a brief description of the changes made in the commit. It should be concise yet informative and is recommended to not exceed 50 characters. + + #. The ``<optional body>`` section is optional but recommended, especially for complex changes or when further explanation is needed. This section should provide additional context, justification, and details about the changes made. Use bullet points for better readability when necessary. + + #. The ``<optional footer>`` section is also optional but can be used to provide supplementary information related to the commit. + +Header File Inclusion +--------------------- + +**Overview** + +When working on a C/C++ project, it's essential to include header files correctly. This documentation explains the various ways to include header files, depending on their source. + +**System Libraries** + +Header files from system libraries should be enclosed in angular brackets (`< >`). This syntax informs the compiler to search for the headers in the system's standard include directories. + + .. code-block:: + + #include <stdio.h> + #include <stdlib.h> + +**Dependencies in CMAKE_PREFIX_PATH** + +If the header files are from dependencies that are part of the `CMAKE_PREFIX_PATH`, use angular brackets (`< >`) as well. This indicates to the compiler that the headers are part of external dependencies. + + .. code-block:: + + #include <dependency/header.h> + +**Repository Header Files** + +If the header files are from project's repository then, use double quotes (`" ""`). + + .. code-block:: + + #include "my_component/header.h" diff --git a/content/html/_sources/developer_information/ide_support/30_vscode.rst.txt b/content/html/_sources/developer_information/ide_support/30_vscode.rst.txt index ec6839abdae7ba9db14ede8270113cb2e053256a..c09072ba18d4d7e21d8d0772b6ce61d0e5367a31 100644 --- a/content/html/_sources/developer_information/ide_support/30_vscode.rst.txt +++ b/content/html/_sources/developer_information/ide_support/30_vscode.rst.txt @@ -1,445 +1,445 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - 2023-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. |win_only| image:: /_static/win_only.png - -.. _vscode: - -Working with Visual Studio Code -=============================== - -This section describes the basic setup for Visual Studio Code. - -.. figure:: _static/images/vscode_quick_intro.png - :align: center - - Correctly configured Visual Studio Code showing -- among other things -- **left**, debugging, testmate, and cmake pane selectors, and at the **bottom**, build type, kit, current target, and CTest runner. - -Assumptions ------------ - -- For brevity, non-standard libraries are expected to be in the folder ``./deps/thirdParty``. -- |win_only| **MSYS2/MinGW 64 Bit** is used. - -Installation ------------- - -1. Install Visual Studio Code (https://code.visualstudio.com) - -2. Install Extensions - -.. table:: - - ======================================================================================================== ======================================================= - Name Purpose - ======================================================================================================== ======================================================= - `C/C++ <https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools>`_ Support for C/C++, including IntelliSense and debugging - `CMake Tools <https://vector-of-bool.github.io/docs/vscode-cmake-tools>`_ Extended CMake support - `C++ Testmate <https://marketplace.visualstudio.com/items?itemName=matepek.vscode-catch2-test-adapter>`_ Run and debug GoogleTest - `MSYS2/Cygwin/MinGW/Clang support <https://marketplace.visualstudio.com/items?itemName=fougas.msys2>`_ |win_only| MSYS2/MinGW configuration adapter - `Remote Development <https://code.visualstudio.com/docs/devcontainers/containers>`_ Development using DevContainers - `Docker <https://code.visualstudio.com/docs/containers/overview>`_ Additional information for DevContainer prerequisites - ======================================================================================================== ======================================================= - -Set Up Development Containers in Visual Studio Code ---------------------------------------------------- - -Introduction -++++++++++++ - -This section provides step-by-step instructions on setting up development containers in Visual Studio Code (VSCode). Development containers allow you to define and manage your development environment using Docker containers, ensuring consistent and reproducible setups across different machines. - -Prerequisites -+++++++++++++ - -Before you begin, make sure ``docker`` is installed in your system. If ``docker`` is not installed, follow the below steps. - -.. tabs:: - - .. tab:: Windows - - 1. Open PowerShell in Administrator Mode by right-clicking and selecting "Run as administrator.". - - 2. To install wsl, run the following command and then restart the machine: - - .. code-block:: powershell - - wsl --install - - The above command only works if WSL is not installed at all. - If you run ``wsl --install`` and see the WSL help text, try running ``wsl --list --online`` to see a list of available distros and run ``wsl --install -d <Linux DistroName>`` to install a distro. The recommended distro is ``Ubuntu`` and the following steps assumes the distro as ``Ubuntu`` - - 3. Once the distro is installed, check the version of the installed distro - - .. code-block:: powershell - - wsl -l -v - - If the version is 1, then change it to 2 using the command ``wsl --set-version <distro> 2`` - - 4. After successful installation, open Ubuntu by searching ``Ubuntu`` in windows search bar - - 5. Install the dependencies to run docker on the distro using the following command - - .. code-block:: bash - - sudo apt install --no-install-recommends apt-transport-https ca-certificates curl - - 6. On Debian or Ubuntu, first temporarily set some OS-specific variables: - - .. code-block:: bash - - . /etc/os-release - - Then, make sure ``apt`` trust the docker repo - - .. code-block:: bash - - curl -fsSL https://download.docker.com/linux/${ID}/gpg | sudo tee /etc/apt/trusted.gpg.d/docker.asc - - ID will be either ``ubuntu`` or ``debian``, as appropriate, depending on what is in ``/etc/os-release``. - - 7. Add docker repo information to the ``apt`` to install docker. - - .. code-block:: bash - - echo "deb [arch=amd64] https://download.docker.com/linux/${ID} ${VERSION_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list - sudo apt update - - 8. Install Docker and add user to the ``docker`` group - - .. code-block:: bash - - sudo apt install docker-ce docker-ce-cli containerd.io - sudo usermod -aG docker $USER - - Replace ``$USER`` with your user name on distro. Then close the WSL window, and launch WSL again. You should see ``docker`` when you run the command ``groups`` on command prompt to list group memberships. - - 9. Launch ``dockerd`` using the following command - - .. code-block:: bash - - sudo dockerd - - There should be several lines of info, warnings related to cgroup blkio, and the like, with something like API listen on /var/run/docker.sock at the end. If so, you have success. - If there is any network controller issue, execute the following compile_commands - - .. code-block:: bash - - echo -e "[network]\ngenerateResolvConf = false" | sudo tee -a /etc/wsl.conf - sudo unlink /etc/resolv.conf - echo nameserver 1.1.1.1 | sudo tee /etc/resolv.conf - - Also switch to legacy iptables using the following command - - .. code-block:: bash - - update-alternatives --config iptables - - And select iptables-legacy - Rerun the command ``sudo dockerd`` and check if it is succeeded. - - 10. To check if ``docker`` is running from Windows, in PowerShell execute the following command. - - .. code-block:: powershell - - wsl -d Ubuntu docker -H unix:///var/run/docker.sock --version - - .. tab:: Linux - - 1. Open a terminal window. - - 2. Execute the following command - - .. code-block:: bash - - docker --version - - If Docker is installed, you will see the version information displayed in the terminal. - - 3. If Docker is not installed, you can install it using the following steps: - - 1. Update your package list using the command: - - .. code-block:: bash - - sudo apt update - - 2. Install Docker using the following command: - - .. code-block:: bash - - sudo apt install docker.io - - 3. You may need to add your user to the "docker" group to use Docker without sudo. Run the following command to add your user to the group (replace `<username>` with your actual username): - - .. code-block:: bash - - sudo usermod -aG docker <username> - -.. note:: - For more detailed instructions and troubleshooting related to Docker, refer to the official Docker documentation: https://docs.docker.com/get-docker/ - -DevContainers -+++++++++++++ - -Open the repository in VSCode as folder, e.g. by calling ``code openpass`` after checking out and then define the development container configuration. - -1. Open the repository as folder, e.g. by calling ``code openpass`` after checking out. -2. Create the folder ``.devcontainer`` at the root of the project and configure your development container using JSON format. Below is an example configuration: - - .. tabs:: - - .. tab:: Windows - - .. literalinclude:: _static/vscode/config/devcontainer.json - :caption: devcontainer.json - :language: javascript - :linenos: - - :download:`Download <_static/vscode/config/devcontainer.json>` - - .. note:: - - To use docker daemons running on WSL, open ``settings`` in VSCode and search for ``Execute In WSL`` and select the option to execute in WSL. Also, under ``Execute in WSLDistro`` enter your distro name, for example: ``Ubuntu`` - - .. tab:: Linux - - .. literalinclude:: _static/vscode/config/devcontainer.json - :caption: devcontainer.json - :language: javascript - :linenos: - - :download:`Download <_static/vscode/config/devcontainer.json>` - -3. Open Your Project in a Development Container: - - 1. Open the command palette by pressing `Ctrl+Shift+P`. - 2. Type "Dev Containers: Open Folder in Container" and select your project folder. - 3. VSCode will build the Docker container based on the configuration and open your project inside it. - -4. Developing in the Container: - - 1. You can now edit files, install packages, and run code within the development container. - 2. Installed extensions and settings in the container will be isolated from your local environment. - -5. To exit the container, click on the bottom left status bar where it shows the container name and click "Close Remote Connection." - - -Configuration -------------- - -|win_only| MSYS2 Path -+++++++++++++++++++++ - -Normally, runtime dependencies (DLLs) are not copied into the executables folder within the build process. -This means, that programs cannot be executed natively from Windows shells or the explorer. -It is therefore highly recommended, to set the environmental variable ``MSYSTEM=MINGW64`` and ``CHERE_INVOKING=1``. -The setting of ``MSYSTEM`` will cause the environment to be set up correctly for MinGW64. -Windows will then look for DLLs within the msys64 folders, allowing native execution. -``CHERE_INVOKING`` makes sure the shell stays in the current working directory. -As investigated recently, the ``C:\msys64\usr\bin``must also be added to the ``PATH`` environment variable in order to resolve dependencies to ``cygpath.exe``. - -.. note:: - If ``C:\msys64`` is not already listed in ``PATH`` variable, then add ``C:\msys64`` in ``PATH`` variable before adding ``C:\msys64\usr\bin`` to the ``PATH`` variable. - If there are any other Unix like environments installed on Windows operating systems (example: cygwin), there might even be file collisions when calling certain cmake commands. - Therefore, it is suggested to add ``C:\msys64`` in ``PATH`` variable before any other Unix like environmental calls. - -Either set environment variable through the ``Windows PowerShell`` - -.. code:: shell - - # check if set - echo ${env:path} - echo ${env:MSYSTEM} - echo ${env:CHERE_INVOKING} - - # if not - setx path "%PATH%;C:\msys64\usr\bin" - setx MSYSTEM "MINGW64" - setx CHERE_INVOKING "1" - -or - -1. Open the start search -2. Type in “env†and choose “Edit the system environment variables†-3. Choose “Environment Variables…†-4. Set the environment variables: - - i. MSYSTEM=MINGW64 - ii. CHERE_INVOKING=1 - iii. Add ``C:\msys64\usr\bin`` to PATH - -Visual Studio Code needs to be reloaded/restarted after the path update. - -.. note:: - - An optimal solution would be to set the system environment variables in VSCode under ``settings.json``. This is currently not possible. Please contact us if you find a better solution. - -Build Kit -+++++++++ - -.. tabs:: - - .. tab:: Windows - - **Add and select MSYS2/MinGW64 Build Kit:** - - 1. Execute ``Ctrl+Shift+P``: ``CMake: Edit User-Local CMake Kits`` - - 2. Insert/Update: - - .. literalinclude:: _static/vscode/config/win/cmake-tools-kits.json - :caption: cmake-tools-kits.json - :language: javascript - :linenos: - - :download:`Download <_static/vscode/config/win/cmake-tools-kits.json>` - - 3. ``Ctrl+Shift+P``: ``CMake: Select a Kit`` = ``MinGW64`` - - .. tab:: Linux - - **Select System Build Kit:** - - ``Ctrl+Shift+P``: ``CMake: Select a Kit`` = ``GCC 10.2.0`` - - See also :ref:`prerequisites`. - -.. _vscode_user_settings: - -User Settings -+++++++++++++ - -1. Execute ``Ctrl+Shift+P``: ``Preferences Open Workspace Settings (JSON)`` - -2. Insert/Update: - - .. tabs:: - - .. tab:: Windows - - .. literalinclude:: _static/vscode/config/win/settings.json - :caption: settings.json - :language: javascript - :linenos: - - :download:`Download <_static/vscode/config/win/settings.json>` - - .. tab:: Linux - - .. literalinclude:: _static/vscode/config/linux/settings.json - :caption: settings.json - :language: javascript - :linenos: - - :download:`Download <_static/vscode/config/linux/settings.json>` - - -C++ and IntelliSense -++++++++++++++++++++ - -1. Execute ``Ctrl+Shift+P``: ``C/C++: Edit Configurations (JSON)`` - -2. .. literalinclude:: _static/vscode/config/c_cpp_properties.json - :caption: c_cpp_properties.json - :language: javascript - :linenos: - - :download:`Download <_static/vscode/config/c_cpp_properties.json>` - -Configure the Build -+++++++++++++++++++ - -Execute ``Ctrl+Shift+P``: ``CMake: Configure`` - - -CMake should now be able to configure the project. -If not, cmake should give you at least a hint, what's missing (normally external libraries). -Read :ref:`cmake` or :ref:`prerequisites` for more information. - -.. admonition:: CMake - - Some changes such as changing the build type (Debug/Release) will cause CMake to updates the configuration automatically. - Other changes won't trigger an update, such as changing the paths to libraries (`CMAKE_PREFIX_PATH`), the cmake cache needs to be cleared before reconfiguration: - ``Ctrl+Shift+P`` > ``CMake: Delete Cache and Reconfigure`` - -Debug Targets -+++++++++++++ - -CMake Tools and C++ Testmate automatically use custom launch configurations, if available. -When using the debugging functionality, the according executable will be executed from where they are built (per default inside the ``build`` folder). - -- This is acceptable for unit test, which do not require openPASS specific libraries. - The corresponding config is ``CMake Target``. - -- For the core, located at ``./build/sim/src/core/opSimulation/opSimulation``, this does not work, as no libraries and no configurations are available. - As a solution, a second debug target ``opsimulation`` points at the installed executable instead. - - .. warning:: Don't forget to run the target ``install`` before debugging . - -1. Got to "Run and Debug" (``Ctrl+Shift+D``) and *create a launch.json file*. - -2. Insert/Update: - -.. tabs:: - - .. tab:: Windows - - .. literalinclude:: _static/vscode/config/win/launch.json - :caption: launch.json - :language: javascript - :linenos: - - :download:`Download <_static/vscode/config/win/launch.json>` - - .. tab:: Linux - - .. literalinclude:: _static/vscode/config/linux/launch.json - :caption: launch.json - :language: javascript - :linenos: - - :download:`Download <_static/vscode/config/linux/launch.json>` - -.. note:: - - IntelliSense uses the ``compile_commands.json`` of generated through ``CMAKE_EXPORT_COMPILE_COMMANDS=ON`` (see ``settings.json``). - This is necessary for proper resolution of the include files. - - -Troubleshooting ---------------- - -|win_only| **Program does not start** - -The most effective way to debug startup issues is by means of the `Process Monitor <https://docs.microsoft.com/en-us/sysinternals/downloads/procmon>`_. - -But normally, its a missing DLL. When executing the program via command line or explorer a message box should prompt which DLLs are missing. -A simple solution is to copy the according DLLs into the folder of the executable. -Another solution is to make the path available by extending the ``PATH`` environment variable. -Potential sources for missing DLLs are ``C:\msys64\mingw64\bin``, ``C:\msys64\mingw64\x86_64-w64-mingw32\lib``, and the ``build`` folder itself. - -**Tests are not listed** - -For test discovery, C++ Testmate needs to know the location of all additional dependencies. -This information is retrieved from the current debug configuration. - -#. Testmate discovers tests only after they are built. - It pays to ``Run CTest`` to build all test targets. - After this, you should see all tests in the testing pane on the left. - -#. Still not listed? Set ``testMate.cpp.log.logfile`` in ``settings.json`` and check log. - - #. Test executable not mentioned at all: - Executable name might not fit (check glob pattern in ``testMate.cpp.test.executables``). - #. Log reports *Error: Not a supported test executable*: a library/DLL might be missing. +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2023-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. |win_only| image:: /_static/win_only.png + +.. _vscode: + +Working with Visual Studio Code +=============================== + +This section describes the basic setup for Visual Studio Code. + +.. figure:: _static/images/vscode_quick_intro.png + :align: center + + Correctly configured Visual Studio Code showing -- among other things -- **left**, debugging, testmate, and cmake pane selectors, and at the **bottom**, build type, kit, current target, and CTest runner. + +Assumptions +----------- + +- For brevity, non-standard libraries are expected to be in the folder ``./deps/thirdParty``. +- |win_only| **MSYS2/MinGW 64 Bit** is used. + +Installation +------------ + +1. Install Visual Studio Code (https://code.visualstudio.com) + +2. Install Extensions + +.. table:: + + ======================================================================================================== ======================================================= + Name Purpose + ======================================================================================================== ======================================================= + `C/C++ <https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools>`_ Support for C/C++, including IntelliSense and debugging + `CMake Tools <https://vector-of-bool.github.io/docs/vscode-cmake-tools>`_ Extended CMake support + `C++ Testmate <https://marketplace.visualstudio.com/items?itemName=matepek.vscode-catch2-test-adapter>`_ Run and debug GoogleTest + `MSYS2/Cygwin/MinGW/Clang support <https://marketplace.visualstudio.com/items?itemName=fougas.msys2>`_ |win_only| MSYS2/MinGW configuration adapter + `Remote Development <https://code.visualstudio.com/docs/devcontainers/containers>`_ Development using DevContainers + `Docker <https://code.visualstudio.com/docs/containers/overview>`_ Additional information for DevContainer prerequisites + ======================================================================================================== ======================================================= + +Set Up Development Containers in Visual Studio Code +--------------------------------------------------- + +Introduction +++++++++++++ + +This section provides step-by-step instructions on setting up development containers in Visual Studio Code (VSCode). Development containers allow you to define and manage your development environment using Docker containers, ensuring consistent and reproducible setups across different machines. + +Prerequisites ++++++++++++++ + +Before you begin, make sure ``docker`` is installed in your system. If ``docker`` is not installed, follow the below steps. + +.. tabs:: + + .. tab:: Windows + + 1. Open PowerShell in Administrator Mode by right-clicking and selecting "Run as administrator.". + + 2. To install wsl, run the following command and then restart the machine: + + .. code-block:: powershell + + wsl --install + + The above command only works if WSL is not installed at all. + If you run ``wsl --install`` and see the WSL help text, try running ``wsl --list --online`` to see a list of available distros and run ``wsl --install -d <Linux DistroName>`` to install a distro. The recommended distro is ``Ubuntu`` and the following steps assumes the distro as ``Ubuntu`` + + 3. Once the distro is installed, check the version of the installed distro + + .. code-block:: powershell + + wsl -l -v + + If the version is 1, then change it to 2 using the command ``wsl --set-version <distro> 2`` + + 4. After successful installation, open Ubuntu by searching ``Ubuntu`` in windows search bar + + 5. Install the dependencies to run docker on the distro using the following command + + .. code-block:: bash + + sudo apt install --no-install-recommends apt-transport-https ca-certificates curl + + 6. On Debian or Ubuntu, first temporarily set some OS-specific variables: + + .. code-block:: bash + + . /etc/os-release + + Then, make sure ``apt`` trust the docker repo + + .. code-block:: bash + + curl -fsSL https://download.docker.com/linux/${ID}/gpg | sudo tee /etc/apt/trusted.gpg.d/docker.asc + + ID will be either ``ubuntu`` or ``debian``, as appropriate, depending on what is in ``/etc/os-release``. + + 7. Add docker repo information to the ``apt`` to install docker. + + .. code-block:: bash + + echo "deb [arch=amd64] https://download.docker.com/linux/${ID} ${VERSION_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list + sudo apt update + + 8. Install Docker and add user to the ``docker`` group + + .. code-block:: bash + + sudo apt install docker-ce docker-ce-cli containerd.io + sudo usermod -aG docker $USER + + Replace ``$USER`` with your user name on distro. Then close the WSL window, and launch WSL again. You should see ``docker`` when you run the command ``groups`` on command prompt to list group memberships. + + 9. Launch ``dockerd`` using the following command + + .. code-block:: bash + + sudo dockerd + + There should be several lines of info, warnings related to cgroup blkio, and the like, with something like API listen on /var/run/docker.sock at the end. If so, you have success. + If there is any network controller issue, execute the following compile_commands + + .. code-block:: bash + + echo -e "[network]\ngenerateResolvConf = false" | sudo tee -a /etc/wsl.conf + sudo unlink /etc/resolv.conf + echo nameserver 1.1.1.1 | sudo tee /etc/resolv.conf + + Also switch to legacy iptables using the following command + + .. code-block:: bash + + update-alternatives --config iptables + + And select iptables-legacy + Rerun the command ``sudo dockerd`` and check if it is succeeded. + + 10. To check if ``docker`` is running from Windows, in PowerShell execute the following command. + + .. code-block:: powershell + + wsl -d Ubuntu docker -H unix:///var/run/docker.sock --version + + .. tab:: Linux + + 1. Open a terminal window. + + 2. Execute the following command + + .. code-block:: bash + + docker --version + + If Docker is installed, you will see the version information displayed in the terminal. + + 3. If Docker is not installed, you can install it using the following steps: + + 1. Update your package list using the command: + + .. code-block:: bash + + sudo apt update + + 2. Install Docker using the following command: + + .. code-block:: bash + + sudo apt install docker.io + + 3. You may need to add your user to the "docker" group to use Docker without sudo. Run the following command to add your user to the group (replace `<username>` with your actual username): + + .. code-block:: bash + + sudo usermod -aG docker <username> + +.. note:: + For more detailed instructions and troubleshooting related to Docker, refer to the official Docker documentation: https://docs.docker.com/get-docker/ + +DevContainers ++++++++++++++ + +Open the repository in VSCode as folder, e.g. by calling ``code openpass`` after checking out and then define the development container configuration. + +1. Open the repository as folder, e.g. by calling ``code openpass`` after checking out. +2. Create the folder ``.devcontainer`` at the root of the project and configure your development container using JSON format. Below is an example configuration: + + .. tabs:: + + .. tab:: Windows + + .. literalinclude:: _static/vscode/config/devcontainer.json + :caption: devcontainer.json + :language: javascript + :linenos: + + :download:`Download <_static/vscode/config/devcontainer.json>` + + .. note:: + + To use docker daemons running on WSL, open ``settings`` in VSCode and search for ``Execute In WSL`` and select the option to execute in WSL. Also, under ``Execute in WSLDistro`` enter your distro name, for example: ``Ubuntu`` + + .. tab:: Linux + + .. literalinclude:: _static/vscode/config/devcontainer.json + :caption: devcontainer.json + :language: javascript + :linenos: + + :download:`Download <_static/vscode/config/devcontainer.json>` + +3. Open Your Project in a Development Container: + + 1. Open the command palette by pressing `Ctrl+Shift+P`. + 2. Type "Dev Containers: Open Folder in Container" and select your project folder. + 3. VSCode will build the Docker container based on the configuration and open your project inside it. + +4. Developing in the Container: + + 1. You can now edit files, install packages, and run code within the development container. + 2. Installed extensions and settings in the container will be isolated from your local environment. + +5. To exit the container, click on the bottom left status bar where it shows the container name and click "Close Remote Connection." + + +Configuration +------------- + +|win_only| MSYS2 Path ++++++++++++++++++++++ + +Normally, runtime dependencies (DLLs) are not copied into the executables folder within the build process. +This means, that programs cannot be executed natively from Windows shells or the explorer. +It is therefore highly recommended, to set the environmental variable ``MSYSTEM=MINGW64`` and ``CHERE_INVOKING=1``. +The setting of ``MSYSTEM`` will cause the environment to be set up correctly for MinGW64. +Windows will then look for DLLs within the msys64 folders, allowing native execution. +``CHERE_INVOKING`` makes sure the shell stays in the current working directory. +As investigated recently, the ``C:\msys64\usr\bin``must also be added to the ``PATH`` environment variable in order to resolve dependencies to ``cygpath.exe``. + +.. note:: + If ``C:\msys64`` is not already listed in ``PATH`` variable, then add ``C:\msys64`` in ``PATH`` variable before adding ``C:\msys64\usr\bin`` to the ``PATH`` variable. + If there are any other Unix like environments installed on Windows operating systems (example: cygwin), there might even be file collisions when calling certain cmake commands. + Therefore, it is suggested to add ``C:\msys64`` in ``PATH`` variable before any other Unix like environmental calls. + +Either set environment variable through the ``Windows PowerShell`` + +.. code:: shell + + # check if set + echo ${env:path} + echo ${env:MSYSTEM} + echo ${env:CHERE_INVOKING} + + # if not + setx path "%PATH%;C:\msys64\usr\bin" + setx MSYSTEM "MINGW64" + setx CHERE_INVOKING "1" + +or + +1. Open the start search +2. Type in “env†and choose “Edit the system environment variables†+3. Choose “Environment Variables…†+4. Set the environment variables: + + i. MSYSTEM=MINGW64 + ii. CHERE_INVOKING=1 + iii. Add ``C:\msys64\usr\bin`` to PATH + +Visual Studio Code needs to be reloaded/restarted after the path update. + +.. note:: + + An optimal solution would be to set the system environment variables in VSCode under ``settings.json``. This is currently not possible. Please contact us if you find a better solution. + +Build Kit ++++++++++ + +.. tabs:: + + .. tab:: Windows + + **Add and select MSYS2/MinGW64 Build Kit:** + + 1. Execute ``Ctrl+Shift+P``: ``CMake: Edit User-Local CMake Kits`` + + 2. Insert/Update: + + .. literalinclude:: _static/vscode/config/win/cmake-tools-kits.json + :caption: cmake-tools-kits.json + :language: javascript + :linenos: + + :download:`Download <_static/vscode/config/win/cmake-tools-kits.json>` + + 3. ``Ctrl+Shift+P``: ``CMake: Select a Kit`` = ``MinGW64`` + + .. tab:: Linux + + **Select System Build Kit:** + + ``Ctrl+Shift+P``: ``CMake: Select a Kit`` = ``GCC 10.2.0`` + + See also :ref:`prerequisites`. + +.. _vscode_user_settings: + +User Settings ++++++++++++++ + +1. Execute ``Ctrl+Shift+P``: ``Preferences Open Workspace Settings (JSON)`` + +2. Insert/Update: + + .. tabs:: + + .. tab:: Windows + + .. literalinclude:: _static/vscode/config/win/settings.json + :caption: settings.json + :language: javascript + :linenos: + + :download:`Download <_static/vscode/config/win/settings.json>` + + .. tab:: Linux + + .. literalinclude:: _static/vscode/config/linux/settings.json + :caption: settings.json + :language: javascript + :linenos: + + :download:`Download <_static/vscode/config/linux/settings.json>` + + +C++ and IntelliSense +++++++++++++++++++++ + +1. Execute ``Ctrl+Shift+P``: ``C/C++: Edit Configurations (JSON)`` + +2. .. literalinclude:: _static/vscode/config/c_cpp_properties.json + :caption: c_cpp_properties.json + :language: javascript + :linenos: + + :download:`Download <_static/vscode/config/c_cpp_properties.json>` + +Configure the Build ++++++++++++++++++++ + +Execute ``Ctrl+Shift+P``: ``CMake: Configure`` + + +CMake should now be able to configure the project. +If not, cmake should give you at least a hint, what's missing (normally external libraries). +Read :ref:`cmake` or :ref:`prerequisites` for more information. + +.. admonition:: CMake + + Some changes such as changing the build type (Debug/Release) will cause CMake to updates the configuration automatically. + Other changes won't trigger an update, such as changing the paths to libraries (`CMAKE_PREFIX_PATH`), the cmake cache needs to be cleared before reconfiguration: + ``Ctrl+Shift+P`` > ``CMake: Delete Cache and Reconfigure`` + +Debug Targets ++++++++++++++ + +CMake Tools and C++ Testmate automatically use custom launch configurations, if available. +When using the debugging functionality, the according executable will be executed from where they are built (per default inside the ``build`` folder). + +- This is acceptable for unit test, which do not require openPASS specific libraries. + The corresponding config is ``CMake Target``. + +- For the core, located at ``./build/sim/src/core/opSimulation/opSimulation``, this does not work, as no libraries and no configurations are available. + As a solution, a second debug target ``opsimulation`` points at the installed executable instead. + + .. warning:: Don't forget to run the target ``install`` before debugging . + +1. Got to "Run and Debug" (``Ctrl+Shift+D``) and *create a launch.json file*. + +2. Insert/Update: + +.. tabs:: + + .. tab:: Windows + + .. literalinclude:: _static/vscode/config/win/launch.json + :caption: launch.json + :language: javascript + :linenos: + + :download:`Download <_static/vscode/config/win/launch.json>` + + .. tab:: Linux + + .. literalinclude:: _static/vscode/config/linux/launch.json + :caption: launch.json + :language: javascript + :linenos: + + :download:`Download <_static/vscode/config/linux/launch.json>` + +.. note:: + + IntelliSense uses the ``compile_commands.json`` of generated through ``CMAKE_EXPORT_COMPILE_COMMANDS=ON`` (see ``settings.json``). + This is necessary for proper resolution of the include files. + + +Troubleshooting +--------------- + +|win_only| **Program does not start** + +The most effective way to debug startup issues is by means of the `Process Monitor <https://docs.microsoft.com/en-us/sysinternals/downloads/procmon>`_. + +But normally, its a missing DLL. When executing the program via command line or explorer a message box should prompt which DLLs are missing. +A simple solution is to copy the according DLLs into the folder of the executable. +Another solution is to make the path available by extending the ``PATH`` environment variable. +Potential sources for missing DLLs are ``C:\msys64\mingw64\bin``, ``C:\msys64\mingw64\x86_64-w64-mingw32\lib``, and the ``build`` folder itself. + +**Tests are not listed** + +For test discovery, C++ Testmate needs to know the location of all additional dependencies. +This information is retrieved from the current debug configuration. + +#. Testmate discovers tests only after they are built. + It pays to ``Run CTest`` to build all test targets. + After this, you should see all tests in the testing pane on the left. + +#. Still not listed? Set ``testMate.cpp.log.logfile`` in ``settings.json`` and check log. + + #. Test executable not mentioned at all: + Executable name might not fit (check glob pattern in ``testMate.cpp.test.executables``). + #. Log reports *Error: Not a supported test executable*: a library/DLL might be missing. diff --git a/content/html/_sources/index.rst.txt b/content/html/_sources/index.rst.txt index 716865b9b7c9e97b7f2f831cbff8fc6eda5be5b1..8274eb7c280b171538fe308c9bf1acb99a3ff7bc 100644 --- a/content/html/_sources/index.rst.txt +++ b/content/html/_sources/index.rst.txt @@ -1,68 +1,63 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - 2023 Mercedes-Benz Tech Innovation GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -openPASS Documentation -====================== - -The openPASS (Open Platform for Assessment of Safety Systems) tool is a developed framework for the simulation of interaction between traffic participants to evaluate and parametrize active safety systems. -The simulation is based on a specific situation configuration and can contain several simulation runs, which differ due to random parameters. - -The software suite of openPASS started as a set of stand-alone applications, which can be installed and configured individually. -Over time, especially the graphical user interface evolved to a single entry point, enabling the average user to use openPASS as a "monolithic" tool. - -This guide contains information about installation, configuration and usage of all tools in the |Op| environment. - -.. toctree:: - :caption: Installation Guide - :glob: - :maxdepth: 1 - - installation_guide/* - -.. TODO:: Update section for new react GUI. - -The GUI lets the user configure the simulation and generate configuration files from all set parameters. -Based on these the simulation core calculates different simulation runs and compiles trace files for further processing. - -.. toctree:: - :caption: User Guides - :glob: - :maxdepth: 1 - - user_guide/* - -.. toctree:: - :caption: Advanced topics - :glob: - :maxdepth: 1 - - advanced_topics/* - -.. toctree-api:: - :caption: Developer Information - :glob: - :maxdepth: 1 - - developer_information/* - :api-doc: - -.. toctree:: - :caption: Other Information - :glob: - :maxdepth: 1 - - other_information/* - -Todolist -======== - -.. todolist:: +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2023 Mercedes-Benz Tech Innovation GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +openPASS Documentation +====================== + +The openPASS (Open Platform for Assessment of Safety Systems) tool is a developed framework for the simulation of interaction between traffic participants to evaluate and parametrize active safety systems. +The simulation is based on a specific situation configuration and can contain several simulation runs, which differ due to random parameters. + +The software suite of openPASS started as a set of stand-alone applications, which can be installed and configured individually. +In the future, the graphical user interface opGUI will evolve to a single entry point, enabling the average user to use openPASS as a "monolithic" tool. + +This guide contains information about installation, configuration and usage of all tools in the |Op| environment. + +.. toctree:: + :caption: Installation Guide + :glob: + :maxdepth: 1 + + installation_guide/* + +.. toctree:: + :caption: User Guides + :glob: + :maxdepth: 1 + + user_guide/* + +.. toctree:: + :caption: Advanced topics + :glob: + :maxdepth: 1 + + advanced_topics/* + +.. toctree-api:: + :caption: Developer Information + :glob: + :maxdepth: 1 + + developer_information/* + :api-doc: + +.. toctree:: + :caption: Other Information + :glob: + :maxdepth: 1 + + other_information/* + +Todolist +======== + +.. todolist:: diff --git a/content/html/_sources/installation_guide/10_getting_started.rst.txt b/content/html/_sources/installation_guide/10_getting_started.rst.txt index 19ce73601b7ce7a43e04a9727e9db29a6fb1b811..fda9c692c466cb93333807d4587b573eb8caedf1 100644 --- a/content/html/_sources/installation_guide/10_getting_started.rst.txt +++ b/content/html/_sources/installation_guide/10_getting_started.rst.txt @@ -1,55 +1,55 @@ -.. - ******************************************************************************* - Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _sim_install_guide: - -Getting Started -=============== - -This guide will lead you through the installation steps to set up the |op| simulator and run your first simulation. -The process is described for Windows and Linux as target platforms. -Please check the :ref:`system_requirements` for the required hardware setup. - -The installation manual is structured as follows: - -.. tabs:: - - .. tab:: Building manually - - **Setting up your system** - - - :ref:`Prerequisites` contains instructions for installing the thirdparty software required by |op| - - **Installation of the simulator** - - - :ref:`Download_and_install_openpass` describes how to compile and run |op| once all prerequisites are installed - - .. tab:: Building with Conan - - .. warning:: Not Recommended to install this way. Not finished and fully tested yet. - - **Setting up Conan** - - - :ref:`building_with_conan` contains the instructions to set Conan up. - - **Installation of the simulator** - - - :ref:`building_with_conan` describes how to compile and run |op| once all prerequisites are installed - - -**Run a default simulation** - -- :ref:`tutorials` shows how to run your first simulations - -**Further guidance** - -- :ref:`Cmake` holds information about available variables and options for the cross-platform build environment CMake -- :ref:`Vscode` describes the basic setup for Visual Studio Code +.. + ******************************************************************************* + Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _sim_install_guide: + +Getting Started +=============== + +This guide will lead you through the installation steps to set up the |op| simulator and run your first simulation. +The process is described for Windows and Linux as target platforms. +Please check the :ref:`system_requirements` for the required hardware setup. + +The installation manual is structured as follows: + +.. tabs:: + + .. tab:: Building manually + + **Setting up your system** + + - :ref:`Prerequisites` contains instructions for installing the thirdparty software required by |op| + + **Installation of the simulator** + + - :ref:`Download_and_install_openpass` describes how to compile and run |op| once all prerequisites are installed + + .. tab:: Building with Conan + + .. warning:: Not Recommended to install this way. Not finished and fully tested yet. + + **Setting up Conan** + + - :ref:`building_with_conan` contains the instructions to set Conan up. + + **Installation of the simulator** + + - :ref:`building_with_conan` describes how to compile and run |op| once all prerequisites are installed + + +**Run a default simulation** + +- :ref:`tutorials` shows how to run your first simulations + +**Further guidance** + +- :ref:`Cmake` holds information about available variables and options for the cross-platform build environment CMake +- :ref:`Vscode` describes the basic setup for Visual Studio Code diff --git a/content/html/_sources/installation_guide/15_system_requirements.rst.txt b/content/html/_sources/installation_guide/15_system_requirements.rst.txt index e1a4eda9c2d7baec9f666a5cae09361808f8d499..fdf69b3654f7a3ff2b896143fd73d002f394e925 100644 --- a/content/html/_sources/installation_guide/15_system_requirements.rst.txt +++ b/content/html/_sources/installation_guide/15_system_requirements.rst.txt @@ -1,34 +1,34 @@ -.. - ******************************************************************************* - Copyright (c) 2022-2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _system_requirements: - -System Requirements -=================== - -Simulations with |op| are designed to be very lightweight and performant, without imposing huge requirements on the underlying hardware. -Thus, |op| simulations run as a single core application and do not utilize GPU. -Only the build process during installation of |op| makes use of multiple cores, so it is recommended to have at least a 4 core CPU. -In the table below, minimal requirements are listed along with a commonly used, well working example setup. - -.. table:: - :class: tight-table - - ==================== ============================================================== ========================== - System Specification Minimal Requirements Tested Setup (exemplarily) - ==================== ============================================================== ========================== - Operating System Windows or Linux (Debian Bookworm or Ubuntu 22.04 recommended) Windows 10 - CPU Intel x64 Architecture with at least 1,50 GHz clock frequency Intel i5-10310U - RAM at least 8 GB 8 GB - GPU not used by the simulation Intel UHD Graphics 620 - Others 1 GB free hard disk space - ==================== ============================================================== ========================== - +.. + ******************************************************************************* + Copyright (c) 2022-2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _system_requirements: + +System Requirements +=================== + +Simulations with |op| are designed to be very lightweight and performant, without imposing huge requirements on the underlying hardware. +Thus, |op| simulations run as a single core application and do not utilize GPU. +Only the build process during installation of |op| makes use of multiple cores, so it is recommended to have at least a 4 core CPU. +In the table below, minimal requirements are listed along with a commonly used, well working example setup. + +.. table:: + :class: tight-table + + ==================== ============================================================== ========================== + System Specification Minimal Requirements Tested Setup (exemplarily) + ==================== ============================================================== ========================== + Operating System Windows or Linux (Debian Bookworm or Ubuntu 22.04 recommended) Windows 10 + CPU Intel x64 Architecture with at least 1,50 GHz clock frequency Intel i5-10310U + RAM at least 8 GB 8 GB + GPU not used by the simulation Intel UHD Graphics 620 + Others 1 GB free hard disk space + ==================== ============================================================== ========================== + diff --git a/content/html/_sources/installation_guide/20_install_prerequisites.rst.txt b/content/html/_sources/installation_guide/20_install_prerequisites.rst.txt index eb0420e0b95c027b6535e72083b5f419f5c07291..724c836fda267a5de56a2f814b67a51a1a12404e 100644 --- a/content/html/_sources/installation_guide/20_install_prerequisites.rst.txt +++ b/content/html/_sources/installation_guide/20_install_prerequisites.rst.txt @@ -1,320 +1,330 @@ -.. - ******************************************************************************* - Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _prerequisites: - -Installing Prerequisites -======================== - -Before being able to compile and run |op|, make sure to have all dependencies installed. -The third party software dependency of |op| can be divided into: - -- **Build environment**, which manages third party software and is used to compile and install |op| -- **Binary packages**, which can be easily installed via a package manager of the respective build environment -- **Source packages**, which need to be built from source code - -This section gives detailed information about the prerequisites and tested version. - -.. _building_under_windows: - - -Installing the Build Environment --------------------------------- - -.. tabs:: - - .. tab:: Windows - - #. MSYS2 - - On Windows, the build environment of choice are :term:`MSYS2` programming tools. - :term:`MSYS2` is used to install some third-party software on which |op| depends. - Also, the unix-like shell simplifies c++ compilation on Windows. - For details, see `MSYS2 website <https://www.msys2.org/>`_. - - - .. _msys2: - - #. Download MSYS2 - - The latest 64-bit package is located in the Installation section of `MSYS2 website <https://www.msys2.org/>`_. - - - .. _msys2_installation: - - #. Install MSYS2 - - Run the downloaded executable and adjust suggested settings to your needs (defaults are fine). - In the following, it is assumed that MSYS2 is installed under ``C:\msys64``. - - #. Understand the Build Environment - - MSYS2 provides three different environments, located in the MSYS2 installation directory: - - .. _fig_msys2_environments: - - .. figure:: _static/images/msys2.png - :align: center - :alt: MSYS2 Apps - - MSYS2 Environments - - - MSYS2 MSYS: Common environment, i.e. for package management - - MSYS2 MinGW 32-bit: A MinGW 32-bit environment - - MSYS2 MinGW 64-bit: A MinGW 64-bit environment - - .. warning:: - - | MSYS2 MinGW 64-bit is **the** |op| development environment and will be referred to as |mingw_shell|. - - .. _building_under_linux: - - .. tab:: Linux - - On Linux, no special build environment is needed. |Op| is developed under Debian 64-Bit, - which means that developing under a recent Ubuntu distribution will also work. - Debian Bookworm or Ubuntu 22.04 LTS is recommended. Debian uses ``apt`` (or ``apt-get``) as package managing system. - Details will be given in :ref:`binary_packages` and :ref:`building_prerequisites`. - - -.. _binary_packages: - -Installing the Binary Packages ------------------------------- - -The first set of dependencies we need to install in order to successfully compile |op| are the binary packages. These can be installed via appropiate package manager. - -.. tabs:: - - .. tab:: Windows (MSYS2) - - #. Open ``MSYS2 MinGW 64-bit`` and execute the following package manager ``pacman`` commands to update the package repository and upgrade system packages: - - .. code-block:: - - pacman -Syuu - - If the upgrade requires a restart of MSYS2, resume the upgrade by re-opening the shell and call: - - .. code-block:: - - pacman -Suu - - #. Required packages (can be specified in single command line if desired): - - .. literalinclude:: _static/msys2_packages.txt - :language: bash - - .. admonition:: Versions - - | MSYS2 provides rolling release versions, so some packages might be too "up-to-date". - - #. Required python packages - - .. code-block:: - - pip3 install "approvaltests==3.1.0" breathe "conan>2.0" empty-files exhale watchdog - - .. admonition:: GIT/SSH - - The |mingw_shell| does not access an already existing git installation or available SSH keys. - Make sure, to update/copy your configuration and credentials within the |mingw_shell| before working with git. - - .. tab:: Linux (Debian Bookworm) - - #. Update the package database on the system - - .. code-block:: - - apt update - - #. Upgrade existing software to latest version - - .. code-block:: - - apt upgrade - - #. Install required binary packages - - .. code-block:: - - # for simulator - apt -y install antlr4 - apt -y install build-essential - apt -y install ca-certificates - apt -y install ccache - apt -y install cmake - apt -y install clang-format-15 - apt -y install doxygen - apt -y install g++ - apt -y install gcc - apt -y install git - apt -y install googletest - apt -y install graphviz - apt -y install libboost-filesystem-dev - apt -y install libgmock-dev - apt -y install libgtest-dev - apt -y install libprotobuf-dev - apt -y install libqt5xmlpatterns5-dev - apt -y install libantlr4-runtime4.9 - apt -y install libantlr4-runtime-java - apt -y install libantlr4-runtime-dev - apt -y install openjdk-17-jre - apt -y install pkg-config - apt -y install protobuf-compiler - apt -y install python3 - apt -y install python3-distutils - apt -y install python3-pip - apt -y install qtbase5-dev - apt -y install uuid-dev - - # python packages - pip3 install "approvaltests==3.1.0" empty-files "conan>2.0" watchdog - pip3 install breathe exhale myst-parser "sphinx==7.2.6" sphinx-rtd-theme sphinx-tabs sphinxcontrib-spelling - -**EndToEnd Test Framework** - -If end to end tests shall be executed, additional requirements have to be considered. -Please refer to :ref:`testing_endtoend` for more details on installation of the prerequisites and usage of the framework. - - -.. _building_prerequisites: - -Installing the Dependencies ---------------------------- - -This section describes how to compile prerequisites of |op| using conan (``conan>2.0``). - -The goal of this section is to build and install necessary packages into a suitable directory using conan. - -.. note:: - - If you are unfamiliar to ``conan`` or working with it, Section :ref:`building_with_conan` might give you a short introduction on conan in the scope of building dependencies for |op|. - -To keep the installation process of |op| and its dependencies as simple as possible, we recommend a specific folder structure. -If you strictly follow the recommended paths of this guide, no command modifications are necessary. - -.. tabs:: - - .. tab:: Notes for Windows - - - Recommended checkout path of |op| repository: ``C:\openpass`` - - Dependency directory within the |op| repository: ``C:\deps`` - - Recommended installation directory of |op|: ``C:\openPASS\bin\core`` - - .. tab:: Notes for Linux - - - Recommended checkout path of |op| repository: ``~/openpass`` - - Dependency directory within the |op| repository: ``~/deps`` - - Recommended installation directory of |op|: ``/usr/local/openPASS/bin/core`` - -The above directory structure will be created by following the instructions of this guide. - -#. Clone |Op| repository - - As described above, the checkout path of the repository is assumed to be the default ``openpass``. - - .. tabs:: - - .. tab:: Windows - - Start |mingw_shell| - - .. code-block:: - - cd /C/ - git clone https://gitlab.eclipse.org/eclipse/openpass/opSimulation.git openpass - - .. note:: - - As stated in :ref:`Building_under_windows`, the windows programming tools suffer from a `path length restriction`. - This error manifests as strange **file not found** compile errors. - It is therefore recommended to use a short path for source code checkout, e.g. a drive letter. - This can also be done by the windows command `subst <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/subst>`_. - - .. tab:: Linux - - Start ``Bash`` shell - - .. code-block:: - - cd ~ - git clone https://gitlab.eclipse.org/eclipse/openpass/opSimulation.git openpass - -#. Navigate into repository and checkout main branch - - .. code-block:: - - cd openpass - git checkout main - -#. The essential packages necessary for |Op| are listed in the file ``utils/ci/conan/conanfile.txt``. - - If a required package is available on ConanCenter, they will be used directly. - For packages not available on ConanCenter, the respective recipes are stored in the ``utils/ci/conan/recipe`` folder. - - .. note:: - - It is important to have conancenter remote enabled. To check the status of conancenter and to enable, if it is disabled, execute the following commands - - .. code-block:: - - conan remote list - conan remote enable conancenter - -#. There are two Conan profiles ``conanprofile_linux`` and ``conanprofile_windows`` available in the ``utils/ci/conan/recipe`` folder. - The compiler version and the path to the MSYS installation in these profiles can be adjusted to suit your specific environment, if necessary. - - .. note:: - - The recommended compiler is GCC. Usage of other compilers may lead to unexpected outcomes. - -#. To build and install the dependencies, run the script ``15_prepare_thirdParty.sh`` located in ``utils/ci/scripts``. - - .. tabs:: - - .. tab:: Windows - - #. One of the dependencies of |Op| is OpenScenarioEngine which requires OpenSCENARIO API and it in turn requires JAVA executable to build. - If Java executable is not available on your machine, download the java from `here <https://cdn.azul.com/zulu/bin/zulu11.50.19-ca-jdk11.0.12-win_x64.zip>`_ and extract the zip file - - #. If ``C:\Downloads\zulu`` is the extracted path, then add the variable JAVA_HOME to the environmental variable, and append the java executable path to the PATH environmental variable as below - - .. code-block:: - - export JAVA_HOME=/c/Downloads/zulu/ - export PATH=$PATH:/c/Downloads/zulu/bin - - #. The script ``15_prepare_thirdParty.sh`` also requires the variable PYTHON_WINDOWS_EXE set. This variable refers to the path of the python installation (For ex: It could be either on native Windows or on MSYS). - If the python is installed on MSYS then set the variable with the following command. - - .. code-block:: - - export PYTHON_WINDOWS_EXE=python3 - - #. Execute the script ``15_prepare_thirdParty.sh`` on MSYS - - .. code-block:: - - cd utils/ci/scripts - ./15_prepare_thirdParty.sh - - .. tab:: Linux - - #. Execute the script - - .. code-block:: - - cd utils/ci/scripts - ./15_prepare_thirdParty.sh - -#. Upon successful execution of the script, the dependencies will be installed under ``C:\deps`` on Windows and ``~/deps`` on Linux. +.. + ******************************************************************************* + Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _prerequisites: + +Installing Prerequisites +======================== + +Before being able to compile and run |op|, make sure to have all dependencies installed. +The third party software dependency of |op| can be divided into: + +- **Build environment**, which manages third party software and is used to compile and install |op| +- **Binary packages**, which can be easily installed via a package manager of the respective build environment +- **Source packages**, which need to be built from source code + +This section gives detailed information about the prerequisites and tested version. + +.. _building_under_windows: + + +Installing the Build Environment +-------------------------------- + +.. tabs:: + + .. tab:: Windows + + #. MSYS2 + + On Windows, the build environment of choice are :term:`MSYS2` programming tools. + :term:`MSYS2` is used to install some third-party software on which |op| depends. + Also, the unix-like shell simplifies c++ compilation on Windows. + For details, see `MSYS2 website <https://www.msys2.org/>`_. + + + .. _msys2: + + #. Download MSYS2 + + The latest 64-bit package is located in the Installation section of `MSYS2 website <https://www.msys2.org/>`_. + + + .. _msys2_installation: + + #. Install MSYS2 + + Run the downloaded executable and adjust suggested settings to your needs (defaults are fine). + + .. admonition:: Installation Path + + It is assumed that MSYS2 is installed in the directory ``C:\op\msys64``, as our CI scripts depend on this specific path. + If you choose to install MSYS2 in a different location, please ensure that you update any related configurations to reflect the new installation path, such as the conan profiles mentioned below." + + #. Understand the Build Environment + + MSYS2 provides three different environments, located in the MSYS2 installation directory: + + .. _fig_msys2_environments: + + .. figure:: _static/images/msys2.png + :align: center + :alt: MSYS2 Apps + + MSYS2 Environments + + - MSYS2 MSYS: Common environment, i.e. for package management + - MSYS2 MinGW 32-bit: A MinGW 32-bit environment + - MSYS2 MinGW 64-bit: A MinGW 64-bit environment + + .. warning:: + + | MSYS2 MinGW 64-bit is **the** |op| development environment and will be referred to as |mingw_shell|. + + .. _building_under_linux: + + .. tab:: Linux + + On Linux, no special build environment is needed. |Op| is developed under Debian 64-Bit, + which means that developing under a recent Ubuntu distribution will also work. + Debian Bookworm or Ubuntu 22.04 LTS is recommended. Debian uses ``apt`` (or ``apt-get``) as package managing system. + Details will be given in :ref:`binary_packages` and :ref:`building_prerequisites`. + + +.. _binary_packages: + +Installing the Binary Packages +------------------------------ + +The first set of dependencies we need to install in order to successfully compile |op| are the binary packages. These can be installed via appropiate package manager. + +.. tabs:: + + .. tab:: Windows (MSYS2) + + #. Open ``MSYS2 MinGW 64-bit`` and execute the following package manager ``pacman`` commands to update the package repository and upgrade system packages: + + .. code-block:: + + pacman -Syuu + + If the upgrade requires a restart of MSYS2, resume the upgrade by re-opening the shell and call: + + .. code-block:: + + pacman -Suu + + #. Required packages (can be specified in single command line if desired): + + .. literalinclude:: _static/msys2_packages.txt + :language: bash + + .. admonition:: Versions + + | MSYS2 provides rolling release versions, so some packages might be too "up-to-date". + + #. Required python packages + + .. code-block:: + + pip3 install "approvaltests==3.1.0" breathe "conan>2.0" empty-files exhale watchdog + + .. admonition:: GIT/SSH + + The |mingw_shell| does not access an already existing git installation or available SSH keys. + Make sure, to update/copy your configuration and credentials within the |mingw_shell| before working with git. + + .. tab:: Linux (Debian Bookworm) + + #. Update the package database on the system + + .. code-block:: + + apt update + + #. Upgrade existing software to latest version + + .. code-block:: + + apt upgrade + + #. Install required binary packages + + .. code-block:: + + # for simulator + apt -y install antlr4 + apt -y install build-essential + apt -y install ca-certificates + apt -y install ccache + apt -y install cmake + apt -y install clang-format-15 + apt -y install doxygen + apt -y install g++ + apt -y install gcc + apt -y install git + apt -y install googletest + apt -y install graphviz + apt -y install libboost-filesystem-dev + apt -y install libprotobuf-dev + apt -y install libantlr4-runtime4.9 + apt -y install libantlr4-runtime-java + apt -y install libantlr4-runtime-dev + apt -y install openjdk-17-jre + apt -y install pkg-config + apt -y install protobuf-compiler + apt -y install python3 + apt -y install python3-distutils + apt -y install python3-pip + apt -y install uuid-dev + + # python packages + pip3 install "approvaltests==3.1.0" empty-files "conan>2.0" watchdog + pip3 install breathe exhale myst-parser "sphinx==7.2.6" sphinx-rtd-theme sphinx-tabs sphinxcontrib-spelling + +**EndToEnd Test Framework** + +If end to end tests shall be executed, additional requirements have to be considered. +Please refer to :ref:`testing_endtoend` for more details on installation of the prerequisites and usage of the framework. + + +.. _building_prerequisites: + +Installing the Dependencies +--------------------------- + +This section describes how to compile prerequisites of |op| using conan (``conan>2.0``). + +The goal of this section is to build and install necessary packages into a suitable directory using conan. + +.. note:: + + If you are unfamiliar to ``conan`` or working with it, Section :ref:`building_with_conan` might give you a short introduction on conan in the scope of building dependencies for |op|. + +To keep the installation process of |op| and its dependencies as simple as possible, we recommend a specific folder structure. +If you strictly follow the recommended paths of this guide, no command modifications are necessary. + +.. tabs:: + + .. tab:: Notes for Windows + + - Recommended checkout path of |op| repository: ``C:\openpass`` + - Dependency directory within the |op| repository: ``C:\deps`` + - Recommended installation directory of |op|: ``C:\openPASS\bin\core`` + + .. tab:: Notes for Linux + + - Recommended checkout path of |op| repository: ``~/openpass`` + - Dependency directory within the |op| repository: ``~/deps`` + - Recommended installation directory of |op|: ``/usr/local/openPASS/bin/core`` + +The above directory structure will be created by following the instructions of this guide. + +#. Clone |Op| repository + + As described above, the checkout path of the repository is assumed to be the default ``openpass``. + + .. tabs:: + + .. tab:: Windows + + Start |mingw_shell| + + .. code-block:: + + cd /C/ + git clone https://gitlab.eclipse.org/eclipse/openpass/opSimulation.git openpass + + .. note:: + + As stated in :ref:`Building_under_windows`, the windows programming tools suffer from a `path length restriction`. + This error manifests as strange **file not found** compile errors. + It is therefore recommended to use a short path for source code checkout, e.g. a drive letter. + This can also be done by the windows command `subst <https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/subst>`_. + + .. tab:: Linux + + Start ``Bash`` shell + + .. code-block:: + + cd ~ + git clone https://gitlab.eclipse.org/eclipse/openpass/opSimulation.git openpass + +#. Navigate into repository and checkout main branch + + .. code-block:: + + cd openpass + git checkout main + +#. The essential packages necessary for |Op| are listed in the file ``utils/ci/conan/conanfile.txt``. + + If a required package is available on ConanCenter, they will be used directly. + For packages not available on ConanCenter, the respective recipes are stored in the ``utils/ci/conan/recipe`` folder. + + .. note:: + + It is important to have conancenter remote enabled. To check the status of conancenter and to enable, if it is disabled, execute the following commands + + .. code-block:: + + conan remote list + conan remote enable conancenter + +#. There are two Conan profiles ``conanprofile_linux`` and ``conanprofile_windows`` available in the ``utils/ci/conan/recipe`` folder, which will be automatically used in the next step. + + .. admonition:: Adjustments + + Check and adjust the compiler version and the path to the MSYS installation in these profiles before running the prepare scripts. + + .. note:: + + The recommended compiler is GCC. Usage of other compilers may lead to unexpected outcomes. + +#. To build and install the dependencies, run the script ``15_prepare_thirdParty.sh`` located in ``utils/ci/scripts``. + + .. tabs:: + + .. tab:: Windows + + #. One of the dependencies of |Op| is OpenScenarioEngine which requires OpenSCENARIO API and it in turn requires JAVA executable to build. + If Java executable is not available on your machine, download the java from `here <https://cdn.azul.com/zulu/bin/zulu11.50.19-ca-jdk11.0.12-win_x64.zip>`_ and extract the zip file + + #. If ``C:\Downloads\zulu`` is the extracted path, then add the variable JAVA_HOME to the environmental variable, and append the java executable path to the PATH environmental variable as below + + .. code-block:: + + export JAVA_HOME=/c/Downloads/zulu/ + export PATH=$PATH:/c/Downloads/zulu/bin + + #. The script ``15_prepare_thirdParty.sh`` also requires the variable PYTHON_EXECUTABLE set. This variable refers to the path of the python installation (For example: It could be either on native Windows or on MSYS). + If the python is installed on MSYS then set the variable with the following command. + + .. code-block:: + + export PYTHON_EXECUTABLE=python3 + + #. Execute the script ``15_prepare_thirdParty.sh`` on MSYS + + .. code-block:: + + cd utils/ci/scripts + ./15_prepare_thirdParty.sh + + .. tab:: Linux + + #. The script ``15_prepare_thirdParty.sh`` also requires the variable PYTHON_EXECUTABLE set. This variable refers to the path of the python installation. + + .. code-block:: + + export PYTHON_EXECUTABLE=python3 + + + #. Execute the script + + .. code-block:: + + cd utils/ci/scripts + ./15_prepare_thirdParty.sh + +#. Upon successful execution of the script, the dependencies will be installed under ``C:\deps`` on Windows and ``~/deps`` on Linux. diff --git a/content/html/_sources/installation_guide/30_install_openpass.rst.txt b/content/html/_sources/installation_guide/30_install_openpass.rst.txt index cc0245e5e7c72a5224ec58666da5934bd183fb6d..2930afb30c8edec8d751598b310c8c604c2c118c 100644 --- a/content/html/_sources/installation_guide/30_install_openpass.rst.txt +++ b/content/html/_sources/installation_guide/30_install_openpass.rst.txt @@ -1,132 +1,132 @@ -.. - ******************************************************************************* - Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _download_and_install_openpass: - -Installing openPASS -=================== - -This section describes how to compile and run |op|. Please make sure that all prerequisites have been properly installed according to section :ref:`Prerequisites`. -If you have strictly followed the instructions, the installed dependencies should be located on your machine under -``C:\deps`` on **Windows** and ``~/deps`` on **Linux**. If there is a path deviation, -the following commands must be adjusted. - -.. note:: - - If you are unfamiliar to ``CMake`` or working within a |mingw_shell|, Section :ref:`cmake` and :ref:`MSYS2 <msys2>` might give you a short introduction on these topics in the scope of building |op| itself. - -#. Navigate back into repository - - .. tabs:: - - .. tab:: Windows - - .. code-block:: - - cd /C/openpass - - .. tab:: Linux - - .. code-block:: - - cd ~/openpass - -#. Create build directory and navigate into it - - .. code-block:: - - mkdir build - cd build - -#. Prepare build - - |Op| links against shared libraries, which are located in the paths specified by ``CMAKE_PREFIX_PATH``. - To be able to install |Op| with resolved dependencies, all libraries found under the paths have to be copied right next to the executable during the installation step. - This is done by setting ``INSTALL_EXTRA_RUNTIME_DEPS=ON``. If you have followed the instructions strictly, no changes are necessary. - - .. tabs:: - - .. tab:: Windows - - .. code-block:: - - cmake -G "MSYS Makefiles" \ - -D CMAKE_PREFIX_PATH="C:/deps/direct_deploy/fmilibrary;C:/deps/direct_deploy/open-simulation-interface;C:/deps/direct_deploy/protobuf;C:/deps/direct_deploy/protobuf-shared;C:/deps/direct_deploy/units;C:/deps/direct_deploy/mantleapi;C:/deps/direct_deploy/yase;C:/deps/direct_deploy/openscenario_api;C:/deps/direct_deploy/openscenario_engine;C:/deps/direct_deploy/gtest;C:/deps/direct_deploy/boost;C:/deps/direct_deploy/qt;C:/deps/direct_deploy/minizip;C:/deps;C:/msys64/mingw64/bin;" \ - -D CMAKE_INSTALL_PREFIX=C:/openPASS/bin/core \ - -D CMAKE_BUILD_TYPE=Release \ - -D USE_CCACHE=ON \ - -D WITH_DEBUG_POSTFIX=OFF \ - -D OPENPASS_ADJUST_OUTPUT=OFF \ - -D INSTALL_EXTRA_RUNTIME_DEPS=ON \ - .. - - .. note:: - - - By specifying ``INSTALL_EXTRA_RUNTIME_DEPS=ON``, runtime dependencies will be copied to the installation directory when running ``make install``. This applies to all dependencies located in the paths specified in ``CMAKE_PREFIX_PATH``. - - Make sure that the path ``C:/msys64/mingw64/bin`` is the last path in the CMAKE_PREFIX_PATH. Otherwise cmake might find and use local versions of required libraries instead of the ones listed in the thirdparties folder. - - .. tab:: Linux - - .. code-block:: - - cmake -D CMAKE_PREFIX_PATH="$HOME/deps/fmilibrary;$HOME/deps/open-simulation-interface;$HOME/deps/protobuf;$HOME/deps/protobuf-shared;$HOME/deps/units;$HOME/deps/mantleapi;$HOME/deps/yase;$HOME/deps/openscenario_api;$HOME/deps/openscenario_engine;$HOME/deps/gtest;$HOME/deps/boost;$HOME/deps/qt;$HOME/deps/minizip;C:/deps" \ - -D CMAKE_INSTALL_PREFIX=/usr/local/openPASS/bin/core \ - -D CMAKE_BUILD_TYPE=Release \ - -D USE_CCACHE=ON \ - -D WITH_DEBUG_POSTFIX=OFF \ - -D OPENPASS_ADJUST_OUTPUT=OFF \ - -D INSTALL_EXTRA_RUNTIME_DEPS=ON \ - .. - - .. note:: - - - To install in the mentioned CMAKE_INSTALL_PREFIX path, create ``openPASS`` folder under ``/usr/local`` using ``sudo mkdir /usr/local/openPASS`` - And for the user to access the folder, modify the permissions using ``sudo chown <uesrname>:<username> /usr/local/openPASS`` - - By specifying ``INSTALL_EXTRA_RUNTIME_DEPS=ON``, runtime dependencies will be copied to the installation directory when running ``make install``. This applies to all dependencies located in the paths specified in ``CMAKE_PREFIX_PATH``. - - If you need to adjust paths and options based on your system and needs, you need to pay attention on quotations ``" "``, when using it in console (see :ref:`Cmake_prefix_path`). - And also you need to be careful with it when you configuring it under VSCode (see :ref:`vscode`). - - .. note:: For a build that goes beyond the default settings, see :ref:`Cmake` for more available variables and options that can be set. - - -#. Optional: Build and execute unit tests - - Starting from ``openpass/build``: - - .. code-block:: - - make test ARGS="--output-on-failure -j3" - - .. note:: - - ARGS is optional, but recommended. - Adjust parallel build flag ``-j3`` based on your system. - -#. Build documentation - - Starting from ``openpass/build``: - - .. code-block:: - - make doc - - .. note:: Currently the documentation must be built before |op| can be successfully installed if the CMake variable `WITH_DOC=ON` (default). - -#. Build simulation core - - Starting from ``openpass/build``: - - .. code-block:: - - make -j3 install - - .. note:: Again, adjust parallel build flag ``-j3`` based on your system. +.. + ******************************************************************************* + Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _download_and_install_openpass: + +Installing openPASS +=================== + +This section describes how to compile and run |op|. Please make sure that all prerequisites have been properly installed according to section :ref:`Prerequisites`. +If you have strictly followed the instructions, the installed dependencies should be located on your machine under +``C:\deps`` on **Windows** and ``~/deps`` on **Linux**. If there is a path deviation, +the following commands must be adjusted. + +.. note:: + + If you are unfamiliar to ``CMake`` or working within a |mingw_shell|, Section :ref:`cmake` and :ref:`MSYS2 <msys2>` might give you a short introduction on these topics in the scope of building |op| itself. + +#. Navigate back into repository + + .. tabs:: + + .. tab:: Windows + + .. code-block:: + + cd /C/openpass + + .. tab:: Linux + + .. code-block:: + + cd ~/openpass + +#. Create build directory and navigate into it + + .. code-block:: + + mkdir build + cd build + +#. Prepare build + + |Op| links against shared libraries, which are located in the paths specified by ``CMAKE_PREFIX_PATH``. + To be able to install |Op| with resolved dependencies, all libraries found under the paths have to be copied right next to the executable during the installation step. + This is done by setting ``INSTALL_EXTRA_RUNTIME_DEPS=ON``. If you have followed the instructions strictly, no changes are necessary. + + .. tabs:: + + .. tab:: Windows + + .. code-block:: + + cmake -G "MSYS Makefiles" \ + -D CMAKE_PREFIX_PATH="C:/deps/direct_deploy/fmilibrary;C:/deps/direct_deploy/open-simulation-interface;C:/deps/direct_deploy/protobuf;C:/deps/direct_deploy/protobuf-shared;C:/deps/direct_deploy/units;C:/deps/direct_deploy/mantleapi;C:/deps/direct_deploy/yase;C:/deps/direct_deploy/openscenario_api;C:/deps/direct_deploy/openscenario_engine;C:/deps/direct_deploy/gtest;C:/deps/direct_deploy/boost;C:/deps/direct_deploy/minizip;C:/deps;C:/msys64/mingw64/bin;" \ + -D CMAKE_INSTALL_PREFIX=C:/openPASS/bin/core \ + -D CMAKE_BUILD_TYPE=Release \ + -D USE_CCACHE=ON \ + -D WITH_DEBUG_POSTFIX=OFF \ + -D OPENPASS_ADJUST_OUTPUT=OFF \ + -D INSTALL_EXTRA_RUNTIME_DEPS=ON \ + .. + + .. note:: + + - By specifying ``INSTALL_EXTRA_RUNTIME_DEPS=ON``, runtime dependencies will be copied to the installation directory when running ``make install``. This applies to all dependencies located in the paths specified in ``CMAKE_PREFIX_PATH``. + - Make sure that the path ``C:/msys64/mingw64/bin`` is the last path in the CMAKE_PREFIX_PATH. Otherwise cmake might find and use local versions of required libraries instead of the ones listed in the thirdparties folder. + + .. tab:: Linux + + .. code-block:: + + cmake -D CMAKE_PREFIX_PATH="$HOME/deps/fmilibrary;$HOME/deps/open-simulation-interface;$HOME/deps/protobuf;$HOME/deps/protobuf-shared;$HOME/deps/units;$HOME/deps/mantleapi;$HOME/deps/yase;$HOME/deps/openscenario_api;$HOME/deps/openscenario_engine;$HOME/deps/gtest;$HOME/deps/boost;$HOME/deps/minizip;C:/deps" \ + -D CMAKE_INSTALL_PREFIX=/usr/local/openPASS/bin/core \ + -D CMAKE_BUILD_TYPE=Release \ + -D USE_CCACHE=ON \ + -D WITH_DEBUG_POSTFIX=OFF \ + -D OPENPASS_ADJUST_OUTPUT=OFF \ + -D INSTALL_EXTRA_RUNTIME_DEPS=ON \ + .. + + .. note:: + + - To install in the mentioned CMAKE_INSTALL_PREFIX path, create ``openPASS`` folder under ``/usr/local`` using ``sudo mkdir /usr/local/openPASS`` + And for the user to access the folder, modify the permissions using ``sudo chown <uesrname>:<username> /usr/local/openPASS`` + - By specifying ``INSTALL_EXTRA_RUNTIME_DEPS=ON``, runtime dependencies will be copied to the installation directory when running ``make install``. This applies to all dependencies located in the paths specified in ``CMAKE_PREFIX_PATH``. + - If you need to adjust paths and options based on your system and needs, you need to pay attention on quotations ``" "``, when using it in console (see :ref:`Cmake_prefix_path`). + And also you need to be careful with it when you configuring it under VSCode (see :ref:`vscode`). + + .. note:: For a build that goes beyond the default settings, see :ref:`Cmake` for more available variables and options that can be set. + + +#. Optional: Build and execute unit tests + + Starting from ``openpass/build``: + + .. code-block:: + + make test ARGS="--output-on-failure -j3" + + .. note:: + + ARGS is optional, but recommended. + Adjust parallel build flag ``-j3`` based on your system. + +#. Build documentation + + Starting from ``openpass/build``: + + .. code-block:: + + make doc + + .. note:: Currently the documentation must be built before |op| can be successfully installed if the CMake variable `WITH_DOC=ON` (default). + +#. Build simulation core + + Starting from ``openpass/build``: + + .. code-block:: + + make -j3 install + + .. note:: Again, adjust parallel build flag ``-j3`` based on your system. diff --git a/content/html/_sources/installation_guide/50_further_guidance.rst.txt b/content/html/_sources/installation_guide/50_further_guidance.rst.txt index c77bfd62dc137b9e30c89e582d905f1e02f77ccd..46cc5578f59e6e456d95d01ce769d04bd3758b2c 100644 --- a/content/html/_sources/installation_guide/50_further_guidance.rst.txt +++ b/content/html/_sources/installation_guide/50_further_guidance.rst.txt @@ -1,27 +1,27 @@ -.. - ******************************************************************************* - Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -Further Guidance -================ - -See also section :ref:`ide_support` - -.. toctree:: - :caption: Customizing - :glob: - :maxdepth: 1 - - further_guidance/* - - - - - +.. + ******************************************************************************* + Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +Further Guidance +================ + +See also section :ref:`ide_support` + +.. toctree:: + :caption: Customizing + :glob: + :maxdepth: 1 + + further_guidance/* + + + + + diff --git a/content/html/_sources/installation_guide/60_conan.rst.txt b/content/html/_sources/installation_guide/60_conan.rst.txt index e01f1911d805080bc3d74ef3243ff986ad2484c3..6ae1f3f5393cb2a47ea59737cfae0d57f970535d 100644 --- a/content/html/_sources/installation_guide/60_conan.rst.txt +++ b/content/html/_sources/installation_guide/60_conan.rst.txt @@ -1,136 +1,136 @@ -.. - ******************************************************************************* - Copyright (c) 2021 ITK Engineering GmbH - 2023-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _building_with_conan: - -Building with Conan -=================== - -General -------- - -Conan is an open source, decentralized and multi-platform package manager to create and share native binaries. - -To learn more about Conan itself you can visit `Conan <https://conan.io/>`_. - -Conan is used in the |op| project to create and manage the binaries of the used ThirdParty libraries. - -Additional Prerequisites --------------------------- - -To be able to work with Conan it is necessary to add additional packages. - -.. tabs:: - - .. tab:: Windows (MSYS2) - - .. code-block:: bash - - pip install "conan>2.0" - - .. tab:: Linux (Debian Bookworm) - - .. code-block:: bash - - apt install "conan>2.0" - - pip install "conan>2.0" - -Conan Recipes -------------- - -A *recipe* is python file, which is used by conan to build and create a package. -In this file there are several hooks available, which can be used for several tasks. -E.g. Retrieving the source files, building from source, configuring dependencies, packaging, etc. -Visit `Conan <https://conan.io/>`_. for detailed information about *recipes*. - -Conan Create ------------- - -The `conan create` command is used to create Conan packages from source code. It involves building the source code, packaging the resulting binaries and artifacts, and generating the necessary metadata to publish the package. -The basic syntax of the command is as follows: - -.. code-block:: bash - - $ conan create <path_to_recipe> --name $pkg --version $version --user $user --channel $channel --build=missing $packageOptions -pr:a "$conanprofile" - -- `<path_to_source>`: The path to the conan recipe of that corresponding package. -- `--name $pkg`: Specifies the name of the package being created. $pkg is a placeholder for the actual package name. -- `--version $version`: Specifies the version of the package being created. $version is a placeholder for the actual version number. -- `--user $user`: Specifies the username of the package creator or owner. $user is a placeholder for the actual username. -- `--channel $channel`: Specifies the channel or repository where the package will be published. $channel is a placeholder for the actual channel name. -- `--build=missing`: Instructs Conan to build the package if its dependencies are missing or outdated. This ensures that all required dependencies are available and up to date before building the package. -- `$packageOptions`: Optional package-specific options that can be passed to the Conan recipe. These options can customize the build process or package configuration according to user requirements. -- `-pr:a "$conanprofile"`: Specifies a profile ($conanprofile) to be used during package creation. Profiles define the build environment and configuration settings for building packages. The -pr:a flag tells Conan to apply this profile specifically for building the package. - -.. code-block:: bash - - $ conan create . --name openscenario_engine --version 0.1 --user openpass --channel testing --build=missing -pr:a default - -This command will build the package `openscenario_engine` with version `1.0` under the user `openpass` and channel `testing`. - -**Optional Settings** - -The `-o` option allows you to pass optional settings to the `conan create` command, which can be used to customize the build process of the package. These settings are defined in the `conanfile.py` recipe. -For example, you can specify build options, compiler flags, or any other configuration settings that influence the package creation process. - -.. code-block:: bash - - $ conan create . --name openscenario_engine --version 0.1 --user openpass --channel testing --build=missing -o MantleAPI_version=0.1 -o Yase_version=0.1 -pr:a default - -In this example, the `-o` option is used to set the `MantleAPI_version` and `Yase_version` build options for the `openscenario_engine` package. These options will be considered during the package creation process. - -.. note:: - - For the packages MantleAPI, Yase, openscenario_api and openscenario_engine corresponding commit ids can be used instead of version when creating the package - -Conan Install -------------- - -The `conan install` command is used to install Conan packages from a Conan recipe (a `conanfile.py` file) and its associated dependencies. It resolves and fetches the required packages from a remote Conan repository or local conan cache and installs them in the specified target location. -The basic syntax of the command is as follows: - -.. code-block:: bash - - $ conan install --requires=<pkg/version@user/channel> --build <missing|outdated> --deployer=<generator> -of=<install-folder-folder> -g CMakeDeps -pr:a "$conanprofile" - -- `<pkg/version@user/channel>`: The user and channel specify the namespace under which the package with the corresponding version will be built. -- `-g <generator>`: Specifies the build system generator (e.g., `CMakeDeps`) for generating build files. -- `-s <setting=value>`: Overrides a Conan setting defined in the recipe with the given value. -- `--build <missing|outdated>`: Specifies whether to build missing or outdated packages. -- `-pr:a "$conanprofile"`: Specifies a profile ($conanprofile) to be used during package creation. Profiles define the build environment and configuration settings for building packages. The -pr:a flag tells Conan to apply this profile specifically for building the package. - -**Generate Deployment Files** - -The `-g direct_deploy` option with the `conan install` command is used to generate deployment-related files and scripts for installing and running the package on a target system. -These files can include packaging scripts, installation scripts, and other artifacts required for deploying the package to a specific environment. - -.. code-block:: bash - - $ conan install openscenario_engine/0.1@openpass/testing -g direct_deploy --install-folder="my/installation/path" - -This command will deploy the package `openscenario_engine/0.1@openpass/testing` at the installation path. - -.. note:: - - There are several additional commands, arguments and fields for these commands available. - Please see `Conan Docs <https://docs.conan.io/en/latest/>`_ for additional information. - -Build only ThirdParties ------------------------ - -|op| requires number of third parties libraries and they are listed in ``conanfile.txt``. To install all the dependencies, the script ``15_prepare_thirdParty.sh`` can be used. - -The exact list of dependency can be found below. - -.. literalinclude:: /../../../repo/utils/ci/conan/conanfile.txt - :language: text +.. + ******************************************************************************* + Copyright (c) 2021 ITK Engineering GmbH + 2023-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _building_with_conan: + +Building with Conan +=================== + +General +------- + +Conan is an open source, decentralized and multi-platform package manager to create and share native binaries. + +To learn more about Conan itself you can visit `Conan <https://conan.io/>`_. + +Conan is used in the |op| project to create and manage the binaries of the used ThirdParty libraries. + +Additional Prerequisites +-------------------------- + +To be able to work with Conan it is necessary to add additional packages. + +.. tabs:: + + .. tab:: Windows (MSYS2) + + .. code-block:: bash + + pip install "conan>=2.2.0" + + .. tab:: Linux (Debian Bookworm) + + .. code-block:: bash + + apt install "conan>=2.2.0" + + pip install "conan>2.0" + +Conan Recipes +------------- + +A *recipe* is python file, which is used by conan to build and create a package. +In this file there are several hooks available, which can be used for several tasks. +E.g. Retrieving the source files, building from source, configuring dependencies, packaging, etc. +Visit `Conan <https://conan.io/>`_. for detailed information about *recipes*. + +Conan Create +------------ + +The `conan create` command is used to create Conan packages from source code. It involves building the source code, packaging the resulting binaries and artifacts, and generating the necessary metadata to publish the package. +The basic syntax of the command is as follows: + +.. code-block:: bash + + $ conan create <path_to_recipe> --name $pkg --version $version --user $user --channel $channel --build=missing $packageOptions -pr:a "$conanprofile" + +- `<path_to_source>`: The path to the conan recipe of that corresponding package. +- `--name $pkg`: Specifies the name of the package being created. $pkg is a placeholder for the actual package name. +- `--version $version`: Specifies the version of the package being created. $version is a placeholder for the actual version number. +- `--user $user`: Specifies the username of the package creator or owner. $user is a placeholder for the actual username. +- `--channel $channel`: Specifies the channel or repository where the package will be published. $channel is a placeholder for the actual channel name. +- `--build=missing`: Instructs Conan to build the package if its dependencies are missing or outdated. This ensures that all required dependencies are available and up to date before building the package. +- `$packageOptions`: Optional package-specific options that can be passed to the Conan recipe. These options can customize the build process or package configuration according to user requirements. +- `-pr:a "$conanprofile"`: Specifies a profile ($conanprofile) to be used during package creation. Profiles define the build environment and configuration settings for building packages. The -pr:a flag tells Conan to apply this profile specifically for building the package. + +.. code-block:: bash + + $ conan create . --name openscenario_engine --version 0.1 --user openpass --channel testing --build=missing -pr:a default + +This command will build the package `openscenario_engine` with version `1.0` under the user `openpass` and channel `testing`. + +**Optional Settings** + +The `-o` option allows you to pass optional settings to the `conan create` command, which can be used to customize the build process of the package. These settings are defined in the `conanfile.py` recipe. +For example, you can specify build options, compiler flags, or any other configuration settings that influence the package creation process. + +.. code-block:: bash + + $ conan create . --name openscenario_engine --version 0.1 --user openpass --channel testing --build=missing -o MantleAPI_version=0.1 -o Yase_version=0.1 -pr:a default + +In this example, the `-o` option is used to set the `MantleAPI_version` and `Yase_version` build options for the `openscenario_engine` package. These options will be considered during the package creation process. + +.. note:: + + For the packages MantleAPI, Yase, openscenario_api and openscenario_engine corresponding commit ids can be used instead of version when creating the package + +Conan Install +------------- + +The `conan install` command is used to install Conan packages from a Conan recipe (a `conanfile.py` file) and its associated dependencies. It resolves and fetches the required packages from a remote Conan repository or local conan cache and installs them in the specified target location. +The basic syntax of the command is as follows: + +.. code-block:: bash + + $ conan install --requires=<pkg/version@user/channel> --build <missing|outdated> --deployer=<generator> -of=<install-folder-folder> -g CMakeDeps -pr:a "$conanprofile" + +- `<pkg/version@user/channel>`: The user and channel specify the namespace under which the package with the corresponding version will be built. +- `-g <generator>`: Specifies the build system generator (e.g., `CMakeDeps`) for generating build files. +- `-s <setting=value>`: Overrides a Conan setting defined in the recipe with the given value. +- `--build <missing|outdated>`: Specifies whether to build missing or outdated packages. +- `-pr:a "$conanprofile"`: Specifies a profile ($conanprofile) to be used during package creation. Profiles define the build environment and configuration settings for building packages. The -pr:a flag tells Conan to apply this profile specifically for building the package. + +**Generate Deployment Files** + +The `-g direct_deploy` option with the `conan install` command is used to generate deployment-related files and scripts for installing and running the package on a target system. +These files can include packaging scripts, installation scripts, and other artifacts required for deploying the package to a specific environment. + +.. code-block:: bash + + $ conan install openscenario_engine/0.1@openpass/testing -g direct_deploy --install-folder="my/installation/path" + +This command will deploy the package `openscenario_engine/0.1@openpass/testing` at the installation path. + +.. note:: + + There are several additional commands, arguments and fields for these commands available. + Please see `Conan Docs <https://docs.conan.io/en/latest/>`_ for additional information. + +Build only ThirdParties +----------------------- + +|op| requires number of third parties libraries and they are listed in ``conanfile.txt``. To install all the dependencies, the script ``15_prepare_thirdParty.sh`` can be used. + +The exact list of dependency can be found below. + +.. literalinclude:: /../../../repo/utils/ci/conan/conanfile.txt + :language: text diff --git a/content/html/_sources/installation_guide/further_guidance/10_cmake.rst.txt b/content/html/_sources/installation_guide/further_guidance/10_cmake.rst.txt index 73ccbafe4ca7a4355447b7c8febbe4fe742791c2..cec0cda17a052947265c107e64776e9404ed8cbf 100644 --- a/content/html/_sources/installation_guide/further_guidance/10_cmake.rst.txt +++ b/content/html/_sources/installation_guide/further_guidance/10_cmake.rst.txt @@ -1,288 +1,288 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _cmake: - -CMake Variables and Options -=========================== - -|Op| uses CMake as default cross-platform build environment. -CMake varibles describe configuration settings, which can be overriden by the user. -To override any build configuration, the CMake variables have to be provided when CMake gets run. - -If available, recommended options are shown in **bold**. - -The following guide is structered as follows: The first part describes the available variables and options. -There are standard CMake variables which are marked with the prefix ``CMAKE_`` and other defined variables -used internally to further specify the build of |op|. As the result of a proper CMake call is a Makefile, -which then acts as base for the actual build using ``make``, the second part describes best practices around the make commands using ``make``. - -Note, this guide approaches CMake from the *command line perspective*. -Adjustments for VSCode can be found under :ref:`vscode`. - -.. admonition:: See also - - CMake Documentation: https://cmake.org/cmake/help/latest/index.html - -CMake Generator ---------------- - -This is only important for **Windows**. -To generate MSYS compatible makefiles use ``-G "MSYS Makefiles"`` (c.f. :ref:`MSYS2 <msys2>`). - -.. _cmake_prefix_path: - -CMAKE_PREFIX_PATH ------------------ - -This variable makes the prerequisites available to |op| as semicolon-separated list of directories, -specifying installation prefixes to be searched by cmake. -Please refer to :ref:`Prerequisites` for the list of mandatory packages and libraries. -CMake will issue an error, if one prerequisite is missing. - -Generally, cmake recognizes installed libraries (e.g. googletest) on its own. -By setting an explicit ``CMAKE_PREFIX_PATH`` for a library, it is possible to override the system libraries. -Use this, when an exact library version, or a customized library shall be used. - -.. note:: - - In the following example, non-standard libraries are assumed to be in the folder ``deps/thirdParty``. - -**Example** (system libraries **not** set): - -.. tabs:: - - .. tab:: Windows - - .. code-block:: bash - - cmake -G "MSYS Makefiles" - -D CMAKE_PREFIX_PATH="\ - /mingw64/bin;\ - $PWD/../deps/thirdParty/win64/FMILibrary;\ - $PWD/../deps/thirdParty/win64/osi;\ - $PWD/../deps/thirdParty/win64/minizip;\ - -D <other variables>\ - .. - - .. tab:: Linux - - .. code-block:: bash - - cmake -D CMAKE_PREFIX_PATH=\ - $PWD/../deps/thirdParty/linux64/FMILibrary\;\ - $PWD/../deps/thirdParty/linux64/osi\;\ - $PWD/../deps/thirdParty/linux64/minizip\;\ - -D <other variables> \ - .. - - .. warning:: The semicolon ``;`` needs to be escaped (``\;``) unless the string is quoted. - -.. note:: Please also read through :ref:`cmake_openpass_variables` for further useful hints, e.g. why explicitly setting the MinGW path might be a necessary in some situations. - -Installation directory - -CMAKE_INSTALL_PREFIX --------------------- - -- Install directory used by install, when invoking ``make install`` -- Recommendation: ``/openPASS/bin/core`` (Linux) | ``C:/openPASS/bin/core`` (Windows) - -CMAKE_WITH_DEBUG_POSTIX ------------------------ - -- Used only in conjunction with *Visual Studio Debug Builds* (MSVC), as it distinguishes release/debug DLLs by a postfix ``d``. -- Options: **OFF** | ON - -CMAKE_BUILD_TYPE ----------------- - -- Specifies the build type on single-configuration generators. -- Typical: Release | Debug -- See: https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html - -CMAKE_C_COMPILER ----------------- - -- Options: **gcc-13** | gcc-12 | gcc-11 | gcc-10 | gcc-9 -- See: https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html - -CMAKE_CXX_COMPILER ------------------- - -- Options: **gcc-13** | gcc-12 | gcc-11 | gcc-10 | gcc-9 -- See: https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html - -CMAKE_OBJECT_PATH_MAX ---------------------- - -- Under windows, errors from too long paths could be prevented by setting this value to 255 (maximum). -- See: https://cmake.org/cmake/help/latest/variable/CMAKE_OBJECT_PATH_MAX.html - -.. _cmake_openpass_variables: - -USE_CCACHE ----------- - -- Activates ccache (see :ref:`prerequisites_ccache`) -- Options: **ON** | OFF - -WITH_SIMCORE ------------- - -- Build OSI based scenario simulation, also know as openPASS simulation core (opSimulation). -- Options: OFF | **ON** - -WITH_DOC --------- - -- Build sphinx based documentation -- Options: OFF | **ON** - -WITH_API_DOC ------------- - -- Build sphinx based developer documentation -- Options: **OFF** | ON - -.. note:: Automatically activates ``WITH_DOC`` if ON - -.. warning:: Building the API doc takes pretty long. - -WITH_TESTS ----------- - -- Build unit tests -- Options: OFF | **ON** - -WITH_COVERAGE -------------- - -.. warning:: - - This option turns off optimization, which might make execution considerably slower. - In exchange, a coverage `<test_name>.info`` and HTML reports will be generated in a folder called ``coverage`` within the cmake build folder. - -- For each registered test target (see ``add_openpass_target`` in ``./cmake/HelperMacros.cmake``) two more targets are added. - One for code coverage analysis using ``lcov`` (target ``<test_name>_coverage``). - A second for HTML report generation using ``genhtml`` (target ``<test_name>_html``). -- In addition to the individual tests, an overall test target ``TestCoverageReport`` is created. - When invoked, it will execute all individual tests and combine their coverage data into a single report found in ``coverage/TestCoverageReport``. -- Options: **OFF** | ON -- Requires: - - - ``WITH_TESTS=ON`` - - gcov, lcov, fastcov (python) - -- Parameterization: - - - ``COVERAGE_EXCLUDES`` allows to remove source files from report (substring matching), i.e. ``/usr/include``. - - Multiple paths have to be separated by spaces. - - Paths specified through ``CMAKE_PREFIX_PATH`` and ``tests/`` are filtered by default. - - .. warning:: - - Excluding too many paths or files may lead to an empty ``<test_name>.info`` file, causing the HTML target to fail. - -WITH_ENDTOEND_TESTS -------------------- - -- Enables execution of end to end tests using :ref:`testing_endtoend`. -- Tests can be ran by executing ``make install && make pyOpenPASS`` -- Options: **OFF** | ON - -OPENPASS_ADJUST_OUTPUT ----------------------- - -- Adjusts if builds are executed in the (CMake default) folder ``build`` or directly in the specified install directory. - Latter let you skip the call ``make install``. -- Options: **OFF** | ON - -.. warning:: - - When skipping ``make install``, dependencies are not copied into the output folder, which could cause crashes due to missing or outdated libraries. - -.. _cmake_protobuf_arenas: - -WITH_PROTOBUF_ARENA -------------------- - -- | *Arena allocation is a C++-only feature that helps you optimize your memory usage and improve performance when working with protocol buffers.* - | (from https://developers.google.com/protocol-buffers/docs/reference/arenas) -- Options: **ON** | OFF - -.. note:: - - This feature is only available, if protobuf related libraries are also compiled with arenas. - Fortunately, the implementation falls back to regular allocation if not, which simply results in less performance. - -INSTALL_SYSTEM_RUNTIME_DEPS ---------------------------- - -- during installation step, this configuration copies detected system runtime dependencies to install directory (i.e. MinGW system libraries) -- Options: ON | **OFF** - -.. warning:: - - Under windows, automatic resolution might fail if other MinGW instances are installed. - As several programs use MinGW under the hood, it is recommended to set the used MinGW path in the CMAKE_PREFIX_PATH explicitly: - - .. code-block:: bash - - CMAKE_PREFIX_PATH = mingw64/bin;\... - -INSTALL_EXTRA_RUNTIME_DEPS --------------------------- - -- during installation step, this configuration copies detected runtime dependencies (i.e. required shared libraries) specified in `CMAKE_PREFIX_PATH` to install directory -- Options: ON | **OFF** - -INSTALL_EXAMPLES ----------------- - -- If `ON`, **opSimulation** configuration examples are copied to the `examples` folder inside the installation directory (during the installation step). -- Options: **ON** | OFF - -Make Targets/Commands ---------------------- - -|Op| defines build targets by major modules or components, such as ``opSimulation`` or ``Algorithm_FmuWrapper``. -After calling CMake, simply build |op| by calling ``make``. - -.. admonition:: See also - - https://www.tutorialspoint.com/unix_commands/make.htm - -Build and Install -~~~~~~~~~~~~~~~~~ - -- ``make`` - -- ``make install`` - - .. warning: - - - Right now, there is still an issue with an additinal ``bin`` folder. - After installing, the content of the `./bin` folder needs to be copied into `.`. - - - Make install seems to have troubles on some systems when copying the dependencies. - Check if the libraries of e.g. OSI are copied into the execution directory of the core. - - - MinGW system libraries are not a dependency visible to make. - -- ``make <target>``: Build a single target - -Executing Tests -~~~~~~~~~~~~~~~ - -- All tests: ``make test ARGS="--output-on-failure -j3"`` -- Single test: ``make test opSimulation_Tests ARGS="--output-on-failure -j3"`` +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _cmake: + +CMake Variables and Options +=========================== + +|Op| uses CMake as default cross-platform build environment. +CMake varibles describe configuration settings, which can be overriden by the user. +To override any build configuration, the CMake variables have to be provided when CMake gets run. + +If available, recommended options are shown in **bold**. + +The following guide is structered as follows: The first part describes the available variables and options. +There are standard CMake variables which are marked with the prefix ``CMAKE_`` and other defined variables +used internally to further specify the build of |op|. As the result of a proper CMake call is a Makefile, +which then acts as base for the actual build using ``make``, the second part describes best practices around the make commands using ``make``. + +Note, this guide approaches CMake from the *command line perspective*. +Adjustments for VSCode can be found under :ref:`vscode`. + +.. admonition:: See also + + CMake Documentation: https://cmake.org/cmake/help/latest/index.html + +CMake Generator +--------------- + +This is only important for **Windows**. +To generate MSYS compatible makefiles use ``-G "MSYS Makefiles"`` (c.f. :ref:`MSYS2 <msys2>`). + +.. _cmake_prefix_path: + +CMAKE_PREFIX_PATH +----------------- + +This variable makes the prerequisites available to |op| as semicolon-separated list of directories, +specifying installation prefixes to be searched by cmake. +Please refer to :ref:`Prerequisites` for the list of mandatory packages and libraries. +CMake will issue an error, if one prerequisite is missing. + +Generally, cmake recognizes installed libraries (e.g. googletest) on its own. +By setting an explicit ``CMAKE_PREFIX_PATH`` for a library, it is possible to override the system libraries. +Use this, when an exact library version, or a customized library shall be used. + +.. note:: + + In the following example, non-standard libraries are assumed to be in the folder ``deps/thirdParty``. + +**Example** (system libraries **not** set): + +.. tabs:: + + .. tab:: Windows + + .. code-block:: bash + + cmake -G "MSYS Makefiles" + -D CMAKE_PREFIX_PATH="\ + /mingw64/bin;\ + $PWD/../deps/thirdParty/win64/FMILibrary;\ + $PWD/../deps/thirdParty/win64/osi;\ + $PWD/../deps/thirdParty/win64/minizip;\ + -D <other variables>\ + .. + + .. tab:: Linux + + .. code-block:: bash + + cmake -D CMAKE_PREFIX_PATH=\ + $PWD/../deps/thirdParty/linux64/FMILibrary\;\ + $PWD/../deps/thirdParty/linux64/osi\;\ + $PWD/../deps/thirdParty/linux64/minizip\;\ + -D <other variables> \ + .. + + .. warning:: The semicolon ``;`` needs to be escaped (``\;``) unless the string is quoted. + +.. note:: Please also read through :ref:`cmake_openpass_variables` for further useful hints, e.g. why explicitly setting the MinGW path might be a necessary in some situations. + +Installation directory + +CMAKE_INSTALL_PREFIX +-------------------- + +- Install directory used by install, when invoking ``make install`` +- Recommendation: ``/openPASS/bin/core`` (Linux) | ``C:/openPASS/bin/core`` (Windows) + +CMAKE_WITH_DEBUG_POSTIX +----------------------- + +- Used only in conjunction with *Visual Studio Debug Builds* (MSVC), as it distinguishes release/debug DLLs by a postfix ``d``. +- Options: **OFF** | ON + +CMAKE_BUILD_TYPE +---------------- + +- Specifies the build type on single-configuration generators. +- Typical: Release | Debug +- See: https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html + +CMAKE_C_COMPILER +---------------- + +- Options: **gcc-13** | gcc-12 | gcc-11 | gcc-10 | gcc-9 +- See: https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html + +CMAKE_CXX_COMPILER +------------------ + +- Options: **gcc-13** | gcc-12 | gcc-11 | gcc-10 | gcc-9 +- See: https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html + +CMAKE_OBJECT_PATH_MAX +--------------------- + +- Under windows, errors from too long paths could be prevented by setting this value to 255 (maximum). +- See: https://cmake.org/cmake/help/latest/variable/CMAKE_OBJECT_PATH_MAX.html + +.. _cmake_openpass_variables: + +USE_CCACHE +---------- + +- Activates ccache (see :ref:`prerequisites_ccache`) +- Options: **ON** | OFF + +WITH_SIMCORE +------------ + +- Build OSI based scenario simulation, also know as openPASS simulation core (opSimulation). +- Options: OFF | **ON** + +WITH_DOC +-------- + +- Build sphinx based documentation +- Options: OFF | **ON** + +WITH_API_DOC +------------ + +- Build sphinx based developer documentation +- Options: **OFF** | ON + +.. note:: Automatically activates ``WITH_DOC`` if ON + +.. warning:: Building the API doc takes pretty long. + +WITH_TESTS +---------- + +- Build unit tests +- Options: OFF | **ON** + +WITH_COVERAGE +------------- + +.. warning:: + + This option turns off optimization, which might make execution considerably slower. + In exchange, a coverage `<test_name>.info`` and HTML reports will be generated in a folder called ``coverage`` within the cmake build folder. + +- For each registered test target (see ``add_openpass_target`` in ``./cmake/HelperMacros.cmake``) two more targets are added. + One for code coverage analysis using ``lcov`` (target ``<test_name>_coverage``). + A second for HTML report generation using ``genhtml`` (target ``<test_name>_html``). +- In addition to the individual tests, an overall test target ``TestCoverageReport`` is created. + When invoked, it will execute all individual tests and combine their coverage data into a single report found in ``coverage/TestCoverageReport``. +- Options: **OFF** | ON +- Requires: + + - ``WITH_TESTS=ON`` + - gcov, lcov, fastcov (python) + +- Parameterization: + + - ``COVERAGE_EXCLUDES`` allows to remove source files from report (substring matching), i.e. ``/usr/include``. + - Multiple paths have to be separated by spaces. + - Paths specified through ``CMAKE_PREFIX_PATH`` and ``tests/`` are filtered by default. + + .. warning:: + + Excluding too many paths or files may lead to an empty ``<test_name>.info`` file, causing the HTML target to fail. + +WITH_ENDTOEND_TESTS +------------------- + +- Enables execution of end to end tests using :ref:`testing_endtoend`. +- Tests can be ran by executing ``make install && make pyOpenPASS`` +- Options: **OFF** | ON + +OPENPASS_ADJUST_OUTPUT +---------------------- + +- Adjusts if builds are executed in the (CMake default) folder ``build`` or directly in the specified install directory. + Latter let you skip the call ``make install``. +- Options: **OFF** | ON + +.. warning:: + + When skipping ``make install``, dependencies are not copied into the output folder, which could cause crashes due to missing or outdated libraries. + +.. _cmake_protobuf_arenas: + +WITH_PROTOBUF_ARENA +------------------- + +- | *Arena allocation is a C++-only feature that helps you optimize your memory usage and improve performance when working with protocol buffers.* + | (from https://developers.google.com/protocol-buffers/docs/reference/arenas) +- Options: **ON** | OFF + +.. note:: + + This feature is only available, if protobuf related libraries are also compiled with arenas. + Fortunately, the implementation falls back to regular allocation if not, which simply results in less performance. + +INSTALL_SYSTEM_RUNTIME_DEPS +--------------------------- + +- during installation step, this configuration copies detected system runtime dependencies to install directory (i.e. MinGW system libraries) +- Options: ON | **OFF** + +.. warning:: + + Under windows, automatic resolution might fail if other MinGW instances are installed. + As several programs use MinGW under the hood, it is recommended to set the used MinGW path in the CMAKE_PREFIX_PATH explicitly: + + .. code-block:: bash + + CMAKE_PREFIX_PATH = mingw64/bin;\... + +INSTALL_EXTRA_RUNTIME_DEPS +-------------------------- + +- during installation step, this configuration copies detected runtime dependencies (i.e. required shared libraries) specified in `CMAKE_PREFIX_PATH` to install directory +- Options: ON | **OFF** + +INSTALL_EXAMPLES +---------------- + +- If `ON`, **opSimulation** configuration examples are copied to the `examples` folder inside the installation directory (during the installation step). +- Options: **ON** | OFF + +Make Targets/Commands +--------------------- + +|Op| defines build targets by major modules or components, such as ``opSimulation`` or ``Algorithm_FmuWrapper``. +After calling CMake, simply build |op| by calling ``make``. + +.. admonition:: See also + + https://www.tutorialspoint.com/unix_commands/make.htm + +Build and Install +~~~~~~~~~~~~~~~~~ + +- ``make`` + +- ``make install`` + + .. warning: + + - Right now, there is still an issue with an additinal ``bin`` folder. + After installing, the content of the `./bin` folder needs to be copied into `.`. + + - Make install seems to have troubles on some systems when copying the dependencies. + Check if the libraries of e.g. OSI are copied into the execution directory of the core. + + - MinGW system libraries are not a dependency visible to make. + +- ``make <target>``: Build a single target + +Executing Tests +~~~~~~~~~~~~~~~ + +- All tests: ``make test ARGS="--output-on-failure -j3"`` +- Single test: ``make test opSimulation_Tests ARGS="--output-on-failure -j3"`` diff --git a/content/html/_sources/other_information/10_external_dependencies.rst.txt b/content/html/_sources/other_information/10_external_dependencies.rst.txt index 3fc59e23d7392e85797b07e140bb1d134426c0b9..2a32b894225186947f3942e0a34f6b21a59a51cd 100644 --- a/content/html/_sources/other_information/10_external_dependencies.rst.txt +++ b/content/html/_sources/other_information/10_external_dependencies.rst.txt @@ -1,171 +1,159 @@ -.. - ******************************************************************************* - Copyright (c) 2021-2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - 2023 Mercedes-Benz Tech Innovation GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -External Dependencies -===================== - -|OP| depends on a number of external dependencies. Installation of those dependencies is described in :ref:`prerequisites`. - -The third party software dependency of |op| can be divided into: - -- **Build environment**, which manages third party software and is used to compile and install |op| -- **Binary packages**, which can be easily installed via a package manager of the respective build environment -- **Source packages**, which need to be built from source code - -This section gives an overview of the dependencies and how they are used. - -Information on Binary Packages ------------------------------- - -GNU Compiler Collection (gcc) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Version (latest tested): |gcc_version| - -|Op| is developed on Linux and Windows (64-Bit) in `C++17 <https://isocpp.org/>`_ using the GNU Compiler Collection (`gcc <https://gcc.gnu.org/>`_). - -.. admonition:: Useful hints - - - | |op| has been developed using gcc 7.x, 8.x, 9.x, and more recently gcc 10.x. - | There are no known issues regarding the different versions. - - Since no compiler specific features are used, the source should also compile with `clang <https://clang.llvm.org/>`_. - - Generally, there is support for `MSVC <https://docs.microsoft.com/en-us/cpp/build/reference/c-cpp-building-reference>`_ , but currently not actively maintained by the |opwg|. - -GNU Debugger (gdb) -~~~~~~~~~~~~~~~~~~ - -Version (latest tested): |gdb_version| - -Debugging tools for gcc: https://www.gnu.org/savannah-checkouts/gnu/gdb/index.html - -CMake -~~~~~ - -Version (latest tested): |cmake_version| - -|Op| uses `CMake <https://cmake.org/>`_ for building and testing. -For details on the provided options, see :ref:`cmake`. - -.. _prerequisites_ccache: - -Ccache -~~~~~~ - -Version (latest tested): |ccache_version| - -|Op| supports the compiler cache `Ccache <https://ccache.dev/>`_ for faster recompilation. -Use only, if you need to recompile regularly. - -.. admonition:: Useful hints - - - The first compilation is definilty slower (e.g. by 30%), as the cache needs to be built. - - If used regularily, increasing the cache size is recommended, e.g.: ``ccache -M 20G`` - -Doxygen -~~~~~~~ - -Version (latest tested): |doxygen_version| - -Documentation is created using `Doxygen <https://www.doxygen.nl/index.html>`_. - -.. admonition:: Useful hints - - - Doxygen introduced support for Markdown with 1.8, which is still in use. - Don't use older versions. - -Qt Framework -~~~~~~~~~~~~ - -Version (officially supported): |qt_version| - -|Op| uses some features from the `Qt <https://www.qt.io/>`_ framework. -A previous version of the GUI of |op| relied on Qt. |Op| itself tries to stick to the C++ standard framework as far as possible, but still uses the Qt framework for some tasks, e.g. xml parsing. - -.. admonition:: Note on Versions - - | Versions starting from 5.4 should generally work, but are not officially supported anymore/yet. - -Boost C++ Libraries -~~~~~~~~~~~~~~~~~~~ - -Version (officially supported): |boost_version| - -Especially for geometrical calculations, |op| uses parts of the `Boost C++ Libraries <https://www.boost.org/>`_. - -.. admonition:: Note on Versions - - More recent versions should integrate without issues, but 1.74.0 already raise warnings for some deprecated headers. - -googletest -~~~~~~~~~~ - -Version (officially supported): |gtest_version| - -Tests are written in `googletest <https://github.com/google/googletest>`_ and |Op| makes use of the included *googletest* (gtest) C++ testing framework, as well as the included mocking framework *googlemock* (gmock). - -.. note:: - - The lastest major release brought several API changes, which made some code fixes necessary. - Use newer versions with precaution. - -Information on Source Packages ------------------------------- - -The second and last set of dependencies we need to dissolve are based on source packages. -Since installing such source packages is not easy, we have dedicated a separate chapter on this topic. -See :ref:`building_prerequisites` for a step-by-step instruction on how to download, build and install needed source packages. - -Details on source packages: - -.. _prerequisites_osi: - -Open Simulation Interface (OSI) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Version (officially supported): |osi_version| - -The internal world representation uses the `Open Simulation Interface <https://github.com/OpenSimulationInterface>`_ (:term:`OSI`) as part of its ground truth (backend storage) and exchange format. - -.. figure:: ./_static/draw.io/osi_in_openpass.png - - OSI in |op| - -Interaction between World and consumers of OSI messages. - -Thereby, OSI provides data structures for representation of various objects in traffic simulation environments. -Note that OSI is primarily developed in a sensor centric view, such as lane markings and object boundaries. -Beyond that, |op| holds data for non-sensor centric data, such as metainfo on lanes and roads. - -As shown, OSI itself depends on :ref:`prerequisites_protobuf`. -If not already installed, the library and headers have to be built prior to OSI. - -.. _prerequisites_protobuf: - -Protocol Buffers (protobuf) -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Supported Version (officially supported): |protobuf_version| - -:ref:`prerequisites_osi` uses `Protocol Buffers <https://developers.google.com/protocol-buffers>`_ for describing and serialization of its datastructures. - -.. admonition:: Note on Versions - - - So far, no version limitations known (including 2.x). - - |Op| lets you integrate your own protobuf libraries if necessary. - -Modelon FMI Library (FMIL) -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Supported Version: |fmi_version| - -For integration of Functional Mock-up Units (FMUs) the `Algorithm_FmuWrapper` uses the `Modelon FMI Library <https://github.com/modelon-community/fmi-library>`_. -As there is no binary available, FMIL needs to be build from scratch before |op| can be compiled. +.. + ******************************************************************************* + Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + 2023 Mercedes-Benz Tech Innovation GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +External Dependencies +===================== + +|OP| depends on a number of external dependencies. Installation of those dependencies is described in :ref:`prerequisites`. + +The third party software dependency of |op| can be divided into: + +- **Build environment**, which manages third party software and is used to compile and install |op| +- **Binary packages**, which can be easily installed via a package manager of the respective build environment +- **Source packages**, which need to be built from source code + +This section gives an overview of the dependencies and how they are used. + +Information on Binary Packages +------------------------------ + +GNU Compiler Collection (gcc) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Version (latest tested): |gcc_version| + +|Op| is developed on Linux and Windows (64-Bit) in `C++17 <https://isocpp.org/>`_ using the GNU Compiler Collection (`gcc <https://gcc.gnu.org/>`_). + +.. admonition:: Useful hints + + - | |op| has been developed using gcc 7.x, 8.x, 9.x, and more recently gcc 10.x. + | There are no known issues regarding the different versions. + - Since no compiler specific features are used, the source should also compile with `clang <https://clang.llvm.org/>`_. + - Generally, there is support for `MSVC <https://docs.microsoft.com/en-us/cpp/build/reference/c-cpp-building-reference>`_ , but currently not actively maintained by the |opwg|. + +GNU Debugger (gdb) +~~~~~~~~~~~~~~~~~~ + +Version (latest tested): |gdb_version| + +Debugging tools for gcc: https://www.gnu.org/savannah-checkouts/gnu/gdb/index.html + +CMake +~~~~~ + +Version (latest tested): |cmake_version| + +|Op| uses `CMake <https://cmake.org/>`_ for building and testing. +For details on the provided options, see :ref:`cmake`. + +.. _prerequisites_ccache: + +Ccache +~~~~~~ + +Version (latest tested): |ccache_version| + +|Op| supports the compiler cache `Ccache <https://ccache.dev/>`_ for faster recompilation. +Use only, if you need to recompile regularly. + +.. admonition:: Useful hints + + - The first compilation is definilty slower (e.g. by 30%), as the cache needs to be built. + - If used regularily, increasing the cache size is recommended, e.g.: ``ccache -M 20G`` + +Doxygen +~~~~~~~ + +Version (latest tested): |doxygen_version| + +Documentation is created using `Doxygen <https://www.doxygen.nl/index.html>`_. + +.. admonition:: Useful hints + + - Doxygen introduced support for Markdown with 1.8, which is still in use. + Don't use older versions. + +Boost C++ Libraries +~~~~~~~~~~~~~~~~~~~ + +Version (officially supported): |boost_version| + +Especially for geometrical calculations, |op| uses parts of the `Boost C++ Libraries <https://www.boost.org/>`_. + +.. admonition:: Note on Versions + + More recent versions should integrate without issues, but 1.74.0 already raise warnings for some deprecated headers. + +googletest +~~~~~~~~~~ + +Version (officially supported): |gtest_version| + +Tests are written in `googletest <https://github.com/google/googletest>`_ and |Op| makes use of the included *googletest* (gtest) C++ testing framework, as well as the included mocking framework *googlemock* (gmock). + +.. note:: + + The lastest major release brought several API changes, which made some code fixes necessary. + Use newer versions with precaution. + +Information on Source Packages +------------------------------ + +The second and last set of dependencies we need to dissolve are based on source packages. +Since installing such source packages is not easy, we have dedicated a separate chapter on this topic. +See :ref:`building_prerequisites` for a step-by-step instruction on how to download, build and install needed source packages. + +Details on source packages: + +.. _prerequisites_osi: + +Open Simulation Interface (OSI) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Version (officially supported): |osi_version| + +The internal world representation uses the `Open Simulation Interface <https://github.com/OpenSimulationInterface>`_ (:term:`OSI`) as part of its ground truth (backend storage) and exchange format. + +.. figure:: ./_static/draw.io/osi_in_openpass.png + + OSI in |op| + +Interaction between World and consumers of OSI messages. + +Thereby, OSI provides data structures for representation of various objects in traffic simulation environments. +Note that OSI is primarily developed in a sensor centric view, such as lane markings and object boundaries. +Beyond that, |op| holds data for non-sensor centric data, such as metainfo on lanes and roads. + +As shown, OSI itself depends on :ref:`prerequisites_protobuf`. +If not already installed, the library and headers have to be built prior to OSI. + +.. _prerequisites_protobuf: + +Protocol Buffers (protobuf) +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Supported Version (officially supported): |protobuf_version| + +:ref:`prerequisites_osi` uses `Protocol Buffers <https://developers.google.com/protocol-buffers>`_ for describing and serialization of its datastructures. + +.. admonition:: Note on Versions + + - So far, no version limitations known (including 2.x). + - |Op| lets you integrate your own protobuf libraries if necessary. + +Modelon FMI Library (FMIL) +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Supported Version: |fmi_version| + +For integration of Functional Mock-up Units (FMUs) the `Algorithm_FmuWrapper` uses the `Modelon FMI Library <https://github.com/modelon-community/fmi-library>`_. +As there is no binary available, FMIL needs to be build from scratch before |op| can be compiled. diff --git a/content/html/_sources/other_information/20_glossary.rst.txt b/content/html/_sources/other_information/20_glossary.rst.txt index ae7da335104b3f3a8c80913ffe1c2f06b1bd6a4c..4bba933f641698301b578311be718b848b3916fb 100644 --- a/content/html/_sources/other_information/20_glossary.rst.txt +++ b/content/html/_sources/other_information/20_glossary.rst.txt @@ -1,82 +1,82 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -Glossary -======== - -.. glossary:: - - ADAS - Advanced Driving Assistance Systems - - AEB - Autonomous Emergency Brake - preventive emergency braking in danger (support or independent launch) - - Channel - Connects components within an agent (using unique ID) - - Component - A module that is part of an agent's equipment - - COG - Center of gravity - - Dynamics - Calculation of dynamic parameters, e.g. position of Agent - - FMI - Functional Mock-up Interface, see https://fmi-standard.org - - FMU - Functional Mock-up Unit, see https://fmi-standard.org - - GIDAS - German In-Depth Accident Study for in-depth traffic accident data collection, see https://www.gidas.org - - MinGW - Complete Open Source programming tool set, suitable for the development of native MS-Windows applications. - - Model - An abstract representation of a real object which might omit details e.g. ADAS, driving dynamics, pedestrian, environmental conditions. In the PreCASE framework, a model consists of one or more modules as well as channels connecting them. - - Module - A dynamic library that is loaded and whose interface functions are called by the framework. Modules contain models or other individual functionality necessary for the simulation. Modules are exchangeable and can be fitted to various purposes ensuring ahigh flexibility of the framework. - - MSYS - Collection of GNU utilities (e.g. bash, make, gcc) to allow building of programs which depend on traditionally UNIX tools to be present. It is intended to supplement :term:`MinGW`. - - MSYS2 - Independent rewrite of :term:`MSYS`, based on Cygwin (POSIX compatibility layer) and MinGW-w64. - - OD - OpenDRIVE - - openPASS - Open Platform for Assessment of Safety Systems - - OSI - A generic interface for the environmental perception of automated driving functions in virtual scenarios. - See https://opensimulationinterface.github.io/osi-documentation - - PCM - Pre-Crash Matrix is a specified format which can be used to describe the phase of a road traffic accident before the first collision happens (the so-called pre-crash phase). - See https://www.vufo.de/pcm/?lang=en - - PreCASE - Framework for the Simulative Evaluation of Active Safety Systems in Vehicles (openPASS predecessor). - - Scenario - A set of similar traffic situations. - - TTC - Time to collision - +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +Glossary +======== + +.. glossary:: + + ADAS + Advanced Driving Assistance Systems + + AEB + Autonomous Emergency Brake + preventive emergency braking in danger (support or independent launch) + + Channel + Connects components within an agent (using unique ID) + + Component + A module that is part of an agent's equipment + + COG + Center of gravity + + Dynamics + Calculation of dynamic parameters, e.g. position of Agent + + FMI + Functional Mock-up Interface, see https://fmi-standard.org + + FMU + Functional Mock-up Unit, see https://fmi-standard.org + + GIDAS + German In-Depth Accident Study for in-depth traffic accident data collection, see https://www.gidas.org + + MinGW + Complete Open Source programming tool set, suitable for the development of native MS-Windows applications. + + Model + An abstract representation of a real object which might omit details e.g. ADAS, driving dynamics, pedestrian, environmental conditions. In the PreCASE framework, a model consists of one or more modules as well as channels connecting them. + + Module + A dynamic library that is loaded and whose interface functions are called by the framework. Modules contain models or other individual functionality necessary for the simulation. Modules are exchangeable and can be fitted to various purposes ensuring ahigh flexibility of the framework. + + MSYS + Collection of GNU utilities (e.g. bash, make, gcc) to allow building of programs which depend on traditionally UNIX tools to be present. It is intended to supplement :term:`MinGW`. + + MSYS2 + Independent rewrite of :term:`MSYS`, based on Cygwin (POSIX compatibility layer) and MinGW-w64. + + OD + OpenDRIVE + + openPASS + Open Platform for Assessment of Safety Systems + + OSI + A generic interface for the environmental perception of automated driving functions in virtual scenarios. + See https://opensimulationinterface.github.io/osi-documentation + + PCM + Pre-Crash Matrix is a specified format which can be used to describe the phase of a road traffic accident before the first collision happens (the so-called pre-crash phase). + See https://www.vufo.de/pcm/?lang=en + + PreCASE + Framework for the Simulative Evaluation of Active Safety Systems in Vehicles (openPASS predecessor). + + Scenario + A set of similar traffic situations. + + TTC + Time to collision + diff --git a/content/html/_sources/other_information/30_gui_plugins.rst.txt b/content/html/_sources/other_information/30_gui_plugins.rst.txt index d74a32db15be13439c3c0cd1ee071061534e464e..337f0048e9116a6f83aa882473214aae10420e2d 100644 --- a/content/html/_sources/other_information/30_gui_plugins.rst.txt +++ b/content/html/_sources/other_information/30_gui_plugins.rst.txt @@ -1,26 +1,26 @@ -.. - ******************************************************************************* - Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - 2021 ITK Engineering GmbH - 2023 Mercedes-Benz Tech Innovation GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _gui_plugins: - -GUI Plugins -=========================== - - * The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11. - * The latest version of this deprecated GUI can be found here: https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/ - -.. toctree:: - :glob: - :maxdepth: 1 - - gui_user_guide/* +.. + ******************************************************************************* + Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + 2021 ITK Engineering GmbH + 2023 Mercedes-Benz Tech Innovation GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _gui_plugins: + +GUI Plugins +=========================== + + * The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11. + * The latest version of this deprecated GUI can be found here: https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/ + +.. toctree:: + :glob: + :maxdepth: 1 + + gui_user_guide/* diff --git a/content/html/_sources/other_information/40_license.rst.txt b/content/html/_sources/other_information/40_license.rst.txt index 9c9333ec33377156d123b3723357fde90e529256..c040ab16fa516ae09219d2c288137f9eefcbeb3f 100644 --- a/content/html/_sources/other_information/40_license.rst.txt +++ b/content/html/_sources/other_information/40_license.rst.txt @@ -1,18 +1,18 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -License -======= - -This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/ - - -SPDX-License-Identifier: EPL-2.0 +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +License +======= + +This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at https://www.eclipse.org/legal/epl-2.0/ + + +SPDX-License-Identifier: EPL-2.0 diff --git a/content/html/_sources/other_information/gui_user_guide/10_projects.rst.txt b/content/html/_sources/other_information/gui_user_guide/10_projects.rst.txt index a6b0a85e0b30d4dadb9cb205f340fec2485dc772..6580323b92bffc369e93263d2391a6b632b712ec 100644 --- a/content/html/_sources/other_information/gui_user_guide/10_projects.rst.txt +++ b/content/html/_sources/other_information/gui_user_guide/10_projects.rst.txt @@ -1,71 +1,71 @@ -.. - ******************************************************************************* - Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - 2021 ITK Engineering GmbH - 2023 Mercedes-Benz Tech Innovation GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - - -.. _project: - -Project -======= - - * The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11. - * The latest version of this deprecated GUI can be found here: https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/ - - -The Project Plugin can be used to simply start a simulation from the gui. - -.. image:: _static/images/plugin/project/overview.png - -Before the simulation adjustments begin, the user is obligated to load or create a “Simulation Manager Configuration†(`opSimulationManager.xml`). -Such a configuration in openPASS can be understood as a project. -It is a XML-File which get inscribed the path settings and simulation settings after you click **SAVE**. - -General -------- - -.. image:: _static/images/plugin/project/general.png - -In this segment you are able to name the Simulation Manager Configuration. - -Path Settings -------------- - -.. image:: _static/images/plugin/project/pathSettings.png - -The next step is path settings. -These will change depending on where your openPASS.exe is located. -In the screen shot above the openPASS.exe is located at ``C:openPASS``. -For easier use of this tutorial it is recommended to save the Demo Folder in ``C:/`` and name it *openPASS*. -On to the settings. -As you can see three paths need to be set. -The library comes with openPASS. -There are plans to remove the option for the user to set the library path, but at this moment there is still the option to change it, although this is not recommended. -The Simulation Path references the opSimulation.exe, the file to execute the simulation. -If you are using the provided Demo, there is no need for you to change it. -The only path you need to set is the path of the Configuration Files. -In the Demo it will be located at ``[directory of openPASS.exe]/configs``, so in this case it would be ``C:/openPASS/configs``. - -Simulation Output Settings --------------------------- - -.. image:: _static/images/plugin/project/simOutputSettings.png - -Next step is the Simulation Output Settings. There are three output files. First is the log file of the simulation manager. -However, when simulation jobs are started by the GUI, the openPASS simulation manager is not executed and, hence, the log will not contain any entries. -Second is the log file created by the simulation. In this log file you will find error messages, actions of the simulation etc. depending on the log level. -The Log level lets you choose which type of messages are logged. “0†means that only errors are logged, -whereas the highest log level of “5†leads to the most detailed description of which steps are executed by the simulation. -The results path specifies the folder in which the results of a successful simulation will be saved. - -.. note:: - - It is recommended to create a new folder in C:/openPASS called “results†and set it as the results path as in the picture above. +.. + ******************************************************************************* + Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + 2021 ITK Engineering GmbH + 2023 Mercedes-Benz Tech Innovation GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + + +.. _project: + +Project +======= + + * The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11. + * The latest version of this deprecated GUI can be found here: https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/ + + +The Project Plugin can be used to simply start a simulation from the gui. + +.. image:: _static/images/plugin/project/overview.png + +Before the simulation adjustments begin, the user is obligated to load or create a “Simulation Manager Configuration†(`opSimulationManager.xml`). +Such a configuration in openPASS can be understood as a project. +It is a XML-File which get inscribed the path settings and simulation settings after you click **SAVE**. + +General +------- + +.. image:: _static/images/plugin/project/general.png + +In this segment you are able to name the Simulation Manager Configuration. + +Path Settings +------------- + +.. image:: _static/images/plugin/project/pathSettings.png + +The next step is path settings. +These will change depending on where your openPASS.exe is located. +In the screen shot above the openPASS.exe is located at ``C:openPASS``. +For easier use of this tutorial it is recommended to save the Demo Folder in ``C:/`` and name it *openPASS*. +On to the settings. +As you can see three paths need to be set. +The library comes with openPASS. +There are plans to remove the option for the user to set the library path, but at this moment there is still the option to change it, although this is not recommended. +The Simulation Path references the opSimulation.exe, the file to execute the simulation. +If you are using the provided Demo, there is no need for you to change it. +The only path you need to set is the path of the Configuration Files. +In the Demo it will be located at ``[directory of openPASS.exe]/configs``, so in this case it would be ``C:/openPASS/configs``. + +Simulation Output Settings +-------------------------- + +.. image:: _static/images/plugin/project/simOutputSettings.png + +Next step is the Simulation Output Settings. There are three output files. First is the log file of the simulation manager. +However, when simulation jobs are started by the GUI, the openPASS simulation manager is not executed and, hence, the log will not contain any entries. +Second is the log file created by the simulation. In this log file you will find error messages, actions of the simulation etc. depending on the log level. +The Log level lets you choose which type of messages are logged. “0†means that only errors are logged, +whereas the highest log level of “5†leads to the most detailed description of which steps are executed by the simulation. +The results path specifies the folder in which the results of a successful simulation will be saved. + +.. note:: + + It is recommended to create a new folder in C:/openPASS called “results†and set it as the results path as in the picture above. diff --git a/content/html/_sources/other_information/gui_user_guide/20_system_editor.rst.txt b/content/html/_sources/other_information/gui_user_guide/20_system_editor.rst.txt index c2cacf8a67b242cbb9e56e4c23fd3a7d57a48eb3..a29587c69a51652a814db7d71e77ae963926c7cd 100644 --- a/content/html/_sources/other_information/gui_user_guide/20_system_editor.rst.txt +++ b/content/html/_sources/other_information/gui_user_guide/20_system_editor.rst.txt @@ -1,35 +1,35 @@ -.. - ******************************************************************************* - Copyright (c) 2021 ITK Engineering GmbH - 2023 Mercedes-Benz Tech Innovation GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _system_editor: - -System Editor -============= - - * The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11. - * The latest version of this deprecated GUI can be found here: https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/ - - -The System Editor helps building the system configuration (systemConfig) in the GUI. -This file is also a XML-file and specifies the components of an agent and systems used, in this case advanced driver assistance systems. - -The editing of the System Configuration has two modes: the static and dynamic mode. - -The **static mode** requires the user to build a complete system which includes sensors, algorithms and actions. -As the actions directly manipulate the simulated vehicle’s parameters, which are the same no matter the system (i.e. gas pedal position, braking pedal position, steering wheel angle), there is no need to code the interaction between system and simulation. - -At this point there is no support for supporting statistical inclusion of systems in the static mode. -The current demo only provides an example for the static mode (a System Configuration of an agent to follow a PCM trajectory), so make sure you have the static mode selected. - -The **dynamic mode** is covered by the Scenario Simulation User guide. - -.. image:: _static/images/plugin/system_editor/overview.png +.. + ******************************************************************************* + Copyright (c) 2021 ITK Engineering GmbH + 2023 Mercedes-Benz Tech Innovation GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _system_editor: + +System Editor +============= + + * The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11. + * The latest version of this deprecated GUI can be found here: https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/ + + +The System Editor helps building the system configuration (systemConfig) in the GUI. +This file is also a XML-file and specifies the components of an agent and systems used, in this case advanced driver assistance systems. + +The editing of the System Configuration has two modes: the static and dynamic mode. + +The **static mode** requires the user to build a complete system which includes sensors, algorithms and actions. +As the actions directly manipulate the simulated vehicle’s parameters, which are the same no matter the system (i.e. gas pedal position, braking pedal position, steering wheel angle), there is no need to code the interaction between system and simulation. + +At this point there is no support for supporting statistical inclusion of systems in the static mode. +The current demo only provides an example for the static mode (a System Configuration of an agent to follow a PCM trajectory), so make sure you have the static mode selected. + +The **dynamic mode** is covered by the Scenario Simulation User guide. + +.. image:: _static/images/plugin/system_editor/overview.png diff --git a/content/html/_sources/other_information/gui_user_guide/30_pcm_sim.rst.txt b/content/html/_sources/other_information/gui_user_guide/30_pcm_sim.rst.txt index d439610473feefc032609eaa0e125042646b3839..9018986c42da4bf82b07a098af9e43b9d2dc7c8f 100644 --- a/content/html/_sources/other_information/gui_user_guide/30_pcm_sim.rst.txt +++ b/content/html/_sources/other_information/gui_user_guide/30_pcm_sim.rst.txt @@ -1,152 +1,152 @@ -.. - ******************************************************************************* - Copyright (c) 2021 ITK Engineering GmbH - 2023 Mercedes-Benz Tech Innovation GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _pcm_sim: - -PCM Simulation -============== - - * The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11. - * The latest version of this deprecated GUI can be found here: https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/ - - -This plugin is used to configure and start a simulation based pcm data or simulation configuration sets of previous simulations. - -Simulation Input ----------------- - -* **UseCase: Database** - - * Select the radio button ``PCM Database`` - * Select a PCM database file - -.. image:: _static/images/plugin/pcm_sim/input_db.png - -* **UseCase: Resimulation** - - * Select the radio button ``Simulation Results`` - * Select a folder with previous Results - - .. note:: - - The selected output folder must be different to the input folder - - .. warning:: - - To ensure that the previous results are correctly read, the folder structure of the results has to follow the structure the GUI itself generates when the simulation is started from a database. - Only the configuration files of the default folders are loaded. No variation is loaded and taken into account at this place. - - -.. image:: _static/images/plugin/pcm_sim/input_resim.png - -Simulation Output ------------------ - - * In ``Result Folder`` you can select a folder where the output shall be written - * In ``Log Level`` you can define at what level a logging output shall be produced - - * ``Error`` - Log only Errors - * ``Warning`` - Log additionally warnings - * ``Info`` - Log additionally information - * ``Debug`` - Log additionally debug information - -.. image:: _static/images/plugin/pcm_sim/output.png - - -Simulation Configuration ------------------------- - -At this point, the User is able to choose what system configuration shall be used for each agent. -The User can either select one or multiple system configuration files (comma separated). -In the case of multiple files are configured, there will be unique sets of simulation configuration files generated for each possible combination, which are placed in folders named / coded like ``<Car1_Index>-<Car2_Index>-<Other_Index>`` e.g. ``1-0-2`` - - -.. image:: _static/images/plugin/pcm_sim/system_config.png - -Variation ---------- - -* The random seed can be set to a specific initial random seed by ``using a given value`` or just by ``using the case number`` -* The number runs can with different random seed can be set by changing ``Variation Count`` -* The original trajectory can be shifted randomly by setting the ``Shift radius`` for *Car1* and *Car2* - - * Given a shift radius R for a vehicle - * For each position P in trajectory, it shifted position P’ is calculated by randomly generating a distance D (D<= R) and a relative angle in polar coordinate - - .. math:: - `x_{\text{new}}(t) = x(t) + \delta x` - `y_{\text{new}}(t) = x(y) + \delta y` - -.. image:: _static/images/plugin/pcm_sim/trajectory_shifting.png - -* The original velocity can be scaled randomly by setting the ``Max scale`` for *Car1* and *Car2* -* Given a velocity deviation :math `\delta V` for a vehicle -* In a trajectory, a position P_{i} is represented as - - .. math:: - `x(t) = x_{0} + \int_{0}^{t} v_{x} (t) dt` - `y(t) = y_{0} + \int_{0}^{t} v_{y} (t) dt` - -* The new position P_{i} can be represented as - - .. math:: - `x(t) = x_{0} + k \int_{0}^{t} v_{x} (t) dt` - `y(t) = y_{0} + k \int_{0}^{t} v_{y} (t) dt` - -* with a scaling factor k - -.. image:: _static/images/plugin/pcm_sim/velocity_scaling.png - -.. note:: - - The additional random seeds which are used by the variation are chosen randomly depending on the initial random seed. - Therefore they´re reproducible - -.. image:: _static/images/plugin/pcm_sim/variation.png - -Simulation Start ----------------- - -* Select one or multiple simulation cases (by pressing the CTRL / SHIFT key) - -* Press the button ``Start Simulation`` - -.. note:: - - The User can interrupt the simulation process by pressing ``Stop Simulation``. - The simulation will stop after the current simulation is finished. - Therefore it won´t start the remaining simulations anymore. - - -.. image:: _static/images/plugin/pcm_sim/select.png - -Save / Load Experiment ----------------------- - -Every change in the gui can be saved as in "Experiment" in an text file. -This file can later be loaded to retrieve the previous used configuration of the "Experiment". - -.. image:: _static/images/plugin/pcm_sim/experiment.png - -.. _result_folder_structure: - -Result Folder Structure ------------------------ - -* <Result Folder Name> (e.g. *result_pcm*) - - * <Case Name> (e.g. *1000208*) - - * <System Configuration combination code> (e.g. *1-0-2*) - - * <Variation Name> (e.g. *default* or *Var_00001*) - +.. + ******************************************************************************* + Copyright (c) 2021 ITK Engineering GmbH + 2023 Mercedes-Benz Tech Innovation GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _pcm_sim: + +PCM Simulation +============== + + * The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11. + * The latest version of this deprecated GUI can be found here: https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/ + + +This plugin is used to configure and start a simulation based pcm data or simulation configuration sets of previous simulations. + +Simulation Input +---------------- + +* **UseCase: Database** + + * Select the radio button ``PCM Database`` + * Select a PCM database file + +.. image:: _static/images/plugin/pcm_sim/input_db.png + +* **UseCase: Resimulation** + + * Select the radio button ``Simulation Results`` + * Select a folder with previous Results + + .. note:: + + The selected output folder must be different to the input folder + + .. warning:: + + To ensure that the previous results are correctly read, the folder structure of the results has to follow the structure the GUI itself generates when the simulation is started from a database. + Only the configuration files of the default folders are loaded. No variation is loaded and taken into account at this place. + + +.. image:: _static/images/plugin/pcm_sim/input_resim.png + +Simulation Output +----------------- + + * In ``Result Folder`` you can select a folder where the output shall be written + * In ``Log Level`` you can define at what level a logging output shall be produced + + * ``Error`` - Log only Errors + * ``Warning`` - Log additionally warnings + * ``Info`` - Log additionally information + * ``Debug`` - Log additionally debug information + +.. image:: _static/images/plugin/pcm_sim/output.png + + +Simulation Configuration +------------------------ + +At this point, the User is able to choose what system configuration shall be used for each agent. +The User can either select one or multiple system configuration files (comma separated). +In the case of multiple files are configured, there will be unique sets of simulation configuration files generated for each possible combination, which are placed in folders named / coded like ``<Car1_Index>-<Car2_Index>-<Other_Index>`` e.g. ``1-0-2`` + + +.. image:: _static/images/plugin/pcm_sim/system_config.png + +Variation +--------- + +* The random seed can be set to a specific initial random seed by ``using a given value`` or just by ``using the case number`` +* The number runs can with different random seed can be set by changing ``Variation Count`` +* The original trajectory can be shifted randomly by setting the ``Shift radius`` for *Car1* and *Car2* + + * Given a shift radius R for a vehicle + * For each position P in trajectory, it shifted position P’ is calculated by randomly generating a distance D (D<= R) and a relative angle in polar coordinate + + .. math:: + `x_{\text{new}}(t) = x(t) + \delta x` + `y_{\text{new}}(t) = x(y) + \delta y` + +.. image:: _static/images/plugin/pcm_sim/trajectory_shifting.png + +* The original velocity can be scaled randomly by setting the ``Max scale`` for *Car1* and *Car2* +* Given a velocity deviation :math `\delta V` for a vehicle +* In a trajectory, a position P_{i} is represented as + + .. math:: + `x(t) = x_{0} + \int_{0}^{t} v_{x} (t) dt` + `y(t) = y_{0} + \int_{0}^{t} v_{y} (t) dt` + +* The new position P_{i} can be represented as + + .. math:: + `x(t) = x_{0} + k \int_{0}^{t} v_{x} (t) dt` + `y(t) = y_{0} + k \int_{0}^{t} v_{y} (t) dt` + +* with a scaling factor k + +.. image:: _static/images/plugin/pcm_sim/velocity_scaling.png + +.. note:: + + The additional random seeds which are used by the variation are chosen randomly depending on the initial random seed. + Therefore they´re reproducible + +.. image:: _static/images/plugin/pcm_sim/variation.png + +Simulation Start +---------------- + +* Select one or multiple simulation cases (by pressing the CTRL / SHIFT key) + +* Press the button ``Start Simulation`` + +.. note:: + + The User can interrupt the simulation process by pressing ``Stop Simulation``. + The simulation will stop after the current simulation is finished. + Therefore it won´t start the remaining simulations anymore. + + +.. image:: _static/images/plugin/pcm_sim/select.png + +Save / Load Experiment +---------------------- + +Every change in the gui can be saved as in "Experiment" in an text file. +This file can later be loaded to retrieve the previous used configuration of the "Experiment". + +.. image:: _static/images/plugin/pcm_sim/experiment.png + +.. _result_folder_structure: + +Result Folder Structure +----------------------- + +* <Result Folder Name> (e.g. *result_pcm*) + + * <Case Name> (e.g. *1000208*) + + * <System Configuration combination code> (e.g. *1-0-2*) + + * <Variation Name> (e.g. *default* or *Var_00001*) + diff --git a/content/html/_sources/other_information/gui_user_guide/40_pcm_eval.rst.txt b/content/html/_sources/other_information/gui_user_guide/40_pcm_eval.rst.txt index 33af821705ad081dc5145d90f20d4ef21b9b7b6b..e9d609bdd263a6a4fd7c187bd10b32e88ca7c18b 100644 --- a/content/html/_sources/other_information/gui_user_guide/40_pcm_eval.rst.txt +++ b/content/html/_sources/other_information/gui_user_guide/40_pcm_eval.rst.txt @@ -1,43 +1,43 @@ -.. - ******************************************************************************* - Copyright (c) 2021 ITK Engineering GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _pcm_eval: - -PCM Evaluation -============== - - * The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11. - * The latest version of this deprecated GUI can be found here: https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/ - -This plugin is used to load results of previous simulations. - -Loading Results ---------------- - -* Click ``Browse Result Files`` to choose a result folder to be evaluated -* Simulation results are displayed in a tree structure - -.. note:: - - Result folder has to be structured like the result folder of a previous simulation. - See :ref:`result_folder_structure` - -.. image:: _static/images/plugin/pcm_eval/overview.png - -Evaluating Results ------------------- - -* Select result files to be shown. - -.. note:: - It is possible to select multiple files to compare different trajectories in the visualization area. - -.. image:: _static/images/plugin/pcm_eval/select.png +.. + ******************************************************************************* + Copyright (c) 2021 ITK Engineering GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _pcm_eval: + +PCM Evaluation +============== + + * The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11. + * The latest version of this deprecated GUI can be found here: https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/ + +This plugin is used to load results of previous simulations. + +Loading Results +--------------- + +* Click ``Browse Result Files`` to choose a result folder to be evaluated +* Simulation results are displayed in a tree structure + +.. note:: + + Result folder has to be structured like the result folder of a previous simulation. + See :ref:`result_folder_structure` + +.. image:: _static/images/plugin/pcm_eval/overview.png + +Evaluating Results +------------------ + +* Select result files to be shown. + +.. note:: + It is possible to select multiple files to compare different trajectories in the visualization area. + +.. image:: _static/images/plugin/pcm_eval/select.png diff --git a/content/html/_sources/other_information/gui_user_guide/50_result_visualization.rst.txt b/content/html/_sources/other_information/gui_user_guide/50_result_visualization.rst.txt index 8932c66c9b913e66601d812938db4eb0760e7362..151fdc97ba63640046d2cf325a4efbc6492e590b 100644 --- a/content/html/_sources/other_information/gui_user_guide/50_result_visualization.rst.txt +++ b/content/html/_sources/other_information/gui_user_guide/50_result_visualization.rst.txt @@ -1,27 +1,27 @@ -.. - ******************************************************************************* - Copyright (c) 2021 ITK Engineering GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _result_visualization: - -Result Visualization -==================== - - * The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11. - * The latest version of this deprecated GUI can be found here: https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/ - -.. image:: result_visualization/_static/images/timeplot/select.png - -.. toctree:: - :glob: - :maxdepth: 1 - - result_visualization/* - +.. + ******************************************************************************* + Copyright (c) 2021 ITK Engineering GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _result_visualization: + +Result Visualization +==================== + + * The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11. + * The latest version of this deprecated GUI can be found here: https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/ + +.. image:: result_visualization/_static/images/timeplot/select.png + +.. toctree:: + :glob: + :maxdepth: 1 + + result_visualization/* + diff --git a/content/html/_sources/other_information/gui_user_guide/result_visualization/10_statistics.rst.txt b/content/html/_sources/other_information/gui_user_guide/result_visualization/10_statistics.rst.txt index 288dcdf58cc347761065eed73ee69eaeaa14f1f6..18a3d91b3f3dea97c6340622bb34826d7354794c 100644 --- a/content/html/_sources/other_information/gui_user_guide/result_visualization/10_statistics.rst.txt +++ b/content/html/_sources/other_information/gui_user_guide/result_visualization/10_statistics.rst.txt @@ -1,57 +1,57 @@ -.. - ******************************************************************************* - Copyright (c) 2021 ITK Engineering GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _statistics: - -Statistics -========== - -This plugin is used to calculate and show statistics and histograms from a result folder. - -Loading Results ---------------- - -* Click ``Add result folder`` to choose a result folder of which the statistics shall be calculated. - -.. note:: - - It is possible to add multiple result folders. - - * Subsequently selected folders are added to the list in the TreeView - * Histograms will be calculated for each folder including subfolders and will be shown in a new row - -.. image:: _static/images/statistics/overview.png - -Evaluating Results ------------------- - -* Select a result folder for showing their statistics and histograms -* Histograms over a folder are shown in one (scrollable) row of images -* Selecting the white background of the folder list clears the histogram preview panel -* Each row of histograms contains the contents of the corresponding folder in the folder list -* Adding a new folder re-calculates all histograms for each column using a common x-range - -.. note:: - - Select an input folder that contains files in the following format - - * Relevant files need ending ``.csv``` - * Columns can be separated by comma, semicolon or space - * First two columns need *frame* and *id** in header - -.. warning:: - - For all files in a selected folder and subfolders the headers are read in - - * All of these files consistent with the first read header are used to calculate histograms for all columns - * Files with non-consistent headers are ignored - -.. image:: _static/images/statistics/select.png +.. + ******************************************************************************* + Copyright (c) 2021 ITK Engineering GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _statistics: + +Statistics +========== + +This plugin is used to calculate and show statistics and histograms from a result folder. + +Loading Results +--------------- + +* Click ``Add result folder`` to choose a result folder of which the statistics shall be calculated. + +.. note:: + + It is possible to add multiple result folders. + + * Subsequently selected folders are added to the list in the TreeView + * Histograms will be calculated for each folder including subfolders and will be shown in a new row + +.. image:: _static/images/statistics/overview.png + +Evaluating Results +------------------ + +* Select a result folder for showing their statistics and histograms +* Histograms over a folder are shown in one (scrollable) row of images +* Selecting the white background of the folder list clears the histogram preview panel +* Each row of histograms contains the contents of the corresponding folder in the folder list +* Adding a new folder re-calculates all histograms for each column using a common x-range + +.. note:: + + Select an input folder that contains files in the following format + + * Relevant files need ending ``.csv``` + * Columns can be separated by comma, semicolon or space + * First two columns need *frame* and *id** in header + +.. warning:: + + For all files in a selected folder and subfolders the headers are read in + + * All of these files consistent with the first read header are used to calculate histograms for all columns + * Files with non-consistent headers are ignored + +.. image:: _static/images/statistics/select.png diff --git a/content/html/_sources/other_information/gui_user_guide/result_visualization/20_timePlot.rst.txt b/content/html/_sources/other_information/gui_user_guide/result_visualization/20_timePlot.rst.txt index 976f81ce412a8713121a86f1b5478baeea347486..b1e5867c9897be40dab4a2093b285e3c957de822 100644 --- a/content/html/_sources/other_information/gui_user_guide/result_visualization/20_timePlot.rst.txt +++ b/content/html/_sources/other_information/gui_user_guide/result_visualization/20_timePlot.rst.txt @@ -1,48 +1,48 @@ -.. - ******************************************************************************* - Copyright (c) 2021 ITK Engineering GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _timeplot: - -TimePlot -======== - -This plugin is used to plot trajectories (position, velocity, etc.) over time. - -Loading Results ---------------- - -* Click ``Select result folder`` to choose a result folder that contains files in the required format (see below) to be plotted. - -.. image:: _static/images/timeplot/overview.png - -Evaluating Results ------------------- - -* Select an input folder that contains files in this format: - - * Relevant files need ending ``.csv`` - * Columns can be separated by comma, semicolon or space - * First two columns need *frame* and *id** in header - -* Select table column to be plotted (up to three) -* For each open tab the selected columns are plotted - - * first column selected is shown on the x-axis - * second column selected is shown on the y-axis - * third column selected is shown on the right y-axis - -.. note:: - - * The track_id items can be selected individually - * Selecting the lowest subfolders yields tabs for all contained tracks - * Selections can be combined with ``Ctrl+select`` or ``Shift+select`` - -.. image:: _static/images/timeplot/select.png +.. + ******************************************************************************* + Copyright (c) 2021 ITK Engineering GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _timeplot: + +TimePlot +======== + +This plugin is used to plot trajectories (position, velocity, etc.) over time. + +Loading Results +--------------- + +* Click ``Select result folder`` to choose a result folder that contains files in the required format (see below) to be plotted. + +.. image:: _static/images/timeplot/overview.png + +Evaluating Results +------------------ + +* Select an input folder that contains files in this format: + + * Relevant files need ending ``.csv`` + * Columns can be separated by comma, semicolon or space + * First two columns need *frame* and *id** in header + +* Select table column to be plotted (up to three) +* For each open tab the selected columns are plotted + + * first column selected is shown on the x-axis + * second column selected is shown on the y-axis + * third column selected is shown on the right y-axis + +.. note:: + + * The track_id items can be selected individually + * Selecting the lowest subfolders yields tabs for all contained tracks + * Selections can be combined with ``Ctrl+select`` or ``Shift+select`` + +.. image:: _static/images/timeplot/select.png diff --git a/content/html/_sources/user_guide/10_overview.rst.txt b/content/html/_sources/user_guide/10_overview.rst.txt index 8782db7c13e2434b609fb903be026e05bd572636..51c01a09f7e3e3e6bd689af1161bd67b64c46d4b 100644 --- a/content/html/_sources/user_guide/10_overview.rst.txt +++ b/content/html/_sources/user_guide/10_overview.rst.txt @@ -1,184 +1,184 @@ -.. - ******************************************************************************* - Copyright (c) 2021 ITK Engineering GmbH - 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _user_guide_overview: - -Overview -======== - -openPASS is an open-source software, which is continuously being improved by stakeholders of the openPASS working group: |op_oss| (https://openpass.eclipse.org/) -openPASS can simulate traffic situations with the goal of predicting and evaluating the safety of driver assistance systems, more specifically ADAS (Advanced Driving Assistance Systems) or AD functions. Its main use-cases are PCM-(PreCrash Matrix), and scenario-based simulations. -Let’s have a look at what that means: - -.. image:: sim_user_guide/_static/images/crash-scenario.png - :width: 600 - :align: center - -1. PCM Simulations: “Crash re-simulations†- - * PCM of GIDAS: PreCrash Matrix from the database of the German In-Depth Accident Study - * Re simulate real crashes from the past, but with cars having ADAS or AD functions and asses if the tested technology would have improved the safety. - -2. (Traffic-)scenario based simulations - - * This is the most common use-case for openPASS. - * Enables simulation of whole traffic scenarios. That includes stochastic variation of those scenarios, intervention through detection of events and triggered actions and much more. - * To get a better understanding about how these simulations are performed, please look at the scenario-based simulation tutorial. - -For beginners, this presentation gives more illustrations and background about openPASS: https://openpass.eclipse.org/target_objectives/openPASS_at_a_glance.pdf - -Getting Started ---------------- - -.. _OpenSCENARIO: https://www.asam.net/standards/detail/openscenario/ - -This chapter provides insights on openPASS and how to work with the simulation. -The following step-by-step guides are included to guide you through your first simulations with openPASS: - - * Scenario-based Simulation: traffic simulation based on `OpenSCENARIO`_ description - * PCM Simulation: crash re-simulation based on GIDAS record - -In particular, it is presented how to go through the required steps until a simulation can be run successfully. -To enhance the guiding, there are going to be examples in every section. -It is important to mention that openPASS is still in progress and e. g. some plugins and options have not been fully implemented yet. - -Intended Audience ------------------ - -This manual serves as an entry point for users who have an operational simulator at hand (see :ref:`sim_install_guide`) and want to carry out (first) experiments at the invocation level (*GUI-less mode*). -In this sense, it primarily tackles how input-sets are composed, their interdependencies and, finally, the generated outputs. - -.. figure:: ./sim_user_guide/_static/draw.io/workflow.png - - |op| Workflow - -This image shows the *GUI-less* workflow, starting with the input-set, bundled together in a folder typically named ``configs``. -The ``core``, executed manually by the experimenter, processes these configs and generates an (configurable) output-set typically placed in a folder named ``results``. -Thereby, the **Simulation Output** is again a set of files. - - -Workflow --------- - -A typical workflow can be: - - 1. Configure systems and agents - 2. Configure the simulation - 3. Run the simulation - 4. Evaluate the simulation results - 5. Close the loop by continuing with your next simulation - -.. _primer: - -Primer ------- - -In the following the input and output sets are described with respect to the intended audience. -For detailed information please refer to the "in-depth" documentation of the individual files. - -Inputs -^^^^^^ - -The input is focused around the files presented in the following chart, which depticts the information flow between the files: - -.. figure:: ./sim_user_guide/_static/draw.io/overview-configs.png - -In the following list, those files are discussed further and listed with decreasing importance for the current audience. - -- **Scenario** - - This file describes the overall situation in terms of the **ASAM OpenSCENARIO 1.0** standard. - This includes placement of cars, the story (what happens when), how long the simulation will run. - - On top it contains links to additionally needed files, where the following might need modification with respect to the current audience: - - - **Scenery** (``*.xosc``) - - The **scenery** file describes the world in which the experiment runs. - As such, it contains the description of the road network and any static object, such as a highway, a parking lot, or traffic signs and obstacles. - It follows the **ASAM OpenDRIVE 1.6** standard. - - - **ProfilesCatalog** (``*.xml``) - - This catalog is the probabilistic heart of the simulation as it describes the composition of various simulation components and entities, using both, deterministic and stochastic definitions. - The ProfilesCatalog defines which of the available components are actually existing in the simulation: - That includes vehicles (from the ``VehicleModelCatalog.xosc``), pedestrians (from the ``PedestrianModelCatalog.xosc``), but also components like sensors, driver assistance systems or driver models being used. - A Profile provides, for example, information about which components are generally available in an agent (vehicle with driver) and how likely it is that they are actually existent. - Such components could be ADAS sensors, which means that they are parametrized in this section as well. - On the implementation level, a Profile is a set of parameters which will be provided to the instantiated components of an agent or to a simulation core component, e.g. Spawner. - For every parameterizable component an associated ProfileGroup contains one or more Profiles, from which one will be selected based on the given probabilities. - - .. note:: As **OpenSCENARIO** does not support probabilities (yet), this file is not conform to the standard. - - - **VehicleCatalog** and **PedestrianCatalog**: (``*.xosc``) - - These catalogs, also based on **OpenSCENARIO**, describes the physical parameters of available vehicles or pedestrians, respectively. - - .. note:: - - Historically, the referenced files carry the word *Model* in the filename: ``VehicleModelsCatalog.xosc`` and ``PedestrianModelsCatalog.xosc`` - -- **SimulationConfig** (``simulationConfig.xml``) - - This is the entry point for the simulation, containing the setup of the core, such as active observers, reference to the scenario, the initial random seed, and the number or invocations. - - .. note:: - - This file is normally of limited interest. - Yet, some variations, such as *environmental conditions* are historically placed in here and not in the scenario description. - It is therefore recommended to study the contents of this file. - -- **SystemConfigBlueprint** (``systemConfigBlueprint.xml``) - - This file is contains a superset of all possible *components* and their valid connections. - Such components can be lateral and longitudinal controllers, assistance systems, prioritizers, driver models, and so on. - Depending on the configured profiles and their probabilities, the core picks a subset of components to create one complete *system*. - - .. warning:: This file should not be changed without the proper (developer) expertise. - - .. note:: - - Instead of using an overall blueprint, concrete (static) systems can be specified using the same format. - These files are simply referred to as ``SystemConfig`` files. - -Some components need their own input files (e.g. a configuration). -It is convention to put these files also into the ``configs`` folder, which is internally provided as path to the components. -This helps to keep experiments separated. - -Outputs -^^^^^^^ - -Outputs are generated by individual observers, configured by the **SimulationConfig**, and collected within the folder `results`. -This section describes the output files by the :ref:`observation_log`, as configured by the provided example configurations. - -Please refer to the documentation of the individual observers and files for more details. - -- **Simulation Output** (``simulationOutput.xml``) - - This file acts as central entry point for further evaluation, such as the visualization. - It contains central information about all executed invocations within an experiment, such as the executed scenario and the run results, which can be seen as current values from the random sampling of the given probabilities. - As such, each run result contains, a list of participating moving entities (also referred to as agents), events related to the entities, such as collisions or activation of ADAS's, and a reference to the *cyclics file*. - - .. note:: This file **does not** contain information about the actual position of agents. - -- **Cyclic Output** (``Cyclics_Run_###.csv``) - - This file contains the ground truth information for each agent at each time step. - For each invocation, a new file is generated (starting with ``Cyclics_Run_000.csv`` and referenced in the according run results in the ``simulationOutput.xml``. - - .. note:: This file **does not** contain information about the interaction between agents. - -.. note:: - - The core generates a file called ``opSimulation.log`` at the execution path, which logs errors and warnings. - If the simulation behaves strange or did not produce any output, check this file. - +.. + ******************************************************************************* + Copyright (c) 2021 ITK Engineering GmbH + 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _user_guide_overview: + +Overview +======== + +openPASS is an open-source software, which is continuously being improved by stakeholders of the openPASS working group: |op_oss| (https://openpass.eclipse.org/) +openPASS can simulate traffic situations with the goal of predicting and evaluating the safety of driver assistance systems, more specifically ADAS (Advanced Driving Assistance Systems) or AD functions. Its main use-cases are PCM-(PreCrash Matrix), and scenario-based simulations. +Let’s have a look at what that means: + +.. image:: sim_user_guide/_static/images/crash-scenario.png + :width: 600 + :align: center + +1. PCM Simulations: “Crash re-simulations†+ + * PCM of GIDAS: PreCrash Matrix with trajectories from the database of the German In-Depth Accident Study + * Re-simulate real crashes from the past, but with cars having ADAS or AD functions and assess if the tested technology would have improved the safety. + +2. (Traffic-)scenario based simulations + + * This is the most common use-case for openPASS. + * Enables simulation of whole traffic scenarios. That includes stochastic variation of those scenarios, intervention through detection of events and triggered actions and much more. + * To get a better understanding about how these simulations are performed, please look at the scenario-based simulation tutorial. + +For beginners, this presentation gives more illustrations and background about openPASS: https://openpass.eclipse.org/target_objectives/openPASS_at_a_glance.pdf + +Getting Started +--------------- + +.. _OpenSCENARIO: https://www.asam.net/standards/detail/openscenario/ + +This chapter provides insights on openPASS and how to work with the simulation. +The following step-by-step guides are included to guide you through your first simulations with openPASS: + + * Scenario-based Simulation: traffic simulation based on `OpenSCENARIO`_ description + * PCM Simulation: crash re-simulation based on GIDAS record + +In particular, it is presented how to go through the required steps until a simulation can be run successfully. +To enhance the guiding, there are going to be examples in every section. +It is important to mention that openPASS is still in progress and e. g. some plugins and options have not been fully implemented yet. + +Intended Audience +----------------- + +This manual serves as an entry point for users who have an operational simulator at hand (see :ref:`sim_install_guide`) and want to carry out (first) experiments at the invocation level (*GUI-less mode*). +In this sense, it primarily tackles how input-sets are composed, their interdependencies and, finally, the generated outputs. + +.. figure:: ./sim_user_guide/_static/draw.io/workflow.png + + |op| Workflow + +This image shows the *GUI-less* workflow, starting with the input-set, bundled together in a folder typically named ``configs``. +The ``core``, executed manually by the experimenter, processes these configs and generates an (configurable) output-set typically placed in a folder named ``results``. +Thereby, the **Simulation Output** is again a set of files. + + +Workflow +-------- + +A typical workflow can be: + + 1. Configure systems and agents + 2. Configure the simulation + 3. Run the simulation + 4. Evaluate the simulation results + 5. Close the loop by continuing with your next simulation + +.. _primer: + +Primer +------ + +In the following the input and output sets are described with respect to the intended audience. +For detailed information please refer to the "in-depth" documentation of the individual files. + +Inputs +^^^^^^ + +The input is focused around the files presented in the following chart, which depticts the information flow between the files: + +.. figure:: ./sim_user_guide/_static/draw.io/overview-configs.png + +In the following list, those files are discussed further and listed with decreasing importance for the current audience. + +- **Scenario** + + This file describes the overall situation in terms of the **ASAM OpenSCENARIO 1.0** standard. + This includes placement of cars, the story (what happens when), how long the simulation will run. + + On top it contains links to additionally needed files, where the following might need modification with respect to the current audience: + + - **Scenery** (``*.xosc``) + + The **scenery** file describes the world in which the experiment runs. + As such, it contains the description of the road network and any static object, such as a highway, a parking lot, or traffic signs and obstacles. + It follows the **ASAM OpenDRIVE 1.6** standard. + + - **ProfilesCatalog** (``*.xml``) + + This catalog is the probabilistic heart of the simulation as it describes the composition of various simulation components and entities, using both, deterministic and stochastic definitions. + The ProfilesCatalog defines which of the available components are actually existing in the simulation: + That includes vehicles (from the ``VehicleModelCatalog.xosc``), pedestrians (from the ``PedestrianModelCatalog.xosc``), but also components like sensors, driver assistance systems or driver models being used. + A Profile provides, for example, information about which components are generally available in an agent (vehicle with driver) and how likely it is that they are actually existent. + Such components could be ADAS sensors, which means that they are parametrized in this section as well. + On the implementation level, a Profile is a set of parameters which will be provided to the instantiated components of an agent or to a simulation core component, e.g. Spawner. + For every parameterizable component an associated ProfileGroup contains one or more Profiles, from which one will be selected based on the given probabilities. + + .. note:: As **OpenSCENARIO** does not support probabilities (yet), this file is not conform to the standard. + + - **VehicleCatalog** and **PedestrianCatalog**: (``*.xosc``) + + These catalogs, also based on **OpenSCENARIO**, describes the physical parameters of available vehicles or pedestrians, respectively. + + .. note:: + + Historically, the referenced files carry the word *Model* in the filename: ``VehicleModelsCatalog.xosc`` and ``PedestrianModelsCatalog.xosc`` + +- **SimulationConfig** (``simulationConfig.xml``) + + This is the entry point for the simulation, containing the setup of the core, such as active observers, reference to the scenario, the initial random seed, and the number or invocations. + + .. note:: + + This file is normally of limited interest. + Yet, some variations, such as *environmental conditions* are historically placed in here and not in the scenario description. + It is therefore recommended to study the contents of this file. + +- **SystemConfigBlueprint** (``systemConfigBlueprint.xml``) + + This file is contains a superset of all possible *components* and their valid connections. + Such components can be lateral and longitudinal controllers, assistance systems, prioritizers, driver models, and so on. + Depending on the configured profiles and their probabilities, the core picks a subset of components to create one complete *system*. + + .. warning:: This file should not be changed without the proper (developer) expertise. + + .. note:: + + Instead of using an overall blueprint, concrete (static) systems can be specified using the same format. + These files are simply referred to as ``SystemConfig`` files. + +Some components need their own input files (e.g. a configuration). +It is convention to put these files also into the ``configs`` folder, which is internally provided as path to the components. +This helps to keep experiments separated. + +Outputs +^^^^^^^ + +Outputs are generated by individual observers, configured by the **SimulationConfig**, and collected within the folder `results`. +This section describes the output files by the :ref:`observation_log`, as configured by the provided example configurations. + +Please refer to the documentation of the individual observers and files for more details. + +- **Simulation Output** (``simulationOutput.xml``) + + This file acts as central entry point for further evaluation, such as the visualization. + It contains central information about all executed invocations within an experiment, such as the executed scenario and the run results, which can be seen as current values from the random sampling of the given probabilities. + As such, each run result contains, a list of participating moving entities (also referred to as agents), events related to the entities, such as collisions or activation of ADAS's, and a reference to the *cyclics file*. + + .. note:: This file **does not** contain information about the actual position of agents. + +- **Cyclic Output** (``Cyclics_Run_###.csv``) + + This file contains the ground truth information for each agent at each time step. + For each invocation, a new file is generated (starting with ``Cyclics_Run_000.csv`` and referenced in the according run results in the ``simulationOutput.xml``. + + .. note:: This file **does not** contain information about the interaction between agents. + +.. note:: + + The core generates a file called ``opSimulation.log`` at the execution path, which logs errors and warnings. + If the simulation behaves strange or did not produce any output, check this file. + diff --git a/content/html/_sources/user_guide/20_tutorials.rst.txt b/content/html/_sources/user_guide/20_tutorials.rst.txt index 40c3daf948e7b59072e64f2a31df3514ee2f4206..dc9eb5b1b6a175a0509bb90bc1b567de8480b1ee 100644 --- a/content/html/_sources/user_guide/20_tutorials.rst.txt +++ b/content/html/_sources/user_guide/20_tutorials.rst.txt @@ -1,21 +1,21 @@ -.. - ******************************************************************************* - Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _tutorials: - -Tutorials -========= - -.. toctree:: - :glob: - :maxdepth: 1 - - tutorials/* +.. + ******************************************************************************* + Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _tutorials: + +Tutorials +========= + +.. toctree:: + :glob: + :maxdepth: 1 + + tutorials/* diff --git a/content/html/_sources/user_guide/30_configs_in_depth.rst.txt b/content/html/_sources/user_guide/30_configs_in_depth.rst.txt index 4915f56b4797b91662614893ed15e617f252cefd..f26d2a53ef83622ad9c385fe7f66cd4b2af16124 100644 --- a/content/html/_sources/user_guide/30_configs_in_depth.rst.txt +++ b/content/html/_sources/user_guide/30_configs_in_depth.rst.txt @@ -1,26 +1,26 @@ -.. - ******************************************************************************* - Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - - -.. _configs_in_depth: - -Configs in Depth -================ - -As described in the :ref:`primer`, not all inputs might be of interest for the targeted audience. -Yet, for completeness, all potential input files shall be described here in detail. - -.. toctree:: - :glob: - :maxdepth: 1 - - configs/* +.. + ******************************************************************************* + Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + + +.. _configs_in_depth: + +Configs in Depth +================ + +As described in the :ref:`primer`, not all inputs might be of interest for the targeted audience. +Yet, for completeness, all potential input files shall be described here in detail. + +.. toctree:: + :glob: + :maxdepth: 1 + + configs/* diff --git a/content/html/_sources/user_guide/40_outputs_in_depth.rst.txt b/content/html/_sources/user_guide/40_outputs_in_depth.rst.txt index 18624c835b9c40fd19bd85ab18637b8f9f7ac802..0d82a55f27edc88d27f9437a158cee4aa4128b98 100644 --- a/content/html/_sources/user_guide/40_outputs_in_depth.rst.txt +++ b/content/html/_sources/user_guide/40_outputs_in_depth.rst.txt @@ -1,26 +1,26 @@ -.. - ******************************************************************************* - Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - - -.. _outputs_in_depth: - -Outputs in Depth -================ - -As described in the :ref:`primer`, simulation outputs are generated by the corresponding observers. -In the following, all potential outputs are described, grouped by the corresponding observers. - -.. toctree:: - :glob: - :maxdepth: 1 - - outputs/* +.. + ******************************************************************************* + Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + + +.. _outputs_in_depth: + +Outputs in Depth +================ + +As described in the :ref:`primer`, simulation outputs are generated by the corresponding observers. +In the following, all potential outputs are described, grouped by the corresponding observers. + +.. toctree:: + :glob: + :maxdepth: 1 + + outputs/* diff --git a/content/html/_sources/user_guide/50_scenario_simulation.rst.txt b/content/html/_sources/user_guide/50_scenario_simulation.rst.txt index e451b53df0b6c99f909715a6cb58e6a2b144fe61..cccd25adf4baee55a039c47136969ad281550228 100644 --- a/content/html/_sources/user_guide/50_scenario_simulation.rst.txt +++ b/content/html/_sources/user_guide/50_scenario_simulation.rst.txt @@ -1,23 +1,23 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _sim_user_guide: - -Simulator -========= - - -.. toctree:: - :glob: - :maxdepth: 3 - - sim_user_guide/* - +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _sim_user_guide: + +Simulator +========= + + +.. toctree:: + :glob: + :maxdepth: 3 + + sim_user_guide/* + diff --git a/content/html/_sources/user_guide/configs/profilescatalog.rst.txt b/content/html/_sources/user_guide/configs/profilescatalog.rst.txt index 57e13e228a5dace20950d282b469e95864eab017..5343480dc498f416cec3081f9fe3f7fb43b2c7ed 100644 --- a/content/html/_sources/user_guide/configs/profilescatalog.rst.txt +++ b/content/html/_sources/user_guide/configs/profilescatalog.rst.txt @@ -1,368 +1,368 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _profilescatalog: - -ProfilesCatalog -=============== - -The ProfilesCatalog contains all AgentProfiles, SystemProfiles and generic ProfileGroups and Profiles. -Depending on the configuration the simulator could require a "Driver"-ProfileGroup, a "Spawner"- and "TrafficGroup"-ProfileGroup, a "TrafficRules"-ProfileGroup or sensor and vehiclecomponent specific ProfileGroups. - -* :ref:`profilescatalog_agentprofiles` -* :ref:`profilescatalog_systemprofiles` -* :ref:`profilescatalog_profilegroups` -* :ref:`profilescatalog_driverprofiles` -* :ref:`profilescatalog_vehiclecomponentprofiles` -* :ref:`profilescatalog_spawnerprofiles` -* :ref:`profilescatalog_trafficrulesprofiles` - -.. _profilescatalog_agentprofiles: - -AgentProfiles -------------- - -In this section all AgentProfiles are defined. -An AgentProfile is either static or dynamic. -A static AgentProfile consists of a SystemConfig and a VehicleModel. -A dynamic AgentProfile specifies the composition of the agent according to certain probabilities. -Here the initial driver, system profile and the vehicle models of an agent get specified. -At least one AgentProfile is required. -But every AgentProfile referenced in the used :ref:`scenario` file or :ref:`components_trafficgroups` must exist. -All probabilities must add up to 1.0. - -Composition of a static AgentProfile: - -+-----------------+-----------------------------------------------------------------------+-----------+ -| Tag | Description | Required | -+=================+=======================================================================+===========+ -| System | Reference to a system defined in a SystemConfig | Yes | -+-----------------+-----------------------------------------------------------------------+-----------+ -| VehicleModel | Name of the VehicleModel in the :ref:`scenario_vehiclemodels` | Yes | -+-----------------+-----------------------------------------------------------------------+-----------+ - -Composition of a dynamic AgentProfile: - -+-----------------+---------------------------------------------------------------------------------+--------------------+ -| Tag | Description | Required | -+=================+=================================================================================+====================+ -| DriverProfiles | List of :ref:`profilescatalog_driverprofiles` for random selection | At least one entry | -+-----------------+---------------------------------------------------------------------------------+--------------------+ -| SystemProfiles | List of :ref:`profilescatalog_systemprofiles` for random selection | At least one entry | -+-----------------+---------------------------------------------------------------------------------+--------------------+ -| VehicleModels | List of vehicle models for random selection | At least one entry | -+-----------------+---------------------------------------------------------------------------------+--------------------+ - -Example -~~~~~~~ - -In this experiment the ego agent is defined by the system with Id 0 in systemConfig.xml and the VehicleModel car_bmw_7. -Every LuxuryClassCarAgent has the driver profile "AgentFollowingDriver". -Regarding the system profile 50% have a NoADAS and the other 50% have WithAEB. -Regarding the vehicle model 50% use a car_mini_cooper and the other 50% use car_bmw_7_1 vehicle model. - -.. code-block:: xml - - <AgentProfiles> - <AgentProfile Name="EgoAgent" Type="Static"> - <System> - <File>systemConfig.xml</File> - <Id>0</Id> - </System> - <VehicleModel>car_bmw_7</VehicleModel> - </AgentProfile> - <AgentProfile Name="LuxuryClassCarAgent" Type="Dynamic"> - <DriverProfiles> - <DriverProfile Name="AgentFollowingDriver" Probability="1.0"/> - </DriverProfiles> - <SystemProfiles> - <SystemProfile Name="NoADAS" Probability="0.5"/> - <SystemProfile Name="WithAEB" Probability="0.5"/> - </SystemProfiles> - <VehicleModels> - <VehicleModel Name="car_mini_cooper" Probability="0.5"/> - <VehicleModel Name="car_bmw_7_1" Probability="0.5"/> - </VehicleModels> - </AgentProfile> - </AgentProfiles> - -.. _profilescatalog_systemprofiles: - -SystemProfiles --------------- - -This sections contains all system profiles. -Every SystemProfile used by :ref:`profilescatalog_agentprofiles` must be listed here. - -.. code-block:: xml - - <SystemProfiles> - <SystemProfile Name="WithAEB"> - <Components> - <Component Type="AEB"> - <Profiles> - <Profile Name="AebProfile" Probability="0.5"/> - </Profiles> - <SensorLinks> - <SensorLink SensorId="0" InputId="Camera"/> - </SensorLinks> - </Component> - </Components> - <Sensors> - <Sensor Id="0" Position="Default"> - <Profile Type="Geometric2D" Name="Standard"/> - </Sensor> - </Sensors> - </SystemProfile> - ... - </SystemProfiles> - -+-------------+--------------------------------------------------------+ -| Attribute | Description | -+=============+========================================================+ -| Name | Name of the vehicle profile | -+-------------+--------------------------------------------------------+ -| Components | Lists all ADAS and other components in the vehicle | -+-------------+--------------------------------------------------------+ -| Sensors | Lists all sensors in the vehicle | -+-------------+--------------------------------------------------------+ - -.. _profilescatalog_components: - -Components -~~~~~~~~~~ - -+-------------+-------------------------------------------------------------------------------------------------+ -| Attribute | Description | -+=============+=================================================================================================+ -| Type | Type of the component. | -| | | -| | Must match component name in SystemConfigBlueprint | -+-------------+-------------------------------------------------------------------------------------------------+ -| Profile | Possible profiles of the component with probabilities. | -| | | -| | The profiles are defined in the :ref:`profilescatalog_vehiclecomponentprofiles` section | -| | | -| | Probabilities do not need to add up to 1. | -+-------------+-------------------------------------------------------------------------------------------------+ -| SensorLinks | Defines which sensor this component uses as input | -+-------------+-------------------------------------------------------------------------------------------------+ - -.. note:: The possibility of "not having that component" can be achieved if the probabilities of the profiles do not add up to 1. - -.. _profilescatalog_sensors: - -Sensors -~~~~~~~ - -+-------------+-------------------------------------------------------------------------------------------------+ -| Attribute | Description | -+=============+=================================================================================================+ -| Id | Identifier for the sensor used by the SensorLink definition of the components | -+-------------+-------------------------------------------------------------------------------------------------+ -| Position | Position of the sensor in the vehicle in relative coordinates | -+-------------+-------------------------------------------------------------------------------------------------+ -| Profile | All possible profiles of the sensor with probabilities. | -| | | -| | The profiles are defined in the :ref:`profilescatalog_vehiclecomponentprofiles` section | -+-------------+-------------------------------------------------------------------------------------------------+ - -.. code-block:: xml - - <Sensors> - <Sensor Id="0" Position="Default"> - <Profile Type="ReceiverCar2X" Name="Standard"/> - </Sensor> - <Sensor Id="1" Position="FrontWindow"> - <Profile Type="Geometric2D" Name="Standard"/> - </Sensor> - </Sensors> - -.. note:: The Position attribute in the XML specifies placement of a sensor within a vehicle. The position is defined in VehicleModelsCatalog. - It follows the format "SensorPosition/Position/Parameters". The parameters height, lateral, longitudinal, pitch, roll and yaw are required. - For example, "FrontWindow" describes a sensor mounted on the front window, with corresponding positional parameters. - See example catalog in :ref:`scenario_vehiclemodels`. - -.. _profilescatalog_profilegroups: - -ProfileGroups -------------- - -A ProfileGroup defines all the possible profiles of a component. -A single profile is a set of parameters that are passed to the component in the same way as the parameters in the SystemConfig. -Note: For components that have their parameters defined in the ProfilesCatalog the parameters in the SystemConfigBlueprint are ignored. -Parameters can either be simple or stochastic. -Simple parameters only have one value, while stochastic parameters have a minimum and maximum value as well as distribution specific parameters. -Which parameters are needed/supported depends on the component. - -.. code-block:: xml - - <ProfileGroup Type="ComponentName"> - <Profile Name="ExampleProfile"> - <String Key="StringParameter" Value="Lorem ipsum"/> - <DoubleVector Key="DoubleParameter" Value="12.3,4.56,78.9"/> - <NormalDistribution Key="RandomParameter" Mean="4.5" SD="0.5" Min="3.5" Max="10.0"/> - </Profile> - <Profile Name="AnotherProfile"> - ... - </Profile> - </ProfileGroup> - -There are the following types of simple parameters: - -* Bool -* Int -* Double -* String -* IntVector -* DoubleVector -* StringVector - -If a parameter is stochastic it can be defined as any to be drawn from any of the following distributions: - -+-------------------------+--------------------------------------------------+ -| Distribution | Additional Attributes | -+=========================+==================================================+ -| NormalDistribution | (Mean and SD) or (Mu and Sigma) - equivalent | -+-------------------------+--------------------------------------------------+ -| LogNormalDistribution | (Mean and SD) or (Mu and Sigma) - not equivalent | -+-------------------------+--------------------------------------------------+ -| UniformDistribution | None | -+-------------------------+--------------------------------------------------+ -| ExponentialDistribution | Lambda or Mean (Mean = 1 / Lambda) | -+-------------------------+--------------------------------------------------+ -| GammaDistribution | (Mean and SD) or (Shape and Scale) | -+-------------------------+--------------------------------------------------+ - -Additionally there is the list type. -The list contains any number of list items which itself contain a list of parameters. -Lists can be nested at most two times. - -.. code-block:: xml - - <List Name="ExampleList"> - <ListItem> - <String Key="FirstParameter" Value="Lorem"/> - <Double Key="SecondParameter" Value="0.4"/> - </ListItem> - <ListItem> - <String Key="FirstParameter" Value="ipsum"/> - <Double Key="SecondParameter" Value="0.6"/> - </ListItem> - </List> - - -A Profile can also reference another Profile in another ProfileGroup. -In these case the importer handles the reference as if it was substituted by all subelements of the referenced Profile. -References may not be nested. - -.. code-block:: xml - - <Reference Type="GroupType" Name="ProfileName"/> - - -.. _profilescatalog_driverprofiles: - -Driver ProfileGroup -------------------- - -This section contains all driver profiles used by the simulation. -At least one driver profile is required. -The special parameter "Type" defines the name of the component (i.e. library name). -For details on the individual parameters see the :ref:`components reference <components_driver>`. - -.. code-block:: xml - - <ProfileGroup Type="Driver"> - <Profile Name="Name"> - <String Key="Type" Value="DriverLibrary"/> - ... - </Profile> - ... - </ProfileGroup> - - -.. _profilescatalog_vehiclecomponentprofiles: - -VehicleComponent ProfileGroups ------------------------------- - -This sections contains all driver assistance systems and other vehicle components and their parameter sets. -For every used VehicleComponent type there must be a ProfileGroup with this type and every profile of this type used by :ref:`profilescatalog_systemprofiles` must be listed here. -For details on the individual parameters see the :ref:`components reference <components_vehiclecomponents>`. - -.. code-block:: xml - - <ProfileGroup Type="LibraryName"> - <Profile Name="Name"> - ... - </Profile> - ... - </ProfileGroup> - - -.. _profilescatalog_spawnerprofiles: - -SpawnerProfile ProfileGroup ---------------------------- - -This sections contains all parameters of the spawners referenced in the :ref:`simulationconfig`. -For details on the individual parameters see the :ref:`components reference <components_spawner>`. - -.. code-block:: xml - - <ProfileGroup Type="Spawner"> - <Profile Name="Name"> - ... - </Profile> - ... - </ProfileGroup> - - -.. _profilescatalog_trafficrulesprofiles: - -TrafficRules ProfileGroup -------------------------- - -This sections contains the global traffic rules, that may vary depending on the country. -The following country are supported: - -+-------------+---------------+ -| Name | Description | -+=============+===============+ -| DE | Germany | -+-------------+---------------+ -| US | United States | -+-------------+---------------+ -| CN | China | -+-------------+---------------+ - -The :ref:`simulationconfig_environment` section in the SimulationConfig defines which set is used. -Currently there are only rules regulating highway traffic. These are the following: - -+---------------------------+---------+---------------------------------------------------------------------------------------------------------------------+ -| Name | Type | Description | -+===========================+=========+=====================================================================================================================+ -| OpenSpeedLimit | Double | maximum allowed speed if not restricted by signs | -+---------------------------+---------+---------------------------------------------------------------------------------------------------------------------+ -| KeepToOuterLanes | Bool | if true, vehicles must use the outermost free lane for driving | -+---------------------------+---------+---------------------------------------------------------------------------------------------------------------------+ -| DontOvertakeOnOuterLanes | Bool | if true, it is prohibited to overtake another vehicle, that is driving further left (or right for lefthand traffic) | -+---------------------------+---------+---------------------------------------------------------------------------------------------------------------------+ -| FormRescueLane | Bool | if true, vehicles driving in a traffic jam must form a corridor for emergency vehicles | -+---------------------------+---------+---------------------------------------------------------------------------------------------------------------------+ -| ZipperMerge | Bool | if true all merging shall be performed using zipper merge | -+---------------------------+---------+---------------------------------------------------------------------------------------------------------------------+ - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/ProfilesCatalog.xml - :language: xml - :start-at: <ProfileGroup Type="TrafficRules"> - :end-at: </ProfileGroup> +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _profilescatalog: + +ProfilesCatalog +=============== + +The ProfilesCatalog contains all AgentProfiles, SystemProfiles and generic ProfileGroups and Profiles. +Depending on the configuration the simulator could require a "Driver"-ProfileGroup, a "Spawner"- and "TrafficGroup"-ProfileGroup, a "TrafficRules"-ProfileGroup or sensor and vehiclecomponent specific ProfileGroups. + +* :ref:`profilescatalog_agentprofiles` +* :ref:`profilescatalog_systemprofiles` +* :ref:`profilescatalog_profilegroups` +* :ref:`profilescatalog_driverprofiles` +* :ref:`profilescatalog_vehiclecomponentprofiles` +* :ref:`profilescatalog_spawnerprofiles` +* :ref:`profilescatalog_trafficrulesprofiles` + +.. _profilescatalog_agentprofiles: + +AgentProfiles +------------- + +In this section all AgentProfiles are defined. +An AgentProfile is either static or dynamic. +A static AgentProfile consists of a SystemConfig and a VehicleModel. +A dynamic AgentProfile specifies the composition of the agent according to certain probabilities. +Here the initial driver, system profile and the vehicle models of an agent get specified. +At least one AgentProfile is required. +But every AgentProfile referenced in the used :ref:`scenario` file or :ref:`components_trafficgroups` must exist. +All probabilities must add up to 1.0. + +Composition of a static AgentProfile: + ++-----------------+-----------------------------------------------------------------------+-----------+ +| Tag | Description | Required | ++=================+=======================================================================+===========+ +| System | Reference to a system defined in a SystemConfig | Yes | ++-----------------+-----------------------------------------------------------------------+-----------+ +| VehicleModel | Name of the VehicleModel in the :ref:`scenario_vehiclemodels` | Yes | ++-----------------+-----------------------------------------------------------------------+-----------+ + +Composition of a dynamic AgentProfile: + ++-----------------+---------------------------------------------------------------------------------+--------------------+ +| Tag | Description | Required | ++=================+=================================================================================+====================+ +| DriverProfiles | List of :ref:`profilescatalog_driverprofiles` for random selection | At least one entry | ++-----------------+---------------------------------------------------------------------------------+--------------------+ +| SystemProfiles | List of :ref:`profilescatalog_systemprofiles` for random selection | At least one entry | ++-----------------+---------------------------------------------------------------------------------+--------------------+ +| VehicleModels | List of vehicle models for random selection | At least one entry | ++-----------------+---------------------------------------------------------------------------------+--------------------+ + +Example +~~~~~~~ + +In this experiment the ego agent is defined by the system with Id 0 in systemConfig.xml and the VehicleModel car_bmw_7. +Every LuxuryClassCarAgent has the driver profile "AgentFollowingDriver". +Regarding the system profile 50% have a NoADAS and the other 50% have WithAEB. +Regarding the vehicle model 50% use a car_mini_cooper and the other 50% use car_bmw_7_1 vehicle model. + +.. code-block:: xml + + <AgentProfiles> + <AgentProfile Name="EgoAgent" Type="Static"> + <System> + <File>systemConfig.xml</File> + <Id>0</Id> + </System> + <VehicleModel>car_bmw_7</VehicleModel> + </AgentProfile> + <AgentProfile Name="LuxuryClassCarAgent" Type="Dynamic"> + <DriverProfiles> + <DriverProfile Name="AgentFollowingDriver" Probability="1.0"/> + </DriverProfiles> + <SystemProfiles> + <SystemProfile Name="NoADAS" Probability="0.5"/> + <SystemProfile Name="WithAEB" Probability="0.5"/> + </SystemProfiles> + <VehicleModels> + <VehicleModel Name="car_mini_cooper" Probability="0.5"/> + <VehicleModel Name="car_bmw_7_1" Probability="0.5"/> + </VehicleModels> + </AgentProfile> + </AgentProfiles> + +.. _profilescatalog_systemprofiles: + +SystemProfiles +-------------- + +This sections contains all system profiles. +Every SystemProfile used by :ref:`profilescatalog_agentprofiles` must be listed here. + +.. code-block:: xml + + <SystemProfiles> + <SystemProfile Name="WithAEB"> + <Components> + <Component Type="AEB"> + <Profiles> + <Profile Name="AebProfile" Probability="0.5"/> + </Profiles> + <SensorLinks> + <SensorLink SensorId="0" InputId="Camera"/> + </SensorLinks> + </Component> + </Components> + <Sensors> + <Sensor Id="0" Position="Default"> + <Profile Type="Geometric2D" Name="Standard"/> + </Sensor> + </Sensors> + </SystemProfile> + ... + </SystemProfiles> + ++-------------+--------------------------------------------------------+ +| Attribute | Description | ++=============+========================================================+ +| Name | Name of the vehicle profile | ++-------------+--------------------------------------------------------+ +| Components | Lists all ADAS and other components in the vehicle | ++-------------+--------------------------------------------------------+ +| Sensors | Lists all sensors in the vehicle | ++-------------+--------------------------------------------------------+ + +.. _profilescatalog_components: + +Components +~~~~~~~~~~ + ++-------------+-------------------------------------------------------------------------------------------------+ +| Attribute | Description | ++=============+=================================================================================================+ +| Type | Type of the component. | +| | | +| | Must match component name in SystemConfigBlueprint | ++-------------+-------------------------------------------------------------------------------------------------+ +| Profile | Possible profiles of the component with probabilities. | +| | | +| | The profiles are defined in the :ref:`profilescatalog_vehiclecomponentprofiles` section | +| | | +| | Probabilities do not need to add up to 1. | ++-------------+-------------------------------------------------------------------------------------------------+ +| SensorLinks | Defines which sensor this component uses as input | ++-------------+-------------------------------------------------------------------------------------------------+ + +.. note:: The possibility of "not having that component" can be achieved if the probabilities of the profiles do not add up to 1. + +.. _profilescatalog_sensors: + +Sensors +~~~~~~~ + ++-------------+-------------------------------------------------------------------------------------------------+ +| Attribute | Description | ++=============+=================================================================================================+ +| Id | Identifier for the sensor used by the SensorLink definition of the components | ++-------------+-------------------------------------------------------------------------------------------------+ +| Position | Position of the sensor in the vehicle in relative coordinates | ++-------------+-------------------------------------------------------------------------------------------------+ +| Profile | All possible profiles of the sensor with probabilities. | +| | | +| | The profiles are defined in the :ref:`profilescatalog_vehiclecomponentprofiles` section | ++-------------+-------------------------------------------------------------------------------------------------+ + +.. code-block:: xml + + <Sensors> + <Sensor Id="0" Position="Default"> + <Profile Type="ReceiverCar2X" Name="Standard"/> + </Sensor> + <Sensor Id="1" Position="FrontWindow"> + <Profile Type="Geometric2D" Name="Standard"/> + </Sensor> + </Sensors> + +.. note:: The Position attribute in the XML specifies placement of a sensor within a vehicle. The position is defined in VehicleModelsCatalog. + It follows the format "SensorPosition/Position/Parameters". The parameters height, lateral, longitudinal, pitch, roll and yaw are required. + For example, "FrontWindow" describes a sensor mounted on the front window, with corresponding positional parameters. + See example catalog in :ref:`scenario_vehiclemodels`. + +.. _profilescatalog_profilegroups: + +ProfileGroups +------------- + +A ProfileGroup defines all the possible profiles of a component. +A single profile is a set of parameters that are passed to the component in the same way as the parameters in the SystemConfig. +Note: For components that have their parameters defined in the ProfilesCatalog the parameters in the SystemConfigBlueprint are ignored. +Parameters can either be simple or stochastic. +Simple parameters only have one value, while stochastic parameters have a minimum and maximum value as well as distribution specific parameters. +Which parameters are needed/supported depends on the component. + +.. code-block:: xml + + <ProfileGroup Type="ComponentName"> + <Profile Name="ExampleProfile"> + <String Key="StringParameter" Value="Lorem ipsum"/> + <DoubleVector Key="DoubleParameter" Value="12.3,4.56,78.9"/> + <NormalDistribution Key="RandomParameter" Mean="4.5" SD="0.5" Min="3.5" Max="10.0"/> + </Profile> + <Profile Name="AnotherProfile"> + ... + </Profile> + </ProfileGroup> + +There are the following types of simple parameters: + +* Bool +* Int +* Double +* String +* IntVector +* DoubleVector +* StringVector + +If a parameter is stochastic it can be defined as any to be drawn from any of the following distributions: + ++-------------------------+--------------------------------------------------+ +| Distribution | Additional Attributes | ++=========================+==================================================+ +| NormalDistribution | (Mean and SD) or (Mu and Sigma) - equivalent | ++-------------------------+--------------------------------------------------+ +| LogNormalDistribution | (Mean and SD) or (Mu and Sigma) - not equivalent | ++-------------------------+--------------------------------------------------+ +| UniformDistribution | None | ++-------------------------+--------------------------------------------------+ +| ExponentialDistribution | Lambda or Mean (Mean = 1 / Lambda) | ++-------------------------+--------------------------------------------------+ +| GammaDistribution | (Mean and SD) or (Shape and Scale) | ++-------------------------+--------------------------------------------------+ + +Additionally there is the list type. +The list contains any number of list items which itself contain a list of parameters. +Lists can be nested at most two times. + +.. code-block:: xml + + <List Name="ExampleList"> + <ListItem> + <String Key="FirstParameter" Value="Lorem"/> + <Double Key="SecondParameter" Value="0.4"/> + </ListItem> + <ListItem> + <String Key="FirstParameter" Value="ipsum"/> + <Double Key="SecondParameter" Value="0.6"/> + </ListItem> + </List> + + +A Profile can also reference another Profile in another ProfileGroup. +In these case the importer handles the reference as if it was substituted by all subelements of the referenced Profile. +References may not be nested. + +.. code-block:: xml + + <Reference Type="GroupType" Name="ProfileName"/> + + +.. _profilescatalog_driverprofiles: + +Driver ProfileGroup +------------------- + +This section contains all driver profiles used by the simulation. +At least one driver profile is required. +The special parameter "Type" defines the name of the component (i.e. library name). +For details on the individual parameters see the :ref:`components reference <components_driver>`. + +.. code-block:: xml + + <ProfileGroup Type="Driver"> + <Profile Name="Name"> + <String Key="Type" Value="DriverLibrary"/> + ... + </Profile> + ... + </ProfileGroup> + + +.. _profilescatalog_vehiclecomponentprofiles: + +VehicleComponent ProfileGroups +------------------------------ + +This sections contains all driver assistance systems and other vehicle components and their parameter sets. +For every used VehicleComponent type there must be a ProfileGroup with this type and every profile of this type used by :ref:`profilescatalog_systemprofiles` must be listed here. +For details on the individual parameters see the :ref:`components reference <components_vehiclecomponents>`. + +.. code-block:: xml + + <ProfileGroup Type="LibraryName"> + <Profile Name="Name"> + ... + </Profile> + ... + </ProfileGroup> + + +.. _profilescatalog_spawnerprofiles: + +SpawnerProfile ProfileGroup +--------------------------- + +This sections contains all parameters of the spawners referenced in the :ref:`simulationconfig`. +For details on the individual parameters see the :ref:`components reference <components_spawner>`. + +.. code-block:: xml + + <ProfileGroup Type="Spawner"> + <Profile Name="Name"> + ... + </Profile> + ... + </ProfileGroup> + + +.. _profilescatalog_trafficrulesprofiles: + +TrafficRules ProfileGroup +------------------------- + +This sections contains the global traffic rules, that may vary depending on the country. +The following country are supported: + ++-------------+---------------+ +| Name | Description | ++=============+===============+ +| DE | Germany | ++-------------+---------------+ +| US | United States | ++-------------+---------------+ +| CN | China | ++-------------+---------------+ + +The :ref:`simulationconfig_environment` section in the SimulationConfig defines which set is used. +Currently there are only rules regulating highway traffic. These are the following: + ++---------------------------+---------+---------------------------------------------------------------------------------------------------------------------+ +| Name | Type | Description | ++===========================+=========+=====================================================================================================================+ +| OpenSpeedLimit | Double | maximum allowed speed if not restricted by signs | ++---------------------------+---------+---------------------------------------------------------------------------------------------------------------------+ +| KeepToOuterLanes | Bool | if true, vehicles must use the outermost free lane for driving | ++---------------------------+---------+---------------------------------------------------------------------------------------------------------------------+ +| DontOvertakeOnOuterLanes | Bool | if true, it is prohibited to overtake another vehicle, that is driving further left (or right for lefthand traffic) | ++---------------------------+---------+---------------------------------------------------------------------------------------------------------------------+ +| FormRescueLane | Bool | if true, vehicles driving in a traffic jam must form a corridor for emergency vehicles | ++---------------------------+---------+---------------------------------------------------------------------------------------------------------------------+ +| ZipperMerge | Bool | if true all merging shall be performed using zipper merge | ++---------------------------+---------+---------------------------------------------------------------------------------------------------------------------+ + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/ProfilesCatalog.xml + :language: xml + :start-at: <ProfileGroup Type="TrafficRules"> + :end-at: </ProfileGroup> diff --git a/content/html/_sources/user_guide/configs/scenario.rst.txt b/content/html/_sources/user_guide/configs/scenario.rst.txt index df1b297aa29aa9cd1cb1ea14688b44c50ee998b3..ca3939ea8624899144c6e698897c916d351eee7d 100644 --- a/content/html/_sources/user_guide/configs/scenario.rst.txt +++ b/content/html/_sources/user_guide/configs/scenario.rst.txt @@ -1,551 +1,551 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - 2022-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _scenario: - -Scenario -======== - -.. _scenario_overview: - -Overview --------- - -The scenario configuration file (``*.xosc``) describes all dynamic configurations of a simulation run, i.e. position of various road users as well as conditional events that change the behavior of the simulation during the run. -The scenario control is carried out using the `OpenScenarioEngine <https://gitlab.eclipse.org/eclipse/openpass/openscenario1_engine>`_, which processes scenarios according to `ASAM OpenSCENARIO <https://www.asam.net/standards/detail/openscenario/>`_. -It is interfaced using the `MantleAPI <https://gitlab.eclipse.org/eclipse/openpass/mantle-api>`_. -For the list of MantleAPI features supported by |op| see :ref:`scenario_api_support`. - -At the time of writing, the OpenScenarioEngine processes scenario configurations in version 1.1.1, but please refer to the corresponding documentations for possible and implemented features. - -In the following, the most important features for openPASS are described. - -.. _scenario_parameterdeclaration: - -ParameterDeclarations ---------------------- - -The tag ``ParameterDeclarations`` allow to define generic parameters, which can be referenced later the file by its name, prefixed with ``$``. - -**Example declaration** - -.. code-block:: xml - - <ParameterDeclarations> - <ParameterDeclaration name="simulation_time" parameterType="double" value="123.4"/> - </ParameterDeclarations> - -**Example usage** - -.. code-block:: xml - - <StopTrigger> - <ConditionGroup> - <Condition name="EndTime" delay="0" conditionEdge="rising"> - <ByValueCondition> - <SimulationTimeCondition value="$simulation_time" rule="greaterThan"/> - </ByValueCondition> - </Condition> - </ConditionGroup> - </StopTrigger> - -.. list-table:: - :header-rows: 1 - - * - Supported ParameterTypes - * - string - * - integer - * - double - -.. note:: Only ``string`` allows empty values. - -.. _scenario_catalogs: - -Catalogs --------- - -The ``Catalogs`` tag defines locations of various other files containing sub features of OpenSCENARIO for easier reusing (and written in the same format). - -The following catalogs are the most important: - -- :ref:`scenario_vehiclemodels` -- :ref:`scenario_pedestrianmodels` -- TrajectoryCatalog for the case that a *FollowTrajectory action* is defined - -The VehicleCatalog is also used by |op| itself for spawning of Common vehicles and therefore mandatory. - -**Example** - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/Scenario.xosc - :language: xml - :dedent: 2 - :start-at: <CatalogLocations> - :end-at: </CatalogLocations> - -.. _scenario_vehiclemodels: - -VehicleCatalog -~~~~~~~~~~~~~~ - -This path is mandatory. -It has to contain a file named "VehicleModelsCatalog.xosc". -This file contains the available vehicle model catalogs for the simulation. -For each vehicle the physical parameters are stored here. - -.. list-table:: - :header-rows: 1 - - * - Supported Models - * - car_bmw_i3 - * - car_bmw_3 - * - car_bmw_7_1 - * - car_bmw_7_2 - * - car_mini_cooper - * - bus - * - truck - * - bicycle - - -**Example Catalog:** - -:download:`/../../../repo/sim/contrib/examples/Common/Vehicles/VehicleModelsCatalog.xosc` - -.. _scenario_pedestrianmodels: - -PedestrianCatalog -~~~~~~~~~~~~~~~~~ - -It contains the available pedestrian model catalogs for the simulation. -For each pedestrian the physical parameters are stored here. - -.. note:: - - Within |op|, pedestrian models are internally handled the same way as vehicle models, i.e. they behave like simplified vehicles. - *Meaningless* parameters, such as *number of gears*, are set to operational defaults. - -.. list-table:: - :header-rows: 1 - - * - Supported Models - * - pedestrian_child - * - pedestrian_adult - -**Full Example:** :download:`/../../../repo/sim/contrib/examples/Common/Vehicles/PedestrianModelsCatalog.xosc` - -.. _scenario_roadnetwork: - -RoadNetwork ------------ - -.. _OpenDRIVE: https://www.asam.net/standards/detail/opendrive/ - -The ``RoadNetwork`` tag contains the mandatory reference to the `OpenDRIVE`_ :ref:`scenery`. - -**Example** - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/Scenario.xosc - :language: xml - :dedent: 2 - :start-at: <RoadNetwork> - :end-at: </RoadNetwork> - -Furthermore the controllers of the traffic lights are defined in this section. -Each controller defines the phases of a set of linked traffic lights (e.g. one junction). - -**Example** - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/TrafficLight/Scenario.xosc - :language: xml - :dedent: 4 - :start-at: <TrafficSignals> - :end-at: </TrafficSignals> - -.. list-table:: - :header-rows: 1 - - * - Supported States - * - off - * - red - * - yellow - * - green - * - red yellow - * - yellow flashing - -.. _scenario_entities: - -Entities --------- - -The ``Entities`` tag defines all agents that are present at the start of the simulation at predefined positions. -There may be any number of these so called **Scenario Agents** (also zero). - -.. note:: EntitySelections are currently not supported by the OpenScenarioEngine - -An entity consits of a ``VehicleModel`` (typically a reference an entry from the VehicleCatalog) and a controller. -The controller is **optional** and if no controller is specified, a *default* contoller will be instantiated, which strictly follows OpenSCENARIO actions as requested by the standard. -Unless requested differently through specific actions, it follows the *default* behaviors `KeepVelocity` and `KeepLateralOffset`. -To use the openPASS specific scenario controller a controller with a single parameter named ``AgentProfile`` needs to be specified. - -.. admonition:: AgentProfile and ProfilesCatalog - - The ``AgentProfile`` links to a profile in the mandatory ``ProfilesCatalog.xml`` (see :ref:`profilescatalog`). - This is an extension w.r.t. the OpenSCENARIO standard, as the standard currently does not allow to specifiy a stochastic composition of entities. - -**Example** - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/Scenario.xosc - :language: xml - :dedent: 2 - :start-at: <Entities> - :end-at: </Entities> - -**Overriding Parameters** - -Parameters defined in the VehicleCatalog can be assigned inside the CatalogReference element. -In this case the assigned parameter will overwrite the definition in the VehicleCatalog. -Otherwise the value defined in the VehicleCatalog is used. -The type of the parameter must match that in the VehicleCatalog. - -**Example** - -.. code-block:: xml - - <CatalogReference catalogName="VehicleCatalog" entryName="car_mini_cooper"> - <ParameterAssignments> - <ParameterAssignment parameterRef="Length" value="4.0" /> - </ParameterAssignments> - </CatalogReference> - -.. _scenario_storyboard: - -Storyboard ----------- - -The ``Storyboard`` tag contains the initial setup of the scenario and manipulator actions. -These actions control the behavior of the simulation at runtime based on predefined conditions. -In short it is divided into an ``Init`` phase, an actual ``Story``, and a ``StopTrigger``. - -For the definition of the storyboard please refert to the `OpenSCENARIO 1.1.1 Model Definition <https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/>`_. - -In the following sections, clarifications with respect to |op| will be given: - -.. _scenario_init: - -Init -~~~~ - -As desribed above, agents need to be defined in the ``Entities`` section. -For proper spawning they need to be parameterized within the ``Init`` phase: - -- A `TeleportAction <https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/content/TeleportAction.html>`_ specifies the initial position - If no TeleportAction is defined the agent will not be spawned (the TeleportAction can also happen inside the ``Story``). -- A `SpeedAction <https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/content/SpeedAction.html>`_ specifies the desired velocity. - [optional] If not defined, a spawned agent will start at standstill. -- A `FollowRouteAction <https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/content/FollowRouteAction.html>`_ forces the agent onto a specific trajectory - [optional] If not defined, a random route will be assigned. - -.. note:: VisiblilityAction is currently not supported by |op| - -**Example: TeleportAction + SpeedAction** - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/Scenario.xosc - :language: xml - :dedent: 4 - :start-at: <Init> - :end-at: </Init> - - -**Example: TeleportAction + FollowRouteAction** - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/OSCAction_FollowRouteAction/Scenario.xosc - :language: xml - :dedent: 4 - :start-at: <Init> - :end-at: </Init> - -.. _scenario_story: - -Story -~~~~~ - -The tag ``Story`` is optional and defines all conditional interventions during runtime. -Please refer to the `Model Documentation <https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.2.0_Model_Documentation/modelDocumentation/content/Storyboard.html>`_ for a general overview and the `OpenScenarioEngine <https://gitlab.eclipse.org/eclipse/openpass/openscenario1_engine>`_ for supported actions and conditions within a story. - -StopTrigger -~~~~~~~~~~~ - -It is **mandatory** for openPASS to define a StopTrigger that will fire in any case (otherwise, the simulation will never stop). -This does not necessarily have to be a SimulationTimeCondition, but it is recommended to use it, perhaps in conjunction with another trigger. - -Current Restrictions --------------------- - -Conditions -~~~~~~~~~~~ - -|Op| support different kind of conditions, belonging either to ``ByValueCondition`` or ``ByEntityCondition``. -While a **by value condition** triggers based on a specified value and is unrelated to any specific agent, a **by entity condition** is bound to an triggering agent, defined by a mandatory section ``TriggeringEntities``. -Entities can be either ego or scenario agents. - -.. note:: Reacting on "common" cars is currently not supported. - -Actions -~~~~~~~ - -The following OpenSCENARIO actions are supported: - -- :ref:`scenario_followrouteaction` -- :ref:`scenario_lanechange` -- :ref:`scenario_followtrajectory` -- :ref:`scenario_acquireposition` -- :ref:`scenario_teleportaction` -- :ref:`scenario_speedaction` -- :ref:`scenario_trafficsinkaction` - -In addition, the following user defined actions are interpreted: - -- :ref:`scenario_componentstatechange` -- :ref:`scenario_defaultCustomCommandAction` - -.. _scenario_followrouteaction: - -FollowRouteAction -+++++++++++++++++ - -The FollowRouteAction is mainly used as part of the ``Init`` phase of the Storyboard. -It defines Waypoints, which are located by ``road_id`` and further with ``s`` and ``t`` coordinates. -The Agent will try to follow the specified points. - -**Example** *Right turn, by specifying three waypoints* - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/OSCAction_FollowRouteAction/Scenario.xosc - :language: xml - :dedent: 2 - :start-at: <RoutingAction> - :end-at: </RoutingAction> - -.. _scenario_lanechange: - -LaneChangeAction -++++++++++++++++ - -If this action triggers, the actor is forced to perform a trajectory, calculated at the time of triggering. -The target lane be given either absolute or with respect to another entity. -The trajectory can either have a fixed length (in ``s``) or a fixed time. - -Currently |op| only supports the type ``sinusoidal``. - -**Example** *with absolute target and fixed length* - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/OSCAction_SinusoidalLaneChangeLeft_Absolute/Scenario.xosc - :language: xml - :dedent: 14 - :start-at: <Action name="LaneChange"> - :end-at: </Action> - -**Example** *with relative target and fixed time* - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/OSCAction_SinusoidalLaneChangeLeft_Relative/Scenario.xosc - :language: xml - :dedent: 14 - :start-at: <Action name="LaneChange"> - :end-at: </Action> - -.. _scenario_followtrajectory: - -FollowTrajectoryAction -++++++++++++++++++++++ - -If triggered, the defined trajectory is relayed as signal to listening components. -The trajectory can be defined either directly in the story or as separate TrajectoryCatalog. -For the points (vertices) of the trajectory only world coordinates, given as ``openScenario::WorldPosition``, are supported. -Right now, the mandatory attributes *z*, *pitch* and *roll* are ignored. - -**Example** - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/Pedestrian_Trajectory/Scenario.xosc - :language: xml - :dedent: 14 - :start-at: <Action name="Trajectory"> - :end-at: </Action> - -**Example** *using a TrajectoryCatalog* - -.. code-block:: xml - - <Action name="FollowTrajectory"> - <Private> - <Routing> - <FollowTrajectoryAction> - <CatalogReference catalogName="TrajectoryCatalog.xosc" entryName="TrajectoryA"> - </FollowTrajectoryAction> - </Routing> - </Private> - </Action> - -.. _scenario_acquireposition: - -AcquirePositionAction -+++++++++++++++++++++ - -If triggered, the defined position is relayed as signal to listening components. - -.. warning:: Currently, this is only supported by the component *FMU_Wrapper* for OSMP messages. - -.. warning:: - - An FMU might contain routing logic not visible to the openPASS simulation core. - For that reason, an equivalent `RoutingAction` should be set when using `AcquirePosition`. - Otherwise the simulation output might contain missing data for fields depending on the localization along the route (`PositionRoute`, `TCoordinate`, `AgentInFront`, ...). - -**Example** *(WorldPosition)* - -.. code-block:: xml - - <Action name="AcquirePosition"> - <PrivateAction> - <RoutingAction> - <AcquirePositionAction> - <Position> - <WorldPosition x="1.0" y="2.0" z="0.0" h="3.1415" p="0.0" r="0.0" /> - </Position> - </AcquirePositionAction> - </RoutingAction> - </PrivateAction> - </Action> - -**Example** *(RelativeObjectPosition)* - -.. code-block:: xml - - <Action name="AcquirePosition"> - <PrivateAction> - <RoutingAction> - <AcquirePositionAction> - <Position> - <RelativeObjectPosition dx="1.0" dy="1.0" entityRef="S1"/> - </Position> - </AcquirePositionAction> - </RoutingAction> - </PrivateAction> - </Action> - -.. _scenario_teleportaction: - -TeleportAction -++++++++++++++ - -The TeleportAction instantly changes the position of an entity. - -.. _scenario_trafficsinkaction: - -TrafficSinkAction -+++++++++++++++++ - -The TrafficSinkAction is used to remove agents when they reach a certain position. - -.. note:: - - At spawning time, the TrafficSinkAction is executed the common traffic is initiated, which means vehicles will spawn at the first timestamp in the defined zone, but are immediately removed at the next timestep. - -.. _scenario_speedaction: - -SpeedAction -+++++++++++ - -The SpeedAction adjusts the velocity of an entity based on parameters of the SpeedAction. - -.. note:: - - If the |op| specific controller is used, the SpeedAction might not reflect actual values used by the simulator due to physical boundaries of the simulator. - -**Example** *AbsoulteTargetSpeed* - -.. code-block:: xml - - <Action name="SpeedAction"> - <PrivateAction> - <LongitudinalAction> - <SpeedAction> - <SpeedActionDynamics dynamicsShape="step" value="0.0" dynamicsDimension="rate"/> - <SpeedActionTarget> - <AbsoluteTargetSpeed value="20"/> - </SpeedActionTarget> - </SpeedAction> - </LongitudinalAction> - </PrivateAction> - </Action> - -**Example** *RelativeTargetSpeed* - -.. code-block:: xml - - <Action name="SpeedAction"> - <PrivateAction> - <LongitudinalAction> - <SpeedAction> - <SpeedActionDynamics dynamicsShape="step" value="0.0" dynamicsDimension="rate"/> - <SpeedActionTarget> - <RelativeTargetSpeed entityRef="ScenarioAgent" value="10" - speedTargetValueType="delta" continuous="false"/> - </SpeedActionTarget> - </SpeedAction> - </LongitudinalAction> - </PrivateAction> - </Action> - -.. _scenario_componentstatechange: - -SetComponentState (UserDefinedAction) -+++++++++++++++++++++++++++++++++++++ - -Command Keyword: ``SetComponentState`` - -Influences the maximum reachable state of an agent component handled by the ComponentController, i.e. it can either activate or deactivate a component. -For more details see the description of the :ref:`agentcomponents_componentcontroller`. - -**Example** - -.. code-block:: xml - - <Action name="ComponentStateChange"> - <UserDefinedAction> - <CustomCommandAction>SetComponentState Dynamics_TrajectoryFollower Acting</CustomCommandAction> - </UserDefinedAction> - </Action> - -.. _scenario_defaultCustomCommandAction: - -DefaultCustomCommandAction (UserDefinedAction) -++++++++++++++++++++++++++++++++++++++++++++++ - -This is **the** default custom command, and is always selected, if **the first WORD** (Keyword) in the command string is **not** registered as a special custom command. -The command is universally accessible across all components via `ScenarioControlInterface::GetCustomCommands()`, empowering users to define personalized actions tailored to their specific needs. -Once defined, the functionality of this command is unique to the user, based on their custom implementation. - -.. admonition:: FMU_Wrapper component for OSMP messages only - - The linked string signal is set as custom action of the TrafficCommand. For more information on OSMP FMUs see the :ref:`components_fmuwrapper` documentation. - -**Example** - -.. code-block:: xml - - <Action name="CustomParameters"> - <UserDefinedAction> - <CustomCommandAction>Arbitrary String, e.g. { "hello": "world"}</CustomCommandAction> - </UserDefinedAction> - </Action> - -.. note:: - - Here, "Arbitrary" is first checked, if it matches any other available Keyword for used defined actions, such as :ref:`scenario_componentstatechange`. +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2022-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _scenario: + +Scenario +======== + +.. _scenario_overview: + +Overview +-------- + +The scenario configuration file (``*.xosc``) describes all dynamic configurations of a simulation run, i.e. position of various road users as well as conditional events that change the behavior of the simulation during the run. +The scenario control is carried out using the `OpenScenarioEngine <https://gitlab.eclipse.org/eclipse/openpass/openscenario1_engine>`_, which processes scenarios according to `ASAM OpenSCENARIO <https://www.asam.net/standards/detail/openscenario/>`_. +It is interfaced using the `MantleAPI <https://gitlab.eclipse.org/eclipse/openpass/mantle-api>`_. +For the list of MantleAPI features supported by |op| see :ref:`scenario_api_support`. + +At the time of writing, the OpenScenarioEngine processes scenario configurations in version 1.1.1, but please refer to the corresponding documentations for possible and implemented features. + +In the following, the most important features for openPASS are described. + +.. _scenario_parameterdeclaration: + +ParameterDeclarations +--------------------- + +The tag ``ParameterDeclarations`` allow to define generic parameters, which can be referenced later the file by its name, prefixed with ``$``. + +**Example declaration** + +.. code-block:: xml + + <ParameterDeclarations> + <ParameterDeclaration name="simulation_time" parameterType="double" value="123.4"/> + </ParameterDeclarations> + +**Example usage** + +.. code-block:: xml + + <StopTrigger> + <ConditionGroup> + <Condition name="EndTime" delay="0" conditionEdge="rising"> + <ByValueCondition> + <SimulationTimeCondition value="$simulation_time" rule="greaterThan"/> + </ByValueCondition> + </Condition> + </ConditionGroup> + </StopTrigger> + +.. list-table:: + :header-rows: 1 + + * - Supported ParameterTypes + * - string + * - integer + * - double + +.. note:: Only ``string`` allows empty values. + +.. _scenario_catalogs: + +Catalogs +-------- + +The ``Catalogs`` tag defines locations of various other files containing sub features of OpenSCENARIO for easier reusing (and written in the same format). + +The following catalogs are the most important: + +- :ref:`scenario_vehiclemodels` +- :ref:`scenario_pedestrianmodels` +- TrajectoryCatalog for the case that a *FollowTrajectory action* is defined + +The VehicleCatalog is also used by |op| itself for spawning of Common vehicles and therefore mandatory. + +**Example** + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/Scenario.xosc + :language: xml + :dedent: 2 + :start-at: <CatalogLocations> + :end-at: </CatalogLocations> + +.. _scenario_vehiclemodels: + +VehicleCatalog +~~~~~~~~~~~~~~ + +This path is mandatory. +It has to contain a file named "VehicleModelsCatalog.xosc". +This file contains the available vehicle model catalogs for the simulation. +For each vehicle the physical parameters are stored here. + +.. list-table:: + :header-rows: 1 + + * - Supported Models + * - car_bmw_i3 + * - car_bmw_3 + * - car_bmw_7_1 + * - car_bmw_7_2 + * - car_mini_cooper + * - bus + * - truck + * - bicycle + + +**Example Catalog:** + +:download:`/../../../repo/sim/contrib/examples/Common/Vehicles/VehicleModelsCatalog.xosc` + +.. _scenario_pedestrianmodels: + +PedestrianCatalog +~~~~~~~~~~~~~~~~~ + +It contains the available pedestrian model catalogs for the simulation. +For each pedestrian the physical parameters are stored here. + +.. note:: + + Within |op|, pedestrian models are internally handled the same way as vehicle models, i.e. they behave like simplified vehicles. + *Meaningless* parameters, such as *number of gears*, are set to operational defaults. + +.. list-table:: + :header-rows: 1 + + * - Supported Models + * - pedestrian_child + * - pedestrian_adult + +**Full Example:** :download:`/../../../repo/sim/contrib/examples/Common/Vehicles/PedestrianModelsCatalog.xosc` + +.. _scenario_roadnetwork: + +RoadNetwork +----------- + +.. _OpenDRIVE: https://www.asam.net/standards/detail/opendrive/ + +The ``RoadNetwork`` tag contains the mandatory reference to the `OpenDRIVE`_ :ref:`scenery`. + +**Example** + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/Scenario.xosc + :language: xml + :dedent: 2 + :start-at: <RoadNetwork> + :end-at: </RoadNetwork> + +Furthermore the controllers of the traffic lights are defined in this section. +Each controller defines the phases of a set of linked traffic lights (e.g. one junction). + +**Example** + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/TrafficLight/Scenario.xosc + :language: xml + :dedent: 4 + :start-at: <TrafficSignals> + :end-at: </TrafficSignals> + +.. list-table:: + :header-rows: 1 + + * - Supported States + * - off + * - red + * - yellow + * - green + * - red yellow + * - yellow flashing + +.. _scenario_entities: + +Entities +-------- + +The ``Entities`` tag defines all agents that are present at the start of the simulation at predefined positions. +There may be any number of these so called **Scenario Agents** (also zero). + +.. note:: EntitySelections are currently not supported by the OpenScenarioEngine + +An entity consits of a ``VehicleModel`` (typically a reference an entry from the VehicleCatalog) and a controller. +The controller is **optional** and if no controller is specified, a *default* contoller will be instantiated, which strictly follows OpenSCENARIO actions as requested by the standard. +Unless requested differently through specific actions, it follows the *default* behaviors `KeepVelocity` and `KeepLateralOffset`. +To use the openPASS specific scenario controller a controller with a single parameter named ``AgentProfile`` needs to be specified. + +.. admonition:: AgentProfile and ProfilesCatalog + + The ``AgentProfile`` links to a profile in the mandatory ``ProfilesCatalog.xml`` (see :ref:`profilescatalog`). + This is an extension w.r.t. the OpenSCENARIO standard, as the standard currently does not allow to specifiy a stochastic composition of entities. + +**Example** + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/Scenario.xosc + :language: xml + :dedent: 2 + :start-at: <Entities> + :end-at: </Entities> + +**Overriding Parameters** + +Parameters defined in the VehicleCatalog can be assigned inside the CatalogReference element. +In this case the assigned parameter will overwrite the definition in the VehicleCatalog. +Otherwise the value defined in the VehicleCatalog is used. +The type of the parameter must match that in the VehicleCatalog. + +**Example** + +.. code-block:: xml + + <CatalogReference catalogName="VehicleCatalog" entryName="car_mini_cooper"> + <ParameterAssignments> + <ParameterAssignment parameterRef="Length" value="4.0" /> + </ParameterAssignments> + </CatalogReference> + +.. _scenario_storyboard: + +Storyboard +---------- + +The ``Storyboard`` tag contains the initial setup of the scenario and manipulator actions. +These actions control the behavior of the simulation at runtime based on predefined conditions. +In short it is divided into an ``Init`` phase, an actual ``Story``, and a ``StopTrigger``. + +For the definition of the storyboard please refert to the `OpenSCENARIO 1.1.1 Model Definition <https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/>`_. + +In the following sections, clarifications with respect to |op| will be given: + +.. _scenario_init: + +Init +~~~~ + +As desribed above, agents need to be defined in the ``Entities`` section. +For proper spawning they need to be parameterized within the ``Init`` phase: + +- A `TeleportAction <https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/content/TeleportAction.html>`_ specifies the initial position + If no TeleportAction is defined the agent will not be spawned (the TeleportAction can also happen inside the ``Story``). +- A `SpeedAction <https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/content/SpeedAction.html>`_ specifies the desired velocity. + [optional] If not defined, a spawned agent will start at standstill. +- A `FollowRouteAction <https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/content/FollowRouteAction.html>`_ forces the agent onto a specific trajectory + [optional] If not defined, a random route will be assigned. + +.. note:: VisiblilityAction is currently not supported by |op| + +**Example: TeleportAction + SpeedAction** + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/Scenario.xosc + :language: xml + :dedent: 4 + :start-at: <Init> + :end-at: </Init> + + +**Example: TeleportAction + FollowRouteAction** + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/OSCAction_FollowRouteAction/Scenario.xosc + :language: xml + :dedent: 4 + :start-at: <Init> + :end-at: </Init> + +.. _scenario_story: + +Story +~~~~~ + +The tag ``Story`` is optional and defines all conditional interventions during runtime. +Please refer to the `Model Documentation <https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.2.0_Model_Documentation/modelDocumentation/content/Storyboard.html>`_ for a general overview and the `OpenScenarioEngine <https://gitlab.eclipse.org/eclipse/openpass/openscenario1_engine>`_ for supported actions and conditions within a story. + +StopTrigger +~~~~~~~~~~~ + +It is **mandatory** for openPASS to define a StopTrigger that will fire in any case (otherwise, the simulation will never stop). +This does not necessarily have to be a SimulationTimeCondition, but it is recommended to use it, perhaps in conjunction with another trigger. + +Current Restrictions +-------------------- + +Conditions +~~~~~~~~~~~ + +|Op| support different kind of conditions, belonging either to ``ByValueCondition`` or ``ByEntityCondition``. +While a **by value condition** triggers based on a specified value and is unrelated to any specific agent, a **by entity condition** is bound to an triggering agent, defined by a mandatory section ``TriggeringEntities``. +Entities can be either ego or scenario agents. + +.. note:: Reacting on "common" cars is currently not supported. + +Actions +~~~~~~~ + +The following OpenSCENARIO actions are supported: + +- :ref:`scenario_followrouteaction` +- :ref:`scenario_lanechange` +- :ref:`scenario_followtrajectory` +- :ref:`scenario_acquireposition` +- :ref:`scenario_teleportaction` +- :ref:`scenario_speedaction` +- :ref:`scenario_trafficsinkaction` + +In addition, the following user defined actions are interpreted: + +- :ref:`scenario_componentstatechange` +- :ref:`scenario_defaultCustomCommandAction` + +.. _scenario_followrouteaction: + +FollowRouteAction ++++++++++++++++++ + +The FollowRouteAction is mainly used as part of the ``Init`` phase of the Storyboard. +It defines Waypoints, which are located by ``road_id`` and further with ``s`` and ``t`` coordinates. +The Agent will try to follow the specified points. + +**Example** *Right turn, by specifying three waypoints* + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/OSCAction_FollowRouteAction/Scenario.xosc + :language: xml + :dedent: 2 + :start-at: <RoutingAction> + :end-at: </RoutingAction> + +.. _scenario_lanechange: + +LaneChangeAction +++++++++++++++++ + +If this action triggers, the actor is forced to perform a trajectory, calculated at the time of triggering. +The target lane be given either absolute or with respect to another entity. +The trajectory can either have a fixed length (in ``s``) or a fixed time. + +Currently |op| only supports the type ``sinusoidal``. + +**Example** *with absolute target and fixed length* + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/OSCAction_SinusoidalLaneChangeLeft_Absolute/Scenario.xosc + :language: xml + :dedent: 14 + :start-at: <Action name="LaneChange"> + :end-at: </Action> + +**Example** *with relative target and fixed time* + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/OSCAction_SinusoidalLaneChangeLeft_Relative/Scenario.xosc + :language: xml + :dedent: 14 + :start-at: <Action name="LaneChange"> + :end-at: </Action> + +.. _scenario_followtrajectory: + +FollowTrajectoryAction +++++++++++++++++++++++ + +If triggered, the defined trajectory is relayed as signal to listening components. +The trajectory can be defined either directly in the story or as separate TrajectoryCatalog. +For the points (vertices) of the trajectory only world coordinates, given as ``openScenario::WorldPosition``, are supported. +Right now, the mandatory attributes *z*, *pitch* and *roll* are ignored. + +**Example** + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/Pedestrian_Trajectory/Scenario.xosc + :language: xml + :dedent: 14 + :start-at: <Action name="Trajectory"> + :end-at: </Action> + +**Example** *using a TrajectoryCatalog* + +.. code-block:: xml + + <Action name="FollowTrajectory"> + <Private> + <Routing> + <FollowTrajectoryAction> + <CatalogReference catalogName="TrajectoryCatalog.xosc" entryName="TrajectoryA"> + </FollowTrajectoryAction> + </Routing> + </Private> + </Action> + +.. _scenario_acquireposition: + +AcquirePositionAction ++++++++++++++++++++++ + +If triggered, the defined position is relayed as signal to listening components. + +.. warning:: Currently, this is only supported by the component *FMU_Wrapper* for OSMP messages. + +.. warning:: + + An FMU might contain routing logic not visible to the openPASS simulation core. + For that reason, an equivalent `RoutingAction` should be set when using `AcquirePosition`. + Otherwise the simulation output might contain missing data for fields depending on the localization along the route (`PositionRoute`, `TCoordinate`, `AgentInFront`, ...). + +**Example** *(WorldPosition)* + +.. code-block:: xml + + <Action name="AcquirePosition"> + <PrivateAction> + <RoutingAction> + <AcquirePositionAction> + <Position> + <WorldPosition x="1.0" y="2.0" z="0.0" h="3.1415" p="0.0" r="0.0" /> + </Position> + </AcquirePositionAction> + </RoutingAction> + </PrivateAction> + </Action> + +**Example** *(RelativeObjectPosition)* + +.. code-block:: xml + + <Action name="AcquirePosition"> + <PrivateAction> + <RoutingAction> + <AcquirePositionAction> + <Position> + <RelativeObjectPosition dx="1.0" dy="1.0" entityRef="S1"/> + </Position> + </AcquirePositionAction> + </RoutingAction> + </PrivateAction> + </Action> + +.. _scenario_teleportaction: + +TeleportAction +++++++++++++++ + +The TeleportAction instantly changes the position of an entity. + +.. _scenario_trafficsinkaction: + +TrafficSinkAction ++++++++++++++++++ + +The TrafficSinkAction is used to remove agents when they reach a certain position. + +.. note:: + + At spawning time, the TrafficSinkAction is executed the common traffic is initiated, which means vehicles will spawn at the first timestamp in the defined zone, but are immediately removed at the next timestep. + +.. _scenario_speedaction: + +SpeedAction ++++++++++++ + +The SpeedAction adjusts the velocity of an entity based on parameters of the SpeedAction. + +.. note:: + + If the |op| specific controller is used, the SpeedAction might not reflect actual values used by the simulator due to physical boundaries of the simulator. + +**Example** *AbsoulteTargetSpeed* + +.. code-block:: xml + + <Action name="SpeedAction"> + <PrivateAction> + <LongitudinalAction> + <SpeedAction> + <SpeedActionDynamics dynamicsShape="step" value="0.0" dynamicsDimension="rate"/> + <SpeedActionTarget> + <AbsoluteTargetSpeed value="20"/> + </SpeedActionTarget> + </SpeedAction> + </LongitudinalAction> + </PrivateAction> + </Action> + +**Example** *RelativeTargetSpeed* + +.. code-block:: xml + + <Action name="SpeedAction"> + <PrivateAction> + <LongitudinalAction> + <SpeedAction> + <SpeedActionDynamics dynamicsShape="step" value="0.0" dynamicsDimension="rate"/> + <SpeedActionTarget> + <RelativeTargetSpeed entityRef="ScenarioAgent" value="10" + speedTargetValueType="delta" continuous="false"/> + </SpeedActionTarget> + </SpeedAction> + </LongitudinalAction> + </PrivateAction> + </Action> + +.. _scenario_componentstatechange: + +SetComponentState (UserDefinedAction) ++++++++++++++++++++++++++++++++++++++ + +Command Keyword: ``SetComponentState`` + +Influences the maximum reachable state of an agent component handled by the ComponentController, i.e. it can either activate or deactivate a component. +For more details see the description of the :ref:`agentcomponents_componentcontroller`. + +**Example** + +.. code-block:: xml + + <Action name="ComponentStateChange"> + <UserDefinedAction> + <CustomCommandAction>SetComponentState Dynamics_TrajectoryFollower Acting</CustomCommandAction> + </UserDefinedAction> + </Action> + +.. _scenario_defaultCustomCommandAction: + +DefaultCustomCommandAction (UserDefinedAction) +++++++++++++++++++++++++++++++++++++++++++++++ + +This is **the** default custom command, and is always selected, if **the first WORD** (Keyword) in the command string is **not** registered as a special custom command. +The command is universally accessible across all components via `ScenarioControlInterface::GetCustomCommands()`, empowering users to define personalized actions tailored to their specific needs. +Once defined, the functionality of this command is unique to the user, based on their custom implementation. + +.. admonition:: FMU_Wrapper component for OSMP messages only + + The linked string signal is set as custom action of the TrafficCommand. For more information on OSMP FMUs see the :ref:`components_fmuwrapper` documentation. + +**Example** + +.. code-block:: xml + + <Action name="CustomParameters"> + <UserDefinedAction> + <CustomCommandAction>Arbitrary String, e.g. { "hello": "world"}</CustomCommandAction> + </UserDefinedAction> + </Action> + +.. note:: + + Here, "Arbitrary" is first checked, if it matches any other available Keyword for used defined actions, such as :ref:`scenario_componentstatechange`. diff --git a/content/html/_sources/user_guide/configs/scenario_api_support.rst.txt b/content/html/_sources/user_guide/configs/scenario_api_support.rst.txt index 3858bbc5061341c9912df753fc676311a10763bc..81af559ae17e91e3e3e42087685650a3e4249e54 100644 --- a/content/html/_sources/user_guide/configs/scenario_api_support.rst.txt +++ b/content/html/_sources/user_guide/configs/scenario_api_support.rst.txt @@ -1,18 +1,18 @@ -.. - ******************************************************************************* - 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _scenario_api_support: - -Scenario API Support -==================== - -.. include:: /../../../repo/scenario_api_support.md - :parser: myst_parser.sphinx_ +.. + ******************************************************************************* + 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _scenario_api_support: + +Scenario API Support +==================== + +.. include:: /../../../repo/scenario_api_support.md + :parser: myst_parser.sphinx_ diff --git a/content/html/_sources/user_guide/configs/scenery.rst.txt b/content/html/_sources/user_guide/configs/scenery.rst.txt index 038af595424430d86c58bd53098faf7968f902ac..e3c78d023cfc501a895f388d12558e510142f863 100644 --- a/content/html/_sources/user_guide/configs/scenery.rst.txt +++ b/content/html/_sources/user_guide/configs/scenery.rst.txt @@ -1,42 +1,42 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _scenery: - -Scenery -======= - -.. _OpenDRIVE: https://www.asam.net/standards/detail/opendrive/ - -This file describes the road network and all static objects of the road for the simulation run. -It is structured according to the **ASAM OpenDRIVE 1.6** standard. - -The file name can be freely chosen, but needs to be properly referenced by the :ref:`scenario` within the tag :ref:`scenario_roadnetwork`. - -Restrictions ------------- - -If object definitions does not meet the `OpenDRIVE`_ or are not supported, the simulation is aborted. -On top |op| adds some additional requirements to the attributes of objects: - -* length > 0 -* width > 0 -* radius == 0 - -Objects, which do no meet these requirements are ignored. - -Full Example ------------- - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/SceneryConfiguration.xodr - :language: xml - :caption: SceneryConfiguration.xodr - :linenos: +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _scenery: + +Scenery +======= + +.. _OpenDRIVE: https://www.asam.net/standards/detail/opendrive/ + +This file describes the road network and all static objects of the road for the simulation run. +It is structured according to the **ASAM OpenDRIVE 1.6** standard. + +The file name can be freely chosen, but needs to be properly referenced by the :ref:`scenario` within the tag :ref:`scenario_roadnetwork`. + +Restrictions +------------ + +If object definitions does not meet the `OpenDRIVE`_ or are not supported, the simulation is aborted. +On top |op| adds some additional requirements to the attributes of objects: + +* length > 0 +* width > 0 +* radius == 0 + +Objects, which do no meet these requirements are ignored. + +Full Example +------------ + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/SceneryConfiguration.xodr + :language: xml + :caption: SceneryConfiguration.xodr + :linenos: diff --git a/content/html/_sources/user_guide/configs/simulationconfig.rst.txt b/content/html/_sources/user_guide/configs/simulationconfig.rst.txt index 5c353fbe2c6c60e7a92621995d3364a00a3594f0..bd1769cc6821b0dbe70493e234e76210eaf7d7fe 100644 --- a/content/html/_sources/user_guide/configs/simulationconfig.rst.txt +++ b/content/html/_sources/user_guide/configs/simulationconfig.rst.txt @@ -1,217 +1,217 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - 2022 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _simulationconfig: - -SimulationConfig -================ - - -This file describes the high level parameters of a simulation invocation (i.e. an experiment). -It contains the basic experiment settings like number of runs and random seed, the environment definition, -the parametrization of the output (more precisely the observation modules) and the definition of the spawners. -The path to the SimulationConfig is given as command line argument (or defaulted) and all other configs are directly -or indirectly refered to in the SimulationConfig. -Several parameters depend on probabilities. -Each invocation then rolls for said probabilities. -All probabilities need to add up to 1.0. - -The simulationConfig.xml consists of the following sections: - -* :ref:`simulationconfig_profilescatalog` -* :ref:`simulationconfig_experiment` -* :ref:`simulationconfig_scenario` -* :ref:`simulationconfig_environment` -* :ref:`simulationconfig_observations` -* :ref:`simulationconfig_spawners` - -.. _simulationconfig_profilescatalog: - -ProfilesCatalog ---------------- - -Specifies the :ref:`profilescatalog` for the experiment. - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml - :language: xml - :start-at: <ProfilesCatalog> - :end-at: </ProfilesCatalog> - -.. _simulationconfig_experiment: - -Experiment ----------- - -Specifies the general experiment setup, not specific to a single invocation. - -.. table:: - :class: tight-table - - ===================== ================================================== ========= - Tag Description Mandatory - ===================== ================================================== ========= - ExperimentId Id of the experiment yes - NumberOfInvocations Number of invocation in the experiment. - For each invocation probabilities are rerolled. yes - RandomSeed Random seed for the entire experiment. - Must be within the bounds of an unsigned integer. yes - Libraries Name of the core module Libraries to use. - If not specified the default name is assumed. yes - ===================== ================================================== ========= - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml - :language: xml - :start-at: <Experiment> - :end-at: </Experiment> - -.. _simulationconfig_scenario: - -Scenario --------- - -This section contains information about the scenario setup for the experiment. This information does not change between invocations. - -.. table:: - :class: tight-table - - ================ ========================= ========= - Tag Description Mandatory - ================ ========================= ========= - OpenScenarioFile Name of the scenario file yes - ================ ========================= ========= - -**Example** - -This experiment uses the "HighwayScenario.xosc" scenario file. - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml - :language: xml - :start-at: <Scenario> - :end-at: </Scenario> - -.. _simulationconfig_environment: - -Environment ------------ - -This section contains information about the world and the general environment inside the simulation. Every invocation re-rolls the environment probabilities. -All probabilities need to add up to 1.0. - -.. table:: - :class: tight-table - - =================== ============================================================================================== ========= - Tag Description Mandatory - =================== ============================================================================================== ========= - TimeOfDay **Currently unused.** Time of day ranging from 1-24 [h]. 1+ entry - VisibilityDistance Defines how far a human driver can see [m]. 1+ entry - Friction Friction on the road. Used by DynamicsRegularDriving and LimiterAccelerationVehicleComponents. 1+ entry - Weather **Currently unused.** Weather as string 1+ entry - TrafficRules Defines which set of TrafficRules to use from the ProfilesCatalog yes - TurningRates Defines the turning rates for random route generation no - =================== ============================================================================================== ========= - -**Example** - -Every invocation has the time set to 15:00. -In 70% of all invocation drivers can see 125 meter and for the other 30% of invocations the drivers can see 250 meter. -Every invocation has a friction of 0.3. -Every invocation has sunny weather. - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml - :language: xml - :start-at: <Environment> - :end-at: </Environment> - -**TurningRates** - -If routes are not defined in the Scenario, they are randomly generated. -Starting at the current agent position at each junction a random connector is chosen based on the weights given in the TurningRates element, until the route terminates at a road without successors or a maximum depth is reached. -If for a pair of incoming road / connector no weight is given, it is defaulted to 1. -At the below example an agent coming from road "R1" has a 1/3 chance of selecting "R1-2" and a 2/3 chance of selecting "R1-3". - -.. table:: - :class: tight-table - - =================== ============================== - Attribute Description - =================== ============================== - Incoming Id of the incoming road - Outgoing Id of the connector - Weight Weight for this pair - =================== ============================== - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/TurningRates/simulationConfig.xml - :language: xml - :start-at: <TurningRates> - :end-at: </TurningRates> - -.. _simulationconfig_observations: - -Observations ------------- - -In this section all observation libraries are defined with their parameters. -A specific library is loaded by adding an entry to the `Observations` tag: - -.. code-block:: xml - - <Observations> - <!-- first observer --> - <Observation> - <Library>THE_OBSERVATION_LIBRARY</Library> - <!-- observer specific parameter --> - <Parameters> - <String Key="THE_KEY" Value="THE_VALUE"/> - <Bool Key="ANOTHER_KEY" Value="false"/> - ... - </Parameters> - </Observation> - <!-- second observer --> - <Observation> - ... - </Observation> - </Observations> - -Here, the ``Library`` tag contains the name of the library, and ``Parameters`` contain an optional list of key/value pairs, specific for each observer. - -Please refer to the documentation of the individual observers for available parameters: - -.. toctree:: - :glob: - :maxdepth: 1 - - ../outputs/* - -.. _simulationconfig_spawners: - -Spawners --------- - -In this section the spawners are defined with their Profile (defined in the ProfilesCatalog). -The same library can be loaded multiple times with different profiles. -A spawner is either of type "PreRun", meaning it is triggered only once at the start of the simulation, or "Runtime", meaning it is triggered in every timestep. -If different spawners are to be triggered at the same time the spawner with the highest priority is triggered first. - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml - :language: xml - :start-at: <Spawners> - :end-at: </Spawners> - - -Full Example ------------- - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml - :language: xml - :caption: simulationConfig.xml - :linenos: +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2022 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _simulationconfig: + +SimulationConfig +================ + + +This file describes the high level parameters of a simulation invocation (i.e. an experiment). +It contains the basic experiment settings like number of runs and random seed, the environment definition, +the parametrization of the output (more precisely the observation modules) and the definition of the spawners. +The path to the SimulationConfig is given as command line argument (or defaulted) and all other configs are directly +or indirectly refered to in the SimulationConfig. +Several parameters depend on probabilities. +Each invocation then rolls for said probabilities. +All probabilities need to add up to 1.0. + +The simulationConfig.xml consists of the following sections: + +* :ref:`simulationconfig_profilescatalog` +* :ref:`simulationconfig_experiment` +* :ref:`simulationconfig_scenario` +* :ref:`simulationconfig_environment` +* :ref:`simulationconfig_observations` +* :ref:`simulationconfig_spawners` + +.. _simulationconfig_profilescatalog: + +ProfilesCatalog +--------------- + +Specifies the :ref:`profilescatalog` for the experiment. + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml + :language: xml + :start-at: <ProfilesCatalog> + :end-at: </ProfilesCatalog> + +.. _simulationconfig_experiment: + +Experiment +---------- + +Specifies the general experiment setup, not specific to a single invocation. + +.. table:: + :class: tight-table + + ===================== ================================================== ========= + Tag Description Mandatory + ===================== ================================================== ========= + ExperimentId Id of the experiment yes + NumberOfInvocations Number of invocation in the experiment. + For each invocation probabilities are rerolled. yes + RandomSeed Random seed for the entire experiment. + Must be within the bounds of an unsigned integer. yes + Libraries Name of the core module Libraries to use. + If not specified the default name is assumed. yes + ===================== ================================================== ========= + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml + :language: xml + :start-at: <Experiment> + :end-at: </Experiment> + +.. _simulationconfig_scenario: + +Scenario +-------- + +This section contains information about the scenario setup for the experiment. This information does not change between invocations. + +.. table:: + :class: tight-table + + ================ ========================= ========= + Tag Description Mandatory + ================ ========================= ========= + OpenScenarioFile Name of the scenario file yes + ================ ========================= ========= + +**Example** + +This experiment uses the "HighwayScenario.xosc" scenario file. + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml + :language: xml + :start-at: <Scenario> + :end-at: </Scenario> + +.. _simulationconfig_environment: + +Environment +----------- + +This section contains information about the world and the general environment inside the simulation. Every invocation re-rolls the environment probabilities. +All probabilities need to add up to 1.0. + +.. table:: + :class: tight-table + + =================== ============================================================================================== ========= + Tag Description Mandatory + =================== ============================================================================================== ========= + TimeOfDay **Currently unused.** Time of day ranging from 1-24 [h]. 1+ entry + VisibilityDistance Defines how far a human driver can see [m]. 1+ entry + Friction Friction on the road. Used by DynamicsRegularDriving and LimiterAccelerationVehicleComponents. 1+ entry + Weather **Currently unused.** Weather as string 1+ entry + TrafficRules Defines which set of TrafficRules to use from the ProfilesCatalog yes + TurningRates Defines the turning rates for random route generation no + =================== ============================================================================================== ========= + +**Example** + +Every invocation has the time set to 15:00. +In 70% of all invocation drivers can see 125 meter and for the other 30% of invocations the drivers can see 250 meter. +Every invocation has a friction of 0.3. +Every invocation has sunny weather. + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml + :language: xml + :start-at: <Environment> + :end-at: </Environment> + +**TurningRates** + +If routes are not defined in the Scenario, they are randomly generated. +Starting at the current agent position at each junction a random connector is chosen based on the weights given in the TurningRates element, until the route terminates at a road without successors or a maximum depth is reached. +If for a pair of incoming road / connector no weight is given, it is defaulted to 1. +At the below example an agent coming from road "R1" has a 1/3 chance of selecting "R1-2" and a 2/3 chance of selecting "R1-3". + +.. table:: + :class: tight-table + + =================== ============================== + Attribute Description + =================== ============================== + Incoming Id of the incoming road + Outgoing Id of the connector + Weight Weight for this pair + =================== ============================== + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/TurningRates/simulationConfig.xml + :language: xml + :start-at: <TurningRates> + :end-at: </TurningRates> + +.. _simulationconfig_observations: + +Observations +------------ + +In this section all observation libraries are defined with their parameters. +A specific library is loaded by adding an entry to the `Observations` tag: + +.. code-block:: xml + + <Observations> + <!-- first observer --> + <Observation> + <Library>THE_OBSERVATION_LIBRARY</Library> + <!-- observer specific parameter --> + <Parameters> + <String Key="THE_KEY" Value="THE_VALUE"/> + <Bool Key="ANOTHER_KEY" Value="false"/> + ... + </Parameters> + </Observation> + <!-- second observer --> + <Observation> + ... + </Observation> + </Observations> + +Here, the ``Library`` tag contains the name of the library, and ``Parameters`` contain an optional list of key/value pairs, specific for each observer. + +Please refer to the documentation of the individual observers for available parameters: + +.. toctree:: + :glob: + :maxdepth: 1 + + ../outputs/* + +.. _simulationconfig_spawners: + +Spawners +-------- + +In this section the spawners are defined with their Profile (defined in the ProfilesCatalog). +The same library can be loaded multiple times with different profiles. +A spawner is either of type "PreRun", meaning it is triggered only once at the start of the simulation, or "Runtime", meaning it is triggered in every timestep. +If different spawners are to be triggered at the same time the spawner with the highest priority is triggered first. + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml + :language: xml + :start-at: <Spawners> + :end-at: </Spawners> + + +Full Example +------------ + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml + :language: xml + :caption: simulationConfig.xml + :linenos: diff --git a/content/html/_sources/user_guide/configs/staticsystemconfig.rst.txt b/content/html/_sources/user_guide/configs/staticsystemconfig.rst.txt index e147be04cfea24dd4ca8bff46b6a4c5b3736af81..9f90db43749a9f1945a4d74099fe4da8b9ea35df 100644 --- a/content/html/_sources/user_guide/configs/staticsystemconfig.rst.txt +++ b/content/html/_sources/user_guide/configs/staticsystemconfig.rst.txt @@ -1,76 +1,76 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _staticsystemconfig: - -Static SystemConfig -=================== - -SystemConfig files are optional. -They describe static configurations of agents and are therefore an alternative to the dynamic sampling of an agent during runtime. -The schema is the same as for the :ref:`systemconfigblueprint`. - - - -SSP ---------------- -One usecase for the static SystemConfig is :ref:`ssp`. -We use SSP to chain multiple FMUs together, which transfer data between them during one time step. -SSP is added to the SystemConfig like any other Component. It requires the following parameters: - -.. table:: - :class: tight-table - - ===================== ================================================== ========= - Tag Description Mandatory - ===================== ================================================== ========= - id Id should be set to "SspPath" yes - type type should be string yes - unit not used no - value relative path to the ssp file - relative to the configuration path yes - ===================== ================================================== ========= - -Example -~~~~~~~ - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/StaticSSPStepper/SystemConfig.xml - :language: xml - :start-at: <component doc="SSP"> - :end-at: </component> - - - -Connecting SSP with OpenPass ----------------------------------- -During OpenPass Simulation, information is communicated via osi messages between the Simulation Core and SSP. -Like any other component communication, these connections need to be explicitly declared as connections in the SystemConfig. -One connection is defined with the following attributes: - -.. table:: - :class: tight-table - - ===================== ================================================== ========= - Tag Description Mandatory - ===================== ================================================== ========= - id unique identifier for connection yes - source pair of sending agent component and local link id yes - target pair of receiving agent component - and local link id yes - ===================== ================================================== ========= - -Example -~~~~~~~ - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/StaticSSPStepper/SystemConfig.xml - :language: xml - :start-at: <connection doc="SSP"> - :end-at: </connection> +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _staticsystemconfig: + +Static SystemConfig +=================== + +SystemConfig files are optional. +They describe static configurations of agents and are therefore an alternative to the dynamic sampling of an agent during runtime. +The schema is the same as for the :ref:`systemconfigblueprint`. + + + +SSP +--------------- +One usecase for the static SystemConfig is :ref:`ssp`. +We use SSP to chain multiple FMUs together, which transfer data between them during one time step. +SSP is added to the SystemConfig like any other Component. It requires the following parameters: + +.. table:: + :class: tight-table + + ===================== ================================================== ========= + Tag Description Mandatory + ===================== ================================================== ========= + id Id should be set to "SspPath" yes + type type should be string yes + unit not used no + value relative path to the ssp file + relative to the configuration path yes + ===================== ================================================== ========= + +Example +~~~~~~~ + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/StaticSSPStepper/SystemConfig.xml + :language: xml + :start-at: <component doc="SSP"> + :end-at: </component> + + + +Connecting SSP with OpenPass +---------------------------------- +During OpenPass Simulation, information is communicated via osi messages between the Simulation Core and SSP. +Like any other component communication, these connections need to be explicitly declared as connections in the SystemConfig. +One connection is defined with the following attributes: + +.. table:: + :class: tight-table + + ===================== ================================================== ========= + Tag Description Mandatory + ===================== ================================================== ========= + id unique identifier for connection yes + source pair of sending agent component and local link id yes + target pair of receiving agent component + and local link id yes + ===================== ================================================== ========= + +Example +~~~~~~~ + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/StaticSSPStepper/SystemConfig.xml + :language: xml + :start-at: <connection doc="SSP"> + :end-at: </connection> diff --git a/content/html/_sources/user_guide/configs/systemconfigblueprint.rst.txt b/content/html/_sources/user_guide/configs/systemconfigblueprint.rst.txt index ee4a35b48955edb2c904adb09e51d7fd29989e3b..5c8eb212ccd978fc874c52a4ef6c9b3295c40ad3 100644 --- a/content/html/_sources/user_guide/configs/systemconfigblueprint.rst.txt +++ b/content/html/_sources/user_guide/configs/systemconfigblueprint.rst.txt @@ -1,281 +1,281 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _systemconfigblueprint: - -SystemConfigBlueprint -===================== - -This file contains the possible agent modules and channels of a dynamically generated agent. The content of this file should only be adjusted by experienced users with knowledge of the simulation architecture. The SystemConfigBlueprint is a special SystemConfig and has the same schema. Only the system with id 0 is used for generating dynamic agents. -If the simulation uses only statically configured agents (AgentProfile Type attribute is "Static"), this file isn't required. - -.. _systemconfigblueprint_agentComponents: - -AgentComponents ---------------- -All components are listed here. An agent consists of a subset of this components. - -.. table:: - :class: tight-table - - =========== =============================================================================== - Attribute Description - =========== =============================================================================== - Id Used as key by the simulation to find the component - Priority The module with the highest priority value gets executed first by the scheduler - Offset Delay for the trigger method of each component in ms - Cycle Interval in which the component gets triggered by the scheduler in ms - Response Delay for the UpdateOutput method of each component in ms - Library Library name of this component - Parameters Parameters used by the component - =========== =============================================================================== - -Example: -This example describes the Sensor_Driver module. - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/systemConfigBlueprint.xml - :language: xml - :dedent: 12 - :lines: 28-38 - -.. _systemconfigblueprint_priorities: - -Priorities ----------- - -Please refer to the :ref:`Components and channel communication diagram <component_channel_communication>` for assignment of a proper priority. -Based on the signal flow, input relevant components like sensors need to be executed first. They provide data for consuming components (algorithms) like ADAS and drivers. -Data is then handled by algorithms like Algorithm_Lateral. -Output-relevant modules like dynamics and actions are executed last. - -Prioritizer can be applied on different levels depending on the modules/data they need to handle levels as following can be defined: - -- Level 1 describes data produced by ADAS and drivers -- Level 2 describes data output by vehicle dynamic controllers -- Level 3 describes data delivered by dynamics - -Priorities can be grouped (coarse) as following: -Highest number indicates highest priority. - -.. table:: - :class: tight-table - - =========================== =========== - Scope Range - =========================== =========== - Parameters 500 - OpenScenarioActions 400 - Sensor 350...399 - Event 330 - DriverMode 310 - ADAS 250...299 - ComponentController 200 - Prioritizer (Lvl. 1) 150...199 - VehicleDynamicsControllers 100...149 - Prioritizer (Lvl. 2) 75...99 - Dynamics 50...74 - Prioritizer (Lvl. 3) 25...49 - Updater 0...24 - =========================== =========== - -The table below can be used as orientation when a new module is introduced. - -.. table:: - :class: tight-table - - ========================================= ======================================= ========= =========================== ======================================================================================================================= - Name Library Priority Scope Note - ========================================= ======================================= ========= =========================== ======================================================================================================================= - ParametersAgentModules ParametersAgent 500 Parameters Sets all init-data and is updated cyclically - OpenScenarioActions OpenScenarioActions 400 ADAS Reads events from OpenSCENARIO Actions and forwards them to other components - SensorObjectDetector Sensor_OSI 398 Sensor Gets instantiated multiple times (one time per sensor) - SensorAggregation SensorAggregation_OSI 351 Sensor - SensorFusionErrorless SensorFusionErrorless_OSI 350 Sensor - AlgorithmAgentFollowingDriverModel AlgorithmAgentFollowingDriverModel 310 DriverModels - AEB AlgorithmAutonomousEmergencyBraking 250 ADAS - FMU1 AlgorithmFmuWrapper 250 ADAS - FMU2 AlgorithmFmuWrapper 250 ADAS - FMU3 AlgorithmFmuWrapper 250 ADAS - SSP1 AlgorithmSspWrapper 250 ADAS - ComponentController ComponentController 200 ADAS Manages vehicle component states with regard to other vehicle component states and conditions and in response to events. - PrioritizerLaterDriver SignalPrioritizer 150 Prioritizer - PrioritizerAccelerationDriver SignalPrioritizer 150 Prioritizer - PrioritizerTurningIndicator SignalPrioritizer 150 Prioritizer - PrioritizerSteeringVehicleComponents SignalPrioritizer 150 Prioritizer - PrioritizerAccelerationVehicleComponents SignalPrioritizer 150 Prioritizer - LimiterAccelerationVehicleComponents LimiterAccelerationVehicleComponents 120 VehicleDynamicsControllers - AlgorithmLateralDriver AlgorithmLateralDriver 100 VehicleDynamicsControllers - AlgorithmLongitudinalVehicleComponents AlgorithmLongitudinalVehicleComponents 100 VehicleDynamicsControllers - AlgorithmLongitudinalDriver AlgorithmLongitudinalDriver 100 VehicleDynamicsControllers - PrioritizerSteering SignalPrioritizer 75 Prioritizer - PrioritizerLongitudinal SignalPrioritizer 75 Prioritizer - DynamicsCollision DynamicsCollision 50 Dynamics - DynamicsRegularDriving DynamicsRegularDriving 50 Dynamics - DynamicsTrajectoryFollower DynamicsTrajectoryFollower 50 Dynamics - PrioritizerDynamics SignalPrioritizer 25 Prioritizer - ActionLongitudinalDriverModules ActionLongitudinalDriver 3 Updater Will be expanded to ActionPrimary DriverTasks - ActionSecondaryDriverTasksModules ActionSecondaryDriverTasks 3 Updater - AgentUpdater AgentUpdater 1 Updater - ========================================= ======================================= ========= =========================== ======================================================================================================================= - -.. _systemconfigblueprint_channelids: - -Channel-Ids ------------ - -Channels allow components to communicate with each other. -The signal flow is set explicitly via a channel-Id of 4 digits (see also :ref:`Components and channels communication diagram <component_channel_communication>`). - -The first two numbers define the sending module (XX 00). -The other two digits define the type of signal that is sent (00 XX). - -Signals as well as modules can be grouped to allow explicit numbering (see tables below). - -Channel-Ids between Sensor and SensorFusion are an exception to this rule. For sensor/sensor fusion communication channel-ids are 9900 + x (incremented for every new sensor) - -Example: -PrioritizerAccelerationDriver -> AlgorithmLongitudinalDriver with signal of type AccelerationSignal: 1813. - - -**Ids for Modules (first two digits)** - - -Index range for module groups: - -.. table:: - :class: tight-table - - ================= ========== - Group Id - ================= ========== - Dynamics 1...10 - Algorithm 11...30 - DriverTasks 31...40 - Driver 41...50 - VehicleComponent 51...70 - Special 81...89 - Sensor 91...99 - ================= ========== - -With corresponding defined indices: - -.. table:: - :class: tight-table - - ========================================= ================= ===== - Module Group Id - ========================================= ================= ===== - AgentUpdater Dynamics 1 - Dynamics_TrajectoryFollower Dynamics 2 - Dynamics_RegularDriving Dynamics 3 - Dynamics_Collision Dynamics 4 - PrioritizerDynamics Dynamics 5 - Dynamics_Scenario Dynamics 6 - ControllerSwitch Dynamics 7 - Algorithm_LongitudinalVehicleComponent Algorithm 11 - Algorithm_LongitudinalAfdm Algorithm 12 - Algorithm_SteeringVehicleComponent Algorithm 14 - Algorithm_LateralVehicleAfdm Algorithm 15 - LimiterAccelerationVehicleComponents Algorithm 17 - PrioritizerLongitudinal Algorithm 21 - PrioritizerSteering Algorithm 22 - PrioritizerAccelerationVehicleComponents Algorithm 23 - PrioritizerSteeringVehicleComponents Algorithm 24 - Action_LongitudinalDriver DriverTasks 31 - Action_SecondaryDriverTasks DriverTasks 32 - PrioritizerTurningIndicator DriverTasks 33 - AlgorithmAgentFollowingDriverModel Driver 41 - AEB VehicleComponent 52 - FMU1 VehicleComponent 71 - FMU2 VehicleComponent 72 - FMU3 VehicleComponent 73 - ComponentController Special 83 - OpenScenarioActions Special 84 - Parameter_Vehicle Sensor 92 - SensorAggregation Sensor 93 - SensorFusionErrorless Sensor 94 - Sensor_Driver Sensor 95 - SensorObjectDetector Sensor 98 - ========================================= ================= ===== - -**Ids for Signals (last two digits)** - -Index range for signal groups: - - -.. table:: - :class: tight-table - - ==================== ========== - Group Id - ==================== ========== - Dynamics 1...10 - Algorithm 11...30 - OpenScenarioActions 61...70 - Special 71...80 - Sensor 81...90 - Parameters 91...99 - ==================== ========== - -With corresponding defined indices: - -.. table:: - :class: tight-table - - ======================================= ==================== ===== - Signal Group Id - ======================================= ==================== ===== - Dynamics Dynamics 01 - Longitudinal Algorithm 11 - Steering Algorithm 12 - Acceleration Algorithm 13 - Lateral Algorithm 14 - SecondaryDriverTasks Algorithm 19 - Trajectory OpenScenarioActions 71 - AcquireGlobalPosition OpenScenarioActions 62 - CustomParameters (CustomCommandAction) OpenScenarioActions 63 - SensorDriver Sensor 81 - SensorData Sensor 90 - ParametersVehicle Parameters 92 - ======================================= ==================== ===== - -.. _systemconfigblueprint_parameters: - -Parameters ----------- - -For more information on the type of parameters (especially stochastic distributions), please refer to the :ref:`ProfilesGroup section <profilescatalog_profilegroups>`. - -**Important Note:** The syntax for defining parameters in the SystemConfigBlueprint file differs from the ProfilesCatalog syntax. -See the following example: - -.. code-block:: xml - - <parameters> - <parameter> - <id>StringParameter</id> - <type>string</type> - <unit/> - <value>Lorem ipsum</value> - </parameter> - <parameter> - <id>RandomParameter</id> - <type>normalDistribution</type> - <unit/> - <value> - <mean>15.0</mean> - <sd>2.5</sd> - <min>10.0</min> - <max>20.0</max> - </value> - </parameter> - </parameters> +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _systemconfigblueprint: + +SystemConfigBlueprint +===================== + +This file contains the possible agent modules and channels of a dynamically generated agent. The content of this file should only be adjusted by experienced users with knowledge of the simulation architecture. The SystemConfigBlueprint is a special SystemConfig and has the same schema. Only the system with id 0 is used for generating dynamic agents. +If the simulation uses only statically configured agents (AgentProfile Type attribute is "Static"), this file isn't required. + +.. _systemconfigblueprint_agentComponents: + +AgentComponents +--------------- +All components are listed here. An agent consists of a subset of this components. + +.. table:: + :class: tight-table + + =========== =============================================================================== + Attribute Description + =========== =============================================================================== + Id Used as key by the simulation to find the component + Priority The module with the highest priority value gets executed first by the scheduler + Offset Delay for the trigger method of each component in ms + Cycle Interval in which the component gets triggered by the scheduler in ms + Response Delay for the UpdateOutput method of each component in ms + Library Library name of this component + Parameters Parameters used by the component + =========== =============================================================================== + +Example: +This example describes the Sensor_Driver module. + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/systemConfigBlueprint.xml + :language: xml + :dedent: 12 + :lines: 28-38 + +.. _systemconfigblueprint_priorities: + +Priorities +---------- + +Please refer to the :ref:`Components and channel communication diagram <component_channel_communication>` for assignment of a proper priority. +Based on the signal flow, input relevant components like sensors need to be executed first. They provide data for consuming components (algorithms) like ADAS and drivers. +Data is then handled by algorithms like Algorithm_Lateral. +Output-relevant modules like dynamics and actions are executed last. + +Prioritizer can be applied on different levels depending on the modules/data they need to handle levels as following can be defined: + +- Level 1 describes data produced by ADAS and drivers +- Level 2 describes data output by vehicle dynamic controllers +- Level 3 describes data delivered by dynamics + +Priorities can be grouped (coarse) as following: +Highest number indicates highest priority. + +.. table:: + :class: tight-table + + =========================== =========== + Scope Range + =========================== =========== + Parameters 500 + OpenScenarioActions 400 + Sensor 350...399 + Event 330 + DriverMode 310 + ADAS 250...299 + ComponentController 200 + Prioritizer (Lvl. 1) 150...199 + VehicleDynamicsControllers 100...149 + Prioritizer (Lvl. 2) 75...99 + Dynamics 50...74 + Prioritizer (Lvl. 3) 25...49 + Updater 0...24 + =========================== =========== + +The table below can be used as orientation when a new module is introduced. + +.. table:: + :class: tight-table + + ========================================= ======================================= ========= =========================== ======================================================================================================================= + Name Library Priority Scope Note + ========================================= ======================================= ========= =========================== ======================================================================================================================= + ParametersAgentModules ParametersAgent 500 Parameters Sets all init-data and is updated cyclically + OpenScenarioActions OpenScenarioActions 400 ADAS Reads events from OpenSCENARIO Actions and forwards them to other components + SensorObjectDetector Sensor_OSI 398 Sensor Gets instantiated multiple times (one time per sensor) + SensorAggregation SensorAggregation_OSI 351 Sensor + SensorFusionErrorless SensorFusionErrorless_OSI 350 Sensor + AlgorithmAgentFollowingDriverModel AlgorithmAgentFollowingDriverModel 310 DriverModels + AEB AlgorithmAutonomousEmergencyBraking 250 ADAS + FMU1 AlgorithmFmuWrapper 250 ADAS + FMU2 AlgorithmFmuWrapper 250 ADAS + FMU3 AlgorithmFmuWrapper 250 ADAS + SSP1 AlgorithmSspWrapper 250 ADAS + ComponentController ComponentController 200 ADAS Manages vehicle component states with regard to other vehicle component states and conditions and in response to events. + PrioritizerLaterDriver SignalPrioritizer 150 Prioritizer + PrioritizerAccelerationDriver SignalPrioritizer 150 Prioritizer + PrioritizerTurningIndicator SignalPrioritizer 150 Prioritizer + PrioritizerSteeringVehicleComponents SignalPrioritizer 150 Prioritizer + PrioritizerAccelerationVehicleComponents SignalPrioritizer 150 Prioritizer + LimiterAccelerationVehicleComponents LimiterAccelerationVehicleComponents 120 VehicleDynamicsControllers + AlgorithmLateralDriver AlgorithmLateralDriver 100 VehicleDynamicsControllers + AlgorithmLongitudinalVehicleComponents AlgorithmLongitudinalVehicleComponents 100 VehicleDynamicsControllers + AlgorithmLongitudinalDriver AlgorithmLongitudinalDriver 100 VehicleDynamicsControllers + PrioritizerSteering SignalPrioritizer 75 Prioritizer + PrioritizerLongitudinal SignalPrioritizer 75 Prioritizer + DynamicsCollision DynamicsCollision 50 Dynamics + DynamicsRegularDriving DynamicsRegularDriving 50 Dynamics + DynamicsTrajectoryFollower DynamicsTrajectoryFollower 50 Dynamics + PrioritizerDynamics SignalPrioritizer 25 Prioritizer + ActionLongitudinalDriverModules ActionLongitudinalDriver 3 Updater Will be expanded to ActionPrimary DriverTasks + ActionSecondaryDriverTasksModules ActionSecondaryDriverTasks 3 Updater + AgentUpdater AgentUpdater 1 Updater + ========================================= ======================================= ========= =========================== ======================================================================================================================= + +.. _systemconfigblueprint_channelids: + +Channel-Ids +----------- + +Channels allow components to communicate with each other. +The signal flow is set explicitly via a channel-Id of 4 digits (see also :ref:`Components and channels communication diagram <component_channel_communication>`). + +The first two numbers define the sending module (XX 00). +The other two digits define the type of signal that is sent (00 XX). + +Signals as well as modules can be grouped to allow explicit numbering (see tables below). + +Channel-Ids between Sensor and SensorFusion are an exception to this rule. For sensor/sensor fusion communication channel-ids are 9900 + x (incremented for every new sensor) + +Example: +PrioritizerAccelerationDriver -> AlgorithmLongitudinalDriver with signal of type AccelerationSignal: 1813. + + +**Ids for Modules (first two digits)** + + +Index range for module groups: + +.. table:: + :class: tight-table + + ================= ========== + Group Id + ================= ========== + Dynamics 1...10 + Algorithm 11...30 + DriverTasks 31...40 + Driver 41...50 + VehicleComponent 51...70 + Special 81...89 + Sensor 91...99 + ================= ========== + +With corresponding defined indices: + +.. table:: + :class: tight-table + + ========================================= ================= ===== + Module Group Id + ========================================= ================= ===== + AgentUpdater Dynamics 1 + Dynamics_TrajectoryFollower Dynamics 2 + Dynamics_RegularDriving Dynamics 3 + Dynamics_Collision Dynamics 4 + PrioritizerDynamics Dynamics 5 + Dynamics_Scenario Dynamics 6 + ControllerSwitch Dynamics 7 + Algorithm_LongitudinalVehicleComponent Algorithm 11 + Algorithm_LongitudinalAfdm Algorithm 12 + Algorithm_SteeringVehicleComponent Algorithm 14 + Algorithm_LateralVehicleAfdm Algorithm 15 + LimiterAccelerationVehicleComponents Algorithm 17 + PrioritizerLongitudinal Algorithm 21 + PrioritizerSteering Algorithm 22 + PrioritizerAccelerationVehicleComponents Algorithm 23 + PrioritizerSteeringVehicleComponents Algorithm 24 + Action_LongitudinalDriver DriverTasks 31 + Action_SecondaryDriverTasks DriverTasks 32 + PrioritizerTurningIndicator DriverTasks 33 + AlgorithmAgentFollowingDriverModel Driver 41 + AEB VehicleComponent 52 + FMU1 VehicleComponent 71 + FMU2 VehicleComponent 72 + FMU3 VehicleComponent 73 + ComponentController Special 83 + OpenScenarioActions Special 84 + Parameter_Vehicle Sensor 92 + SensorAggregation Sensor 93 + SensorFusionErrorless Sensor 94 + Sensor_Driver Sensor 95 + SensorObjectDetector Sensor 98 + ========================================= ================= ===== + +**Ids for Signals (last two digits)** + +Index range for signal groups: + + +.. table:: + :class: tight-table + + ==================== ========== + Group Id + ==================== ========== + Dynamics 1...10 + Algorithm 11...30 + OpenScenarioActions 61...70 + Special 71...80 + Sensor 81...90 + Parameters 91...99 + ==================== ========== + +With corresponding defined indices: + +.. table:: + :class: tight-table + + ======================================= ==================== ===== + Signal Group Id + ======================================= ==================== ===== + Dynamics Dynamics 01 + Longitudinal Algorithm 11 + Steering Algorithm 12 + Acceleration Algorithm 13 + Lateral Algorithm 14 + SecondaryDriverTasks Algorithm 19 + Trajectory OpenScenarioActions 71 + AcquireGlobalPosition OpenScenarioActions 62 + CustomParameters (CustomCommandAction) OpenScenarioActions 63 + SensorDriver Sensor 81 + SensorData Sensor 90 + ParametersVehicle Parameters 92 + ======================================= ==================== ===== + +.. _systemconfigblueprint_parameters: + +Parameters +---------- + +For more information on the type of parameters (especially stochastic distributions), please refer to the :ref:`ProfilesGroup section <profilescatalog_profilegroups>`. + +**Important Note:** The syntax for defining parameters in the SystemConfigBlueprint file differs from the ProfilesCatalog syntax. +See the following example: + +.. code-block:: xml + + <parameters> + <parameter> + <id>StringParameter</id> + <type>string</type> + <unit/> + <value>Lorem ipsum</value> + </parameter> + <parameter> + <id>RandomParameter</id> + <type>normalDistribution</type> + <unit/> + <value> + <mean>15.0</mean> + <sd>2.5</sd> + <min>10.0</min> + <max>20.0</max> + </value> + </parameter> + </parameters> diff --git a/content/html/_sources/user_guide/outputs/observation_log.rst.txt b/content/html/_sources/user_guide/outputs/observation_log.rst.txt index 65add62d97a9e52ab0a51a06f6756f5e75d0986d..19305eb9d3672d6996320c1c8f7550b1ddd3fbae 100644 --- a/content/html/_sources/user_guide/outputs/observation_log.rst.txt +++ b/content/html/_sources/user_guide/outputs/observation_log.rst.txt @@ -1,385 +1,361 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - 2023-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _observation_log: - -Observation_Log -############### - -This section describes the parameters and outputs of the ``Observation_Log`` observer. - -.. _observationlog_parameterization: - -Parameterization -================ - -Following parameters are supported: - -.. table:: - :class: tight-table - - =================== ============= ========================================================================== - Parameter Type Description - =================== ============= ========================================================================== - OutputFilename String Name of the output file (normally ``simulationOutput.xml``) - LoggingCyclicsToCsv Bool If ``true``, cyclics are written an additional file (one CSV file per run) - LoggingGroup_<NAME> StringVector Defines which columns belong to the logging group named NAME - LoggingGroups StringVector Defines active logging groups - =================== ============= ========================================================================== - -The columns, defined by the ``LoggingGroup_<NAME>`` correspond to cyclic data entries written by the world and other components. -Cyclics are named data values of a single agent during a specific timestep. -Simulation components including agent components can write this values into the DataBuffer component using the PublisherInterface. -The Observation_Log can then read this values and write them into the output. - -The world publishes the following cyclics (see source of ``AgentNetwork.cpp``): - -.. table:: - :class: tight-table - - ====================== ============== ===== ================================================================================================= - Cyclics Type Unit Description - ====================== ============== ===== ================================================================================================= - XPosition Double m Position x of the reference point (in world coordinates) - YPosition Double m Position y of the reference point (in world coordinates) - VelocityEgo Double m/s Absolute velocity (length of the velocity vector) at the reference point - (including spin caused by YawRate) - AccelerationEgo Double m/s² Longitudinal acceleration (including angular acceleration) at the reference point. - Longitudinal refers to the angle of the vehicle regardless of the curvature of the road it is on. - YawAngle Double rad Yaw angle w.r.t. x-axis - YawRate Double rad/s Yaw rate of the agent - SteeringAngle Double rad Steering wheel angle - TotalDistanceTraveled Double m Total traveled distance of all agents - PositionRoute\* Double m Position of the agent's front center in **road's** s coordinate - (distance to the start of the road) - TCoordinate\* Double m Position of the agent's front center in **lane's** t coordinate - (distance to the middle of the lane respecting intended driving direction) - Lane\* Integer Id of the lane - Road\* String OpenDRIVE id of the road on which the agent is on (i.e. the front center). - SecondaryLanes\* IntegerVector List of secondary lanes on a specific road - AgentInFront\* Integer Id of the next object on the agent's route - ====================== ============== ===== ================================================================================================= - -The longitudinal driver publishes the following cyclics (see source of ``longitudinalDriver.cpp``): - - ========================= ======= ======================================================== - Cyclics Type Description - ========================= ======= ======================================================== - AccelerationPedalPosition Double Position of the acceleration pedal position in percent - BrakePedalPosition Double Position of the brake pedal position in percent - Gear Integer Current gear position - ========================= ======= ======================================================== - -The component Action_SecondaryDriverTasks publishes the following cyclics (see source of ``secondaryDriverTasks.cpp``): - - ============== ======= =================================================================== - Cyclics Type Description - ============== ======= =================================================================== - BrakeLight Boolean True if BrakeLight is on - IndicatorState Enum State of the turning indicator (left, center/off, right) - LightStatus Enum State of the headlight (off, low beam, fog light, high beam, flash) - ============== ======= =================================================================== - -The component AgentUpdater publishes the following cyclics (see source of ``agentUpdaterImpl.cpp``): - - ====================== ====== ================================================= - Cyclics Type Description - ====================== ====== ================================================= - LongitudinalController String Component that is active for longitudinal control - LateralController String Component that is active for lateral control - ====================== ====== ================================================= - -The component Dynamics_RegularDriving publishes the following cyclics (see source of ``regularDriving.cpp``): - - ============= ====== ==== =========================== - Cyclics Type Unit Description - ============= ====== ==== =========================== - EngineMoment Double Nm Torque of the engine - SteeringAngle Double rad Angle of the steering wheel - ============= ====== ==== =========================== - -The component Sensor_Driver publishes the following cyclics (see source of ``sensor_driverImpl.cpp``): - - ============ ======= ======================= - Cyclics Type Description - ============ ======= ======================= - AgentInFront Integer Id of the agent infront - ============ ======= ======================= - -The component Sensor_OSI publishes the following cyclics (see source of ``sensorCar2X.cpp``): - - ============== ====== ============================== - Cyclics Type Description - ============== ====== ============================== - DetectedAgents String List of ids of detected agents - VisibleAgents String List of ids of visible agents - ============== ====== ============================== - -.. admonition:: **Wildcards in LoggingGroup definitions** - - | It is possible to use the wildcard character ``*`` in a ``LoggingGroup_<NAME>`` entry. - | The wildcard can be used only once per column reference. - -**Example** - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml - :language: xml - :start-at: <Library>Observation_Log</Library> - :end-at: </Parameters> - -Output Files -============ - -.. _observationlog_simout: - -SimulationOutput -~~~~~~~~~~~~~~~~ - -Every successful run (single experiment) generates a single file, normally called ``simulationOutput.xml`` (see :ref:'observationlog_parameterization'). -The output can contain multiple invocations of the same configuration with different random seeds. -For each invocation a RunResult is stored, which contains information about the agents and their parameters. -As well as run specific events and parameters. - -.. code-block:: xml - - <SimulationOutput> - <RunResults> - <RunResult RunId="0"> - ... - </RunResult> - <RunResult RunId="1"> - ... - </RunResult> - </RunResults> - </SimulationOutput> - -The RunResult consist out of the following parts: - -- :ref:`observationlog_runstatistics` -- :ref:`observationlog_events` -- :ref:`observationlog_agents` -- :ref:`observationlog_cyclics` - -.. _observationlog_runstatistics: - -RunStatistics -------------- - -This section contains the RandomSeed and general statistics of the invocation. - -.. table:: - :class: tight-table - - ======================= ================================================================== - Tag Description - ======================= ================================================================== - RandomSeed Random seed used for this invocation - VisibilityDistance Visibility distance of the world - StopReason Displays the reason why the simulation stopped. - Currently only due to time out. - StopTime Currently not used and set to -1 - EgoAccident Flag which shows whether the ego agent was involved in an accident - TotalDistanceTraveled Total traveled distance of all agents - EgoDistanceTraveled Total traveled distance of ego vehicle only - ======================= ================================================================== - -.. _observationlog_events: - -Events ------- - -This section contains all events that occurred during the invocation. -Event can either be triggered by an EventDetector, Manipulator or by certain vehicle components. -They are used to track special behavior in the simulation. - -.. table:: - :class: tight-table - - ====================== ===================================================================================== - Attribute Description - ====================== ===================================================================================== - Time Time in ms when the event occurred. - Source Name of the component which created the event. - ``OpenSCENARIO``, if triggered by an OpenSCENARIO condition. - Name In case of an OpenSCENARIO event, a path expression Story/Act/Sequence/Maneuver/Event - using the names of the corresponding tags as described in the OpenSCENARIO file. - Otherwise determined by the triggering component. - TriggeringEntities List of entity IDs triggering this event. - AffectedEntities List of entity IDs affected by this event. - Parameters List of generic key/value string pairs. - ====================== ===================================================================================== - -Important Events ----------------- - -Some of the Events are logged for other applications to use, for instance the |op| Visualizer. -These Events can be identified by their Name and are listed below: - -.. table:: - :class: tight-table - - ====================== ===================================================================================== - Attribute Description - ====================== ===================================================================================== - TrafficLight TrafficLight Events are triggered once a TrafficLightController changes the state of it's - Trafficlight bulbs. Parameters include the traffic_light_state and the opendrive_id which - links to a dynamic signal in the scenery configuration. traffic_light_state is going to - be used by the |op| Visualizer. The initial state of the ThreeSignalsTrafficLight is posted too. - ====================== ===================================================================================== - -The change in the active component of longitudinal and/or lateral control is also logged as event with name "ActiveComponentChange". - -.. _observationlog_agents: - -Agents ------- - -This section contains some information on how each agent is configured. - -.. table:: - :class: tight-table - - ====================== ============================================================== - Attribute Description - ====================== ============================================================== - Id Identification number - AgentTypeGroupName The agent category. This can either be Ego, Scenario or Common - AgentTypeName Name of the agent profile - VehicleModelType Name of the vehicle model - DriverProfileName Name of the driver profile - ====================== ============================================================== - -.. code-block:: xml - - <Agent Id="0" - AgentTypeGroupName="Ego" - AgentTypeName="MiddleClassCarAgent" - VehicleModelType="car_bmw_7" - DriverProfileName="Regular"> - -The VehicleAttributes tag lists basic information of the vehicle parameters. - -.. table:: - :class: tight-table - - ======================= ============================================================================= - Attribute Description - ======================= ============================================================================= - Width Width of the vehicles bounding box - Length Length of the vehicles bounding box - Height Height of the vehicles bounding box - LongitudinalPivotOffset Distance between center of the bounding box and reference point of the agent. - Positive distances are closer to the front of the vehicle. - Negative distances are closer to the rear of the vehicle. - ======================= ============================================================================= - -The Components tag lists all instantiated components from the SystemProfile. - -.. table:: - :class: tight-table - - ======================= ============================================================================= - Attribute Description - ======================= ============================================================================= - Type Type of the component - Profile Name of the component profile - ======================= ============================================================================= - -The Sensors tag lists all sensors of the agent and their parameters. - -.. table:: - :class: tight-table - - ======================= ===================================================================== - Attribute Description - ======================= ===================================================================== - Name Name of the component - Model Type of the sensor - MountingPosLongitudinal Relative longitudinal position of the sensor in relation to the agent - MountingPosLateral Relative lateral position of the sensor in relation to the agent - MountingPosHeight Relative height of the sensor in relation to the agent - OrientationPitch Pitch rotation of the sensor in relation to the agent - OrientationYaw Yaw rotation of the sensor in relation to the agent - OpeningAngleH Horizontal opening angle of the sensor - OpeningAngleV Vertical opening angle of the sensor - DetectionRange Range how far the sensor reaches in m - ======================= ===================================================================== - -.. note:: - - Calculation of visual obstruction is currently supported only by the Geometric2D sensor. - See :ref:`systemconfigblueprint` for configuration. - -.. code-block:: xml - - <Sensor Name="Geometric2DFront" - Model="Geometric2D" - MountingPosLongitudinal="0" - MountingPosLateral="0" - MountingPosHeight="0.5" - OrientationPitch="0" - OrientationYaw="0" - OpeningAngleH="20" - OpeningAngleV="-999" - DetectionRange="300" /> - -.. _observationlog_cyclics: - -Cyclics -------- - -If the parameter ``LoggingCyclicsToCsv`` is set to ``false``, this section contains all logged parameters of the agents per time step. -The tag ``header`` defines the layout of all samples. -Each entry of the header consists of the agent id and the name of the logged value, in the form ``ID:SAMPLE_NAME``. -A sample contains all information for one specific time step. -If an agent does not exist at the current time step, the value is ' '. - -**Example** - -In this example exist two agents with the ids 0 and 1. -Two time steps were being tracked, one at 0 seconds and one at 100 ms. -Agent 0 has a constant velocity of 30 m/s and starts at the position X: 100 and Y: 50. -Agent 1 has a initial velocity of 40 m/s and starts at the position X: 200 and Y: 50. - -.. code-block:: xml - - <Cyclics> - <Header>00:VelocityEgo, 00:XPosition, 00:YPosition, 00:YawAngle, 01:VelocityEgo, 01:XPosition, 01:YPosition, 01:YawAngle</Header> - <Samples> - <Sample Time="0">30, 100, 50, 0, 40, 200, 50, 0</Sample> - <Sample Time="100">30, 103, 50, 0, 40, 204, 50, 0</Sample> - </Samples> - </Cyclics> - -If the parameter ``LoggingCyclicsToCsv`` is set to ``true``, this section only contains a reference to the corresponding CSV file, e.g. - -.. code-block:: xml - - <Cyclics> - <CyclicsFile>Cyclics_Run_000.csv</CyclicsFile> - </Cyclics> - -For each invocation, the file number of the filename is incremented, starting with ``Cyclics_Run_000.csv``. - -Cyclics_Run_### -~~~~~~~~~~~~~~~ - -This file contains the samples as described in :ref:'observationlog_cyclics', but with the time step as leading column. - -**Example** - -======== ============== ============ ============ =========== ============== ============ ============ =========== -Timestep 00:VelocityEgo 00:XPosition 00:YPosition 00:YawAngle 01:VelocityEgo 01:XPosition 01:YPosition 01:YawAngle -======== ============== ============ ============ =========== ============== ============ ============ =========== -0 30 100 50 0 40 200 50 0 -100 30 103 50 0 40 204 50 0 -======== ============== ============ ============ =========== ============== ============ ============ =========== +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2023-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _observation_log: + +Observation_Log +############### + +This section describes the parameters and outputs of the ``Observation_Log`` observer. + +.. _observationlog_parameterization: + +Parameterization +================ + +Following parameters are supported: + +.. table:: + :class: tight-table + + =================== ============= ========================================================================== + Parameter Type Description + =================== ============= ========================================================================== + OutputFilename String Name of the output file (normally ``simulationOutput.xml``) + LoggingCyclicsToCsv Bool If ``true``, cyclics are written an additional file (one CSV file per run) + LoggingGroup_<NAME> StringVector Defines which columns belong to the logging group named NAME + LoggingGroups StringVector Defines active logging groups + =================== ============= ========================================================================== + +The columns, defined by the ``LoggingGroup_<NAME>`` correspond to cyclic data entries written by the world and other components. +Cyclics are named data values of a single agent during a specific timestep. +Simulation components including agent components can write this values into the DataBuffer component using the PublisherInterface. +The Observation_Log can then read this values and write them into the output. + +The world publishes the following cyclics (see source of ``AgentNetwork.cpp``): + +.. table:: + :class: tight-table + + ====================== ============== ===== ================================================================================================= + Cyclics Type Unit Description + ====================== ============== ===== ================================================================================================= + XPosition Double m Position x of the reference point (in world coordinates) + YPosition Double m Position y of the reference point (in world coordinates) + VelocityEgo Double m/s Absolute velocity (length of the velocity vector) at the reference point + (including spin caused by YawRate) + AccelerationEgo Double m/s² Longitudinal acceleration (including angular acceleration) at the reference point. + Longitudinal refers to the angle of the vehicle regardless of the curvature of the road it is on. + YawAngle Double rad Yaw angle w.r.t. x-axis + YawRate Double rad/s Yaw rate of the agent + SteeringWheelAngle Double rad Steering wheel angle + TotalDistanceTraveled Double m Total traveled distance of all agents + PositionRoute\* Double m Position of the agent's front center in **road's** s coordinate + (distance to the start of the road) + TCoordinate\* Double m Position of the agent's front center in **lane's** t coordinate + (distance to the middle of the lane respecting intended driving direction) + Lane\* Integer Id of the lane + Road\* String OpenDRIVE id of the road on which the agent is on (i.e. the front center). + SecondaryLanes\* IntegerVector List of secondary lanes on a specific road + AgentInFront\* Integer Id of the next object on the agent's route + ====================== ============== ===== ================================================================================================= + +The longitudinal driver publishes the following cyclics (see source of ``longitudinalDriver.cpp``): + + ========================= ======= ======================================================== + Cyclics Type Description + ========================= ======= ======================================================== + AccelerationPedalPosition Double Position of the acceleration pedal position in percent + BrakePedalPosition Double Position of the brake pedal position in percent + Gear Integer Current gear position + ========================= ======= ======================================================== + +The component Action_SecondaryDriverTasks publishes the following cyclics (see source of ``secondaryDriverTasks.cpp``): + + ============== ======= =================================================================== + Cyclics Type Description + ============== ======= =================================================================== + BrakeLight Boolean True if BrakeLight is on + IndicatorState Enum State of the turning indicator (left, center/off, right) + LightStatus Enum State of the headlight (off, low beam, fog light, high beam, flash) + ============== ======= =================================================================== + +The component AgentUpdater publishes the following cyclics (see source of ``agentUpdaterImpl.cpp``): + + ====================== ====== ================================================= + Cyclics Type Description + ====================== ====== ================================================= + LongitudinalController String Component that is active for longitudinal control + LateralController String Component that is active for lateral control + ====================== ====== ================================================= + +The component Dynamics_RegularDriving publishes the following cyclics (see source of ``regularDriving.cpp``): + + ============= ====== ==== ============================== + Cyclics Type Unit Description + ============= ====== ==== ============================== + EngineMoment Double Nm Torque of the engine + SteeringAngle Double rad Steering angle of front wheels + ============= ====== ==== ============================== + +The component Sensor_Driver publishes the following cyclics (see source of ``sensor_driverImpl.cpp``): + + ============ ======= ======================= + Cyclics Type Description + ============ ======= ======================= + AgentInFront Integer Id of the agent infront + ============ ======= ======================= + +The component Sensor_OSI publishes the following cyclics (see source of ``sensorCar2X.cpp``): + + ============== ====== ============================== + Cyclics Type Description + ============== ====== ============================== + DetectedAgents String List of ids of detected agents + VisibleAgents String List of ids of visible agents + ============== ====== ============================== + +.. admonition:: **Wildcards in LoggingGroup definitions** + + | It is possible to use the wildcard character ``*`` in a ``LoggingGroup_<NAME>`` entry. + | The wildcard can be used only once per column reference. + +**Example** + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml + :language: xml + :start-at: <Library>Observation_Log</Library> + :end-at: </Parameters> + +Output Files +============ + +.. _observationlog_simout: + +SimulationOutput +~~~~~~~~~~~~~~~~ + +Every successful run (single experiment) generates a single file, normally called ``simulationOutput.xml`` (see :ref:'observationlog_parameterization'). +The output can contain multiple invocations of the same configuration with different random seeds. +For each invocation a RunResult is stored, which contains information about the random seed, run id, the agents and their parameters. +As well as run specific events and parameters. + +.. code-block:: xml + + <SimulationOutput> + <RunResults> + <RunResult RunId="0" RandomSeed="5673465"> + ... + </RunResult> + <RunResult RunId="1" RandomSeed="2634474"> + ... + </RunResult> + </RunResults> + </SimulationOutput> + +The RunResult consist out of the following parts: + +- :ref:`observationlog_events` +- :ref:`observationlog_agents` +- :ref:`observationlog_cyclics` + +.. _observationlog_events: + +Events +------ + +This section contains all events that occurred during the invocation. +Event can either be triggered by an EventDetector, Manipulator or by certain vehicle components. +They are used to track special behavior in the simulation. + +.. table:: + :class: tight-table + + ====================== ===================================================================================== + Attribute Description + ====================== ===================================================================================== + Time Time in ms when the event occurred. + Source Name of the component which created the event. + ``OpenSCENARIO``, if triggered by an OpenSCENARIO condition. + Name In case of an OpenSCENARIO event, a path expression Story/Act/Sequence/Maneuver/Event + using the names of the corresponding tags as described in the OpenSCENARIO file. + Otherwise determined by the triggering component. + TriggeringEntities List of entity IDs triggering this event. + AffectedEntities List of entity IDs affected by this event. + Parameters List of generic key/value string pairs. + ====================== ===================================================================================== + +Important Events +---------------- + +Some of the Events are logged for other applications to use, for instance the |op| Visualizer. +These Events can be identified by their Name and are listed below: + +.. table:: + :class: tight-table + + ====================== ===================================================================================== + Attribute Description + ====================== ===================================================================================== + TrafficLight TrafficLight Events are triggered once a TrafficLightController changes the state of it's + Trafficlight bulbs. Parameters include the traffic_light_state and the opendrive_id which + links to a dynamic signal in the scenery configuration. traffic_light_state is going to + be used by the |op| Visualizer. The initial state of the ThreeSignalsTrafficLight is posted too. + ====================== ===================================================================================== + +The change in the active component of longitudinal and/or lateral control is also logged as event with name "ActiveComponentChange". + +.. _observationlog_agents: + +Agents +------ + +This section contains some information on how each agent is configured. + +.. table:: + :class: tight-table + + ====================== ============================================================== + Attribute Description + ====================== ============================================================== + Id Identification number + AgentTypeGroupName The agent category. This can either be Ego, Scenario or Common + AgentTypeName Name of the agent profile + VehicleModelType Name of the vehicle model + DriverProfileName Name of the driver profile + ====================== ============================================================== + +.. code-block:: xml + + <Agent Id="0" + AgentTypeGroupName="Ego" + AgentTypeName="MiddleClassCarAgent" + VehicleModelType="car_bmw_7" + DriverProfileName="Regular"> + +The VehicleAttributes tag lists basic information of the vehicle parameters. + +.. table:: + :class: tight-table + + ======================= ============================================================================= + Attribute Description + ======================= ============================================================================= + Width Width of the vehicles bounding box + Length Length of the vehicles bounding box + Height Height of the vehicles bounding box + LongitudinalPivotOffset Distance between center of the bounding box and reference point of the agent. + Positive distances are closer to the front of the vehicle. + Negative distances are closer to the rear of the vehicle. + ======================= ============================================================================= + +The Components tag lists all instantiated components from the SystemProfile. + +.. table:: + :class: tight-table + + ======================= ============================================================================= + Attribute Description + ======================= ============================================================================= + Type Type of the component + Profile Name of the component profile + ======================= ============================================================================= + +The Sensors tag lists all sensors of the agent and their parameters. + +.. table:: + :class: tight-table + + ======================= ===================================================================== + Attribute Description + ======================= ===================================================================== + Name Name of the component + Model Type of the sensor + MountingPosLongitudinal Relative longitudinal position of the sensor in relation to the agent + MountingPosLateral Relative lateral position of the sensor in relation to the agent + MountingPosHeight Relative height of the sensor in relation to the agent + OrientationPitch Pitch rotation of the sensor in relation to the agent + OrientationYaw Yaw rotation of the sensor in relation to the agent + OpeningAngleH Horizontal opening angle of the sensor + OpeningAngleV Vertical opening angle of the sensor + DetectionRange Range how far the sensor reaches in m + ======================= ===================================================================== + +.. note:: + + Calculation of visual obstruction is currently supported only by the Geometric2D sensor. + See :ref:`systemconfigblueprint` for configuration. + +.. code-block:: xml + + <Sensor Name="Geometric2DFront" + Model="Geometric2D" + MountingPosLongitudinal="0" + MountingPosLateral="0" + MountingPosHeight="0.5" + OrientationPitch="0" + OrientationYaw="0" + OpeningAngleH="20" + OpeningAngleV="-999" + DetectionRange="300" /> + +.. _observationlog_cyclics: + +Cyclics +------- + +If the parameter ``LoggingCyclicsToCsv`` is set to ``false``, this section contains all logged parameters of the agents per time step. +The tag ``header`` defines the layout of all samples. +Each entry of the header consists of the agent id and the name of the logged value, in the form ``ID:SAMPLE_NAME``. +A sample contains all information for one specific time step. +If an agent does not exist at the current time step, the value is ' '. + +**Example** + +In this example exist two agents with the ids 0 and 1. +Two time steps were being tracked, one at 0 seconds and one at 100 ms. +Agent 0 has a constant velocity of 30 m/s and starts at the position X: 100 and Y: 50. +Agent 1 has a initial velocity of 40 m/s and starts at the position X: 200 and Y: 50. + +.. code-block:: xml + + <Cyclics> + <Header>00:VelocityEgo, 00:XPosition, 00:YPosition, 00:YawAngle, 01:VelocityEgo, 01:XPosition, 01:YPosition, 01:YawAngle</Header> + <Samples> + <Sample Time="0">30, 100, 50, 0, 40, 200, 50, 0</Sample> + <Sample Time="100">30, 103, 50, 0, 40, 204, 50, 0</Sample> + </Samples> + </Cyclics> + +If the parameter ``LoggingCyclicsToCsv`` is set to ``true``, this section only contains a reference to the corresponding CSV file, e.g. + +.. code-block:: xml + + <Cyclics> + <CyclicsFile>Cyclics_Run_000.csv</CyclicsFile> + </Cyclics> + +For each invocation, the file number of the filename is incremented, starting with ``Cyclics_Run_000.csv``. + +Cyclics_Run_### +~~~~~~~~~~~~~~~ + +This file contains the samples as described in :ref:'observationlog_cyclics', but with the time step as leading column. + +**Example** + +======== ============== ============ ============ =========== ============== ============ ============ =========== +Timestep 00:VelocityEgo 00:XPosition 00:YPosition 00:YawAngle 01:VelocityEgo 01:XPosition 01:YPosition 01:YawAngle +======== ============== ============ ============ =========== ============== ============ ============ =========== +0 30 100 50 0 40 200 50 0 +100 30 103 50 0 40 204 50 0 +======== ============== ============ ============ =========== ============== ============ ============ =========== diff --git a/content/html/_sources/user_guide/outputs/observation_repository.rst.txt b/content/html/_sources/user_guide/outputs/observation_repository.rst.txt index 012593cc5ff9bc8b1dd039516704ca88eec9be3f..30127e6c5d37014ff4b15d81eccb5a2ad3b7faf3 100644 --- a/content/html/_sources/user_guide/outputs/observation_repository.rst.txt +++ b/content/html/_sources/user_guide/outputs/observation_repository.rst.txt @@ -1,129 +1,129 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _observation_entityrepository: - -Observation_EntityRepository -############################ - -This observer logs all entities generated for an experiment, split by run and/or persistence. -In the following, the parametrization and generated outputs of the ``Observation_EntityRepository`` observer are described. - -.. _observation_entityrepository_parametrization: - -Parametrization -=============== - -Following parameters are supported: - -.. table:: - :class: tight-table - - ======================= ============= =============================================================================================================== - Parameter Type Description - ======================= ============= =============================================================================================================== - FilenamePrefix String (Optional) Prefix for the output files. - Defaults to ``Repository`` resulting e.g. in ``Repository_Run_00.csv``. - WritePersistentEntities String Defines how persistent, ie cross-run entities such as stationary objects, are logged - - Options: - - - **Consolidated** (default): Logged together with non persistent entities and hence duplicated for each run. - - **Separate**: Written once into ``{FilenamePrefix}_Persistent.csv`` - - **Skip**: No output. - ======================= ============= =============================================================================================================== - -.. warning:: The visualization is searching for files with the default ``Repository`` prefix, so don't change it unless you have a reason to. - -**Example** - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml - :language: xml - :start-at: <Library>Observation_EntityRepository</Library> - :end-at: </Parameters> - -Output Files -============ - -.. _observation_entityrepository_run: - -Repository_Run_###.csv -~~~~~~~~~~~~~~~~~~~~~~ - -This file contains information about entities, which exist only within the given run. -In other words, ``Repository_Run_000.csv`` will contain all moving objects, spawned within the first run (zero-based index). - -**Example** - -.. csv-table:: - :file: _static/Repository_Run_000.csv - :header-rows: 1 - :delim: ; - -.. note:: By convention, moving objects start with id 0. - -If ``WritePersistentEntities`` is set to ``Consolidated``, each file will also contain information about stationary objects, described below. - -.. _observation_entityrepository_persistent: - -Repository_Persistent.csv -~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. _OpenDRIVE: https://www.asam.net/standards/detail/opendrive/ - -This file contains information about entities, which exist in every single run. -This includes mainly both objects (starting at 100000) and road elements (starting at 200000), defined by the :ref:`scenery`. - -**Example** - -.. table:: - - ====== ================ ========= ======= ============ ============= =========== ======= - id group source version name secondary id type subtype - ====== ================ ========= ======= ============ ============= =========== ======= - 100000 StationaryObject OpenDRIVE 1.6 Barrier barrier_01 obstacle - 100001 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing - 100002 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing - 100003 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing - 100004 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing - 100005 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing - 100006 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing - 100007 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing - 100008 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing - 100009 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing - 100010 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing - 200000 Others OpenDRIVE 1.6 LaneRoadMark Solid - 200001 Others OpenDRIVE 1.6 LaneRoadMark Solid - 200002 Others OpenDRIVE 1.6 Lane -3 Driving - 200003 Others OpenDRIVE 1.6 LaneRoadMark Broken - 200004 Others OpenDRIVE 1.6 Lane -2 Driving - 200005 Others OpenDRIVE 1.6 LaneRoadMark Broken - 200006 Others OpenDRIVE 1.6 Lane -1 Driving - ====== ================ ========= ======= ============ ============= =========== ======= - -Information coming from the source `OpenDRIVE`_ are mapped in the following manner: - -.. table:: - - ========= ============ - Attribute Column - ========= ============ - name name - id secondary id - type type - subtype subtype - ========= ============ - -.. note:: - - Repeated OpenDRIVE objects are internally split into individual objects. - E.g. a single guard rail object in OpenDRIVE, is split into individual openPASS objects having consecutive ids. - In the example above, the OpenDRIVE object with (secondary) id ``guardrail_01`` is split into 5 individual openPASS objects with the closed id range from 100001 to 100005. +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _observation_entityrepository: + +Observation_EntityRepository +############################ + +This observer logs all entities generated for an experiment, split by run and/or persistence. +In the following, the parametrization and generated outputs of the ``Observation_EntityRepository`` observer are described. + +.. _observation_entityrepository_parametrization: + +Parametrization +=============== + +Following parameters are supported: + +.. table:: + :class: tight-table + + ======================= ============= =============================================================================================================== + Parameter Type Description + ======================= ============= =============================================================================================================== + FilenamePrefix String (Optional) Prefix for the output files. + Defaults to ``Repository`` resulting e.g. in ``Repository_Run_00.csv``. + WritePersistentEntities String Defines how persistent, ie cross-run entities such as stationary objects, are logged + + Options: + + - **Consolidated** (default): Logged together with non persistent entities and hence duplicated for each run. + - **Separate**: Written once into ``{FilenamePrefix}_Persistent.csv`` + - **Skip**: No output. + ======================= ============= =============================================================================================================== + +.. warning:: The visualization is searching for files with the default ``Repository`` prefix, so don't change it unless you have a reason to. + +**Example** + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/simulationConfig.xml + :language: xml + :start-at: <Library>Observation_EntityRepository</Library> + :end-at: </Parameters> + +Output Files +============ + +.. _observation_entityrepository_run: + +Repository_Run_###.csv +~~~~~~~~~~~~~~~~~~~~~~ + +This file contains information about entities, which exist only within the given run. +In other words, ``Repository_Run_000.csv`` will contain all moving objects, spawned within the first run (zero-based index). + +**Example** + +.. csv-table:: + :file: _static/Repository_Run_000.csv + :header-rows: 1 + :delim: ; + +.. note:: By convention, moving objects start with id 0. + +If ``WritePersistentEntities`` is set to ``Consolidated``, each file will also contain information about stationary objects, described below. + +.. _observation_entityrepository_persistent: + +Repository_Persistent.csv +~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. _OpenDRIVE: https://www.asam.net/standards/detail/opendrive/ + +This file contains information about entities, which exist in every single run. +This includes mainly both objects (starting at 100000) and road elements (starting at 200000), defined by the :ref:`scenery`. + +**Example** + +.. table:: + + ====== ================ ========= ======= ============ ============= =========== ======= + id group source version name secondary id type subtype + ====== ================ ========= ======= ============ ============= =========== ======= + 100000 StationaryObject OpenDRIVE 1.6 Barrier barrier_01 obstacle + 100001 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing + 100002 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing + 100003 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing + 100004 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing + 100005 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_01 railing + 100006 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing + 100007 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing + 100008 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing + 100009 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing + 100010 StationaryObject OpenDRIVE 1.6 GuardRail guardrail_02 railing + 200000 Others OpenDRIVE 1.6 LaneRoadMark Solid + 200001 Others OpenDRIVE 1.6 LaneRoadMark Solid + 200002 Others OpenDRIVE 1.6 Lane -3 Driving + 200003 Others OpenDRIVE 1.6 LaneRoadMark Broken + 200004 Others OpenDRIVE 1.6 Lane -2 Driving + 200005 Others OpenDRIVE 1.6 LaneRoadMark Broken + 200006 Others OpenDRIVE 1.6 Lane -1 Driving + ====== ================ ========= ======= ============ ============= =========== ======= + +Information coming from the source `OpenDRIVE`_ are mapped in the following manner: + +.. table:: + + ========= ============ + Attribute Column + ========= ============ + name name + id secondary id + type type + subtype subtype + ========= ============ + +.. note:: + + Repeated OpenDRIVE objects are internally split into individual objects. + E.g. a single guard rail object in OpenDRIVE, is split into individual openPASS objects having consecutive ids. + In the example above, the OpenDRIVE object with (secondary) id ``guardrail_01`` is split into 5 individual openPASS objects with the closed id range from 100001 to 100005. diff --git a/content/html/_sources/user_guide/sim_user_guide/10_overview.rst.txt b/content/html/_sources/user_guide/sim_user_guide/10_overview.rst.txt index c756a70c9df340fc84117c9e32fc9003a701e4e4..71e905cacb4c78431e78c83e83561ddb784f2041 100644 --- a/content/html/_sources/user_guide/sim_user_guide/10_overview.rst.txt +++ b/content/html/_sources/user_guide/sim_user_guide/10_overview.rst.txt @@ -1,27 +1,27 @@ -.. - ******************************************************************************* - Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - - -Overview -======== - -|Op| is a tool for executing a traffic based Monte-Carlo simulation and provides capabilities for the following two levels of variation: - -#. **Experiment:** Topmost, an experiment defines the domains of possible inputs, which shall be compared, such as *"traffic at high volume"* with *"traffic at low volume"*. - In this sense, a parameter variation is done at a very coarse level, resulting in two sets of inputs. - Note that this level is covered by the GUI (see :ref:`pcm_simulation_guide`). - -#. **Invocation:** When an input-set is available, |op| invokes a defined number of runs, resulting in a probabilistic sampling of the given state under parameterizable conditions. - For example, in the aforementioned situation *"traffic at high volume"*, it would generate participants at *"lower speeds"* and *"smaller gaps"*. - Thereby parameterizable means, that the user has the freedom to define probabilities defining *"lower speed"* and *"smaller gaps"*. - In each invocation, |op| samples from these probabilities to generate a possible traffic situation under the given parameter variation. - +.. + ******************************************************************************* + Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + + +Overview +======== + +|Op| is a tool for executing a traffic based Monte-Carlo simulation and provides capabilities for the following two levels of variation: + +#. **Experiment:** Topmost, an experiment defines the domains of possible inputs, which shall be compared, such as *"traffic at high volume"* with *"traffic at low volume"*. + In this sense, a parameter variation is done at a very coarse level, resulting in two sets of inputs. + Note that this level is covered by the GUI (see :ref:`pcm_simulation_guide`). + +#. **Invocation:** When an input-set is available, |op| invokes a defined number of runs, resulting in a probabilistic sampling of the given state under parameterizable conditions. + For example, in the aforementioned situation *"traffic at high volume"*, it would generate participants at *"lower speeds"* and *"smaller gaps"*. + Thereby parameterizable means, that the user has the freedom to define probabilities defining *"lower speed"* and *"smaller gaps"*. + In each invocation, |op| samples from these probabilities to generate a possible traffic situation under the given parameter variation. + diff --git a/content/html/_sources/user_guide/sim_user_guide/20_components.rst.txt b/content/html/_sources/user_guide/sim_user_guide/20_components.rst.txt index 16946d0efa9cbcc904d5ca7800b3340c6afc573d..15907e948f8382c150ec7faca3c62093fd12cd13 100644 --- a/content/html/_sources/user_guide/sim_user_guide/20_components.rst.txt +++ b/content/html/_sources/user_guide/sim_user_guide/20_components.rst.txt @@ -1,38 +1,38 @@ -.. - ******************************************************************************* - Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - - -Component View -============== - -|Op| is divided into components, which can be roughly divided into **core components** and **model components**. -The most interesting core components are the individual **spawners**, which are responsible for populating the world in a realistic fashion. -Model components are again roughly divided into **drivers** and **vehicle components** and represent how an individual participant is composed. - -.. note:: - - There are several additional components acting in the background, making sure things work as they should. - As a guideline, components parameterized through the **ProfilesCatalog** are scope of this guide, others not. - - -.. _simuserguide_components: - -Components in Depth -------------------- - -In the following, all available components are described. - -.. toctree:: - :glob: - :maxdepth: 3 - - components/* +.. + ******************************************************************************* + Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + + +Component View +============== + +|Op| is divided into components, which can be roughly divided into **core components** and **model components**. +The most interesting core components are the individual **spawners**, which are responsible for populating the world in a realistic fashion. +Model components are again roughly divided into **drivers** and **vehicle components** and represent how an individual participant is composed. + +.. note:: + + There are several additional components acting in the background, making sure things work as they should. + As a guideline, components parameterized through the **ProfilesCatalog** are scope of this guide, others not. + + +.. _simuserguide_components: + +Components in Depth +------------------- + +In the following, all available components are described. + +.. toctree:: + :glob: + :maxdepth: 3 + + components/* diff --git a/content/html/_sources/user_guide/sim_user_guide/components/algorithm_lateral.rst.txt b/content/html/_sources/user_guide/sim_user_guide/components/algorithm_lateral.rst.txt index a4bff1b1b333027b09be115d32e43b973d0c5f21..6af0671168b8671a79f12dedc6b6b510bea7b1a9 100644 --- a/content/html/_sources/user_guide/sim_user_guide/components/algorithm_lateral.rst.txt +++ b/content/html/_sources/user_guide/sim_user_guide/components/algorithm_lateral.rst.txt @@ -1,299 +1,299 @@ -.. - ******************************************************************************* - Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _algorithm_lateral: - -Algorithm_Lateral -################# - - -This module is responsible for the control of the vehicle's lateral behavior. -It converts the lateral input of the driver module into a steering wheel angle. -The steering wheel angle can then be forwarded to a vehicle dynamics -module like :ref:`dynamics_regular_driving`. - -.. _algorithm_lateral_detailed_description: - -Detailed description of the module's features -============================================= - -Algorithm_Lateral receives its command variables from a driver behavior model (or an ADAS) -and generates the steering wheel angle of the driver to match these command -variables. The steering wheel angle parts of all controllers are summed up to -the overall steering wheel angle of the driver, which is then sent to a vehicle -dynamics module like :ref:`dynamics_regular_driving`. -The control loop is closed by the movement of the vehicle in the world, which is -again monitored by the driver behavior model. This overall control loop of -vehicle lateral guidance involving Algorithm_Lateral is illustrated in the following image with the following variables: - -* :math:`\kappa_{act}` is the actual curvature of the vehicle - -Four variables containing the information needed for the open-loop controller: - - -* :math:`\kappa_{road}` is the curvature at the front center (i.e. center of the front of the bounding box) of the ego vehicle. It uses the vectors: -* :math:`\kappa_{segment,near}` containing the curvatures of several segments starting at the front center up to 2m in front of the vehicles leading edge -* :math:`\kappa_{segment,far}` containing the curvatures of several segments starting 2m in front of the vehicle and ending 8m in front of it -* :math:`\kappa_{manoeuvre}` containing the curvature of the planned trajectory relative to the road - -Other variables: - - -* :math:`w_{act}` is the actual lateral position of the vehicle in the road coordinate system -* :math:`\Delta` w is the lateral deviation -* :math:`\phi_{act}` is the actual heading angle of the vehicle in the road coordinate system -* :math:`\Delta`:math:`\phi` is the heading error -* :math:`\delta_{h,\kappa}` is the steering wheel angle from the curvature controller -* :math:`\delta_{h,w}` is the steering wheel angle from the lateral deviation controller -* :math:`\delta_{h,\phi}` is the steering wheel angle from the heading error controller -* :math:`\delta_h` is the overall steering wheel angle of the driver - -.. _image_LateralControllerSignalFlow: - -.. figure:: _static/images/LateralControllerSignalFlow.png - :alt: Components and signal flow of the lateral guidance control loop - - Components and signal flow of the lateral guidance control loop - -The following subsections describe the theoretical background and the transfer -functions of the different controllers. - - -.. _algorithm_lateral_detailed_description_lateral_dynamics: - -Lateral dynamics ----------------- - -The lateral dynamics model is based on the Ackermann model which is a simple geometric -expression for the relationship between the steering angle at the front wheels and -the curvature the vehicle produces from it. It has several simplifications, where -the most notable is the reduction of the wheels of one axle to a single surrogate -wheel. This is suitable under the consideration that the steering angles of the front -wheels are rather small and do not differ much between the left and the right -front wheel. The first simplification may not hold up in city traffic with high -curvatures. Therefore the closed-loop-controller must have increased gains in -these situations. :math:`\kappa_{road}`, :math:`\kappa_{segment,near}` and :math:`\kappa_{segment,far}` are smoothed and weighted before adding :math:`\kappa_{manoeuvre}` to form :math:`\kappa_{target}`. - -The Ackermann model is illustrated in the following image with the following variables: - - -* :math:`l` is the wheelbase of the vehicle -* :math:`\delta` is the surrogate steering angle at the front wheels towards the vehicle's longitudinal axis -* :math:`M` is the instantaneous centre of rotation, around which the vehicle is driving on a curve -* :math:`r` is the radius of the curve, which the vehicle is driving around M -* :math:`\kappa` is the curvature of this curve, which is simply the inverse of r - -.. _image_AckermannModel: - -.. figure:: _static/images/AckermannModel.svg - :alt: Illustration of the Ackermann model - - Illustration of the Ackermann model - -In accordance to the current definitions of :ref:`coordinate systems <coordinatesystems>`, -the coordinate reference point of the vehicle is considered to be the rear axle center. -Therefore, the curvature of the vehicle is also expressed towards the rear axle center -and not to the centre of gravity, which is why the centre of gravity is not -depicted in illustration of the Ackermann model. - -The equation derived from the Ackermann model states the following -relation between the surrogate steering angle :math:`\delta` of the front wheels and -the curvature :math:`\kappa` described by the rear axle around the instantaneous -centre of rotation :math:`M`: - -.. math:: - \kappa = \frac{\tan(\delta)}{l} - - -This equation can be inverted to express a required steering angle :math:`\delta` to -adjust a specific curvature :math:`\kappa`: - -.. math:: - \delta = \arctan(\kappa \cdot l) - -To convert this into the required steering wheel angle :math:`\delta_{h,\kappa}`, -the ratio :math:`i_s` of the steering gear must be applied: - -.. math:: - \delta_{h, \kappa} = i_{s} \cdot \arctan(\kappa \cdot l) - - -The vehicle parameters :math:`l` and :math:`i_s` are received from the module :ref:`parameters_vehicle`. - -.. _algorithm_lateral_detailed_description_control_heading: - -Heading controller ------------------- - -The heading controller is designed as a simple proportional controller. -The general transfer function of a P-controller with the input signal heading -error :math:`\Delta\phi` and the output signal steering wheel angle :math:`\delta_{h,\phi}` -is described as: - -.. math:: - \delta_{h, \phi} = P_{\phi} \cdot \Delta\phi - - -The controller amplification :math:`P_\phi` is therefore described as the -ratio between input signal and output signal: - -.. math:: - P_{\phi} = \frac{\delta_{h,\phi}}{\Delta\phi} - -The controller amplification :math:`P_\phi` therefore expresses, how many -degrees of steering wheel angle are generated by one degree heading error. -The design of this controller amplification :math:`P_\phi` uses some -considerations about plane driving kinematics of Kramer. First of all, -the heading error :math:`\Delta\phi` is derived from the current curvature :math:`\kappa` -of the vehicle over the change of distance :math:`ds` along the road's longitudinal -coordinate :math:`s` in one time step: - -.. math:: - \Delta\phi = \arctan(ds \cdot \kappa) - -Under the consideration of small angular changes in one time step, this equation -can be linearized to: - -.. math:: - \Delta\phi = ds \cdot \kappa - -The curvature :math:`\kappa` of the vehicle can be substituted by an Ackermann model -(see :ref:`here<algorithm_lateral_detailed_description_lateral_dynamics>` for further information about that): - - -.. math:: - \Delta\phi = \frac{ds \cdot \tan(\delta)}{l} - -This equation can also be linearized under the consideration of small angles: - -.. math:: - \Delta\phi = \frac{ds \cdot \delta} {l} - -The connection to the steering wheel angle :math:`\delta_{h,\phi}` can be -applied by the ratio :math:`i_s` of the vehicle's steering gear: - -.. math:: - \Delta\phi = \frac{ds \cdot \delta_{h,\phi}}{i_s \cdot l} - -This equation can be transformed to a similar form as the controller's transfer -function above: - -.. math:: - \frac{i_s \cdot l}{ds} = \frac{\delta_{h,\phi}}{\Delta\phi} - -The usage of the incremental difference :math:`ds` in this equation is problematic, -because the controller amplification becomes dependent on the simulation step -size. Because of this, the absolute change :math:`ds` of the longitudinal road -coordinate :math:`s` is substituted by the vehicle's absolute velocity :math:`v` as a -simplification, which is the change of travelled distance with respect to time: - -.. math:: - \frac{i_s \cdot l}{v} = \frac{\delta_{h,\phi}}{\Delta\phi} - -To tune the absolute influence of the heading controller in the overall control -loop, an additional gain factor :math:`\text{Gain}_{\Delta\phi}` is applied to this -transfer function, which allows a situation dependent amplification of the -heading controller by the driver behavior model: - -.. math:: - \delta_{h,\phi} = \frac{\text{Gain}_{\Delta\phi} \cdot i_s \cdot l \cdot \Delta\phi}{v} - -The vehicle parameters :math:`l` and :math:`i_s` are received from the module :ref:`parameters_vehicle`, the vehicle's -absolute velocity :math:`v` is received from the module :ref:`sensor_driver`, -and the additional controller gain :math:`\text{Gain}_{\Delta\phi}` is received from -a driver behavior model. - - -.. _algorithm_lateral_detailed_description_control_deviation: - -Lateral deviation controller ----------------------------- - -The lateral deviation controller is designed as a simple proportional controller. The general transfer -function of a P-controller with the input signal lateral deviation :math:`\Delta` w and -the output signal steering wheel angle :math:`\delta_{h,w}` is described as: - -.. math:: - \delta_{h,w} = P_w \cdot \Delta w - -The controller amplification :math:`P_w` is therefore described as the ratio -between input signal and output signal: - -.. math:: - P_w = \frac{\delta_{h,w}}{\Delta w} - -The controller amplification :math:`P_w` therefore expresses, how many degrees -of steering wheel angle are generated by one metre of lateral deviation. The -design of this controller amplification :math:`P_w` uses some considerations -about plane driving kinematics of Kramer. First of all, the lateral deviation -:math:`\Delta` w is derived from the current heading error :math:`\Delta\phi` over the change -of distance :math:`ds` along the road's longitudinal coordinate :math:`s` in one time step: - -.. math:: - \Delta w = ds \cdot \sin(\Delta\phi) - -The current heading error :math:`\Delta\phi` can further be substituted by an -expression of :math:`ds` and the current curvature :math:`\kappa` of the vehicle -(see :ref:`algorithm_lateral_detailed_description_control_heading` for that matter): - -.. math:: - \Delta w = ds \cdot \sin(\arctan(ds \cdot \kappa)) - -Under the consideration of small angular changes in one time step, this equation -can be linearized to: - -.. math:: - \Delta w = ds^2 \kappa - -The curvature :math:`\kappa` of the vehicle can be substituted by an Ackermann model -(see :ref:`here<algorithm_lateral_detailed_description_lateral_dynamics>` for further information about that): - -.. math:: - \Delta w = \frac{ds^2 \tan(\delta)}{l} - -This equation can also be linearized under the consideration of small angles: - -.. math:: - \Delta w = \frac{ds^2 \cdot \delta}{l} - -The connection to the steering wheel angle :math:`\delta_{h,w}` can be applied -by the ratio :math:`i_s` of the vehicle's steering gear: - -.. math:: - \Delta w = \frac{ds^2 \cdot \delta_{h,w}}{i_s \cdot l} - -This equation can be transformed to a similar form as the controller's transfer -function above: - -.. math:. - \frac{i_s \cdot l}{ds^2} = \frac{\delta_{h,w}}{\Delta w} - -The usage of the incremental difference :math:`ds` in this equation is problematic, -because the controller amplification becomes dependent on the simulation step -size. Because of this, the absolute change :math:`ds` of the longitudinal road -coordinate :math:`s` is substituted by the vehicle's absolute velocity :math:`v` as a -simplification, which is the change of travelled distance with respect to time: - -.. math:. - \frac{i_s \cdot l}{v^2} = \frac{\delta_{h,w}}{\Delta w} - -To tune the absolute influence of the lateral deviation controller in the -overall control loop, an additional gain factor :math:`\text{Gain}_{\Delta w}` is -applied to this transfer function, which allows a situation dependent -amplification of the lateral deviation controller by the driver behavior model: - -.. math:: - \delta_{h,w} = \frac{\text{Gain}_{\Delta w} \cdot i_s \cdot l \cdot \Delta w}{v^2} - -The vehicle parameters :math:`l` and :math:`i_s` are received from the module :ref:`parameters_vehicle`, the vehicle's -absolute velocity :math:`v` is received from the module :ref:`sensor_driver`, -and the additional controller gain :math:`\text{Gain}_{\Delta w}` is received from a -driver behavior model. +.. + ******************************************************************************* + Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _algorithm_lateral: + +Algorithm_Lateral +################# + + +This module is responsible for the control of the vehicle's lateral behavior. +It converts the lateral input of the driver module into a steering wheel angle. +The steering wheel angle can then be forwarded to a vehicle dynamics +module like :ref:`dynamics_regular_driving`. + +.. _algorithm_lateral_detailed_description: + +Detailed description of the module's features +============================================= + +Algorithm_Lateral receives its command variables from a driver behavior model (or an ADAS) +and generates the steering wheel angle of the driver to match these command +variables. The steering wheel angle parts of all controllers are summed up to +the overall steering wheel angle of the driver, which is then sent to a vehicle +dynamics module like :ref:`dynamics_regular_driving`. +The control loop is closed by the movement of the vehicle in the world, which is +again monitored by the driver behavior model. This overall control loop of +vehicle lateral guidance involving Algorithm_Lateral is illustrated in the following image with the following variables: + +* :math:`\kappa_{act}` is the actual curvature of the vehicle + +Four variables containing the information needed for the open-loop controller: + + +* :math:`\kappa_{road}` is the curvature at the front center (i.e. center of the front of the bounding box) of the ego vehicle. It uses the vectors: +* :math:`\kappa_{segment,near}` containing the curvatures of several segments starting at the front center up to 2m in front of the vehicles leading edge +* :math:`\kappa_{segment,far}` containing the curvatures of several segments starting 2m in front of the vehicle and ending 8m in front of it +* :math:`\kappa_{manoeuvre}` containing the curvature of the planned trajectory relative to the road + +Other variables: + + +* :math:`w_{act}` is the actual lateral position of the vehicle in the road coordinate system +* :math:`\Delta` w is the lateral deviation +* :math:`\phi_{act}` is the actual heading angle of the vehicle in the road coordinate system +* :math:`\Delta`:math:`\phi` is the heading error +* :math:`\delta_{h,\kappa}` is the steering wheel angle from the curvature controller +* :math:`\delta_{h,w}` is the steering wheel angle from the lateral deviation controller +* :math:`\delta_{h,\phi}` is the steering wheel angle from the heading error controller +* :math:`\delta_h` is the overall steering wheel angle of the driver + +.. _image_LateralControllerSignalFlow: + +.. figure:: _static/images/LateralControllerSignalFlow.png + :alt: Components and signal flow of the lateral guidance control loop + + Components and signal flow of the lateral guidance control loop + +The following subsections describe the theoretical background and the transfer +functions of the different controllers. + + +.. _algorithm_lateral_detailed_description_lateral_dynamics: + +Lateral dynamics +---------------- + +The lateral dynamics model is based on the Ackermann model which is a simple geometric +expression for the relationship between the steering angle at the front wheels and +the curvature the vehicle produces from it. It has several simplifications, where +the most notable is the reduction of the wheels of one axle to a single surrogate +wheel. This is suitable under the consideration that the steering angles of the front +wheels are rather small and do not differ much between the left and the right +front wheel. The first simplification may not hold up in city traffic with high +curvatures. Therefore the closed-loop-controller must have increased gains in +these situations. :math:`\kappa_{road}`, :math:`\kappa_{segment,near}` and :math:`\kappa_{segment,far}` are smoothed and weighted before adding :math:`\kappa_{manoeuvre}` to form :math:`\kappa_{target}`. + +The Ackermann model is illustrated in the following image with the following variables: + + +* :math:`l` is the wheelbase of the vehicle +* :math:`\delta` is the surrogate steering angle at the front wheels towards the vehicle's longitudinal axis +* :math:`M` is the instantaneous centre of rotation, around which the vehicle is driving on a curve +* :math:`r` is the radius of the curve, which the vehicle is driving around M +* :math:`\kappa` is the curvature of this curve, which is simply the inverse of r + +.. _image_AckermannModel: + +.. figure:: _static/images/AckermannModel.svg + :alt: Illustration of the Ackermann model + + Illustration of the Ackermann model + +In accordance to the current definitions of :ref:`coordinate systems <coordinatesystems>`, +the coordinate reference point of the vehicle is considered to be the rear axle center. +Therefore, the curvature of the vehicle is also expressed towards the rear axle center +and not to the centre of gravity, which is why the centre of gravity is not +depicted in illustration of the Ackermann model. + +The equation derived from the Ackermann model states the following +relation between the surrogate steering angle :math:`\delta` of the front wheels and +the curvature :math:`\kappa` described by the rear axle around the instantaneous +centre of rotation :math:`M`: + +.. math:: + \kappa = \frac{\tan(\delta)}{l} + + +This equation can be inverted to express a required steering angle :math:`\delta` to +adjust a specific curvature :math:`\kappa`: + +.. math:: + \delta = \arctan(\kappa \cdot l) + +To convert this into the required steering wheel angle :math:`\delta_{h,\kappa}`, +the ratio :math:`i_s` of the steering gear must be applied: + +.. math:: + \delta_{h, \kappa} = i_{s} \cdot \arctan(\kappa \cdot l) + + +The vehicle parameters :math:`l` and :math:`i_s` are received from the module :ref:`parameters_vehicle`. + +.. _algorithm_lateral_detailed_description_control_heading: + +Heading controller +------------------ + +The heading controller is designed as a simple proportional controller. +The general transfer function of a P-controller with the input signal heading +error :math:`\Delta\phi` and the output signal steering wheel angle :math:`\delta_{h,\phi}` +is described as: + +.. math:: + \delta_{h, \phi} = P_{\phi} \cdot \Delta\phi + + +The controller amplification :math:`P_\phi` is therefore described as the +ratio between input signal and output signal: + +.. math:: + P_{\phi} = \frac{\delta_{h,\phi}}{\Delta\phi} + +The controller amplification :math:`P_\phi` therefore expresses, how many +degrees of steering wheel angle are generated by one degree heading error. +The design of this controller amplification :math:`P_\phi` uses some +considerations about plane driving kinematics of Kramer. First of all, +the heading error :math:`\Delta\phi` is derived from the current curvature :math:`\kappa` +of the vehicle over the change of distance :math:`ds` along the road's longitudinal +coordinate :math:`s` in one time step: + +.. math:: + \Delta\phi = \arctan(ds \cdot \kappa) + +Under the consideration of small angular changes in one time step, this equation +can be linearized to: + +.. math:: + \Delta\phi = ds \cdot \kappa + +The curvature :math:`\kappa` of the vehicle can be substituted by an Ackermann model +(see :ref:`here<algorithm_lateral_detailed_description_lateral_dynamics>` for further information about that): + + +.. math:: + \Delta\phi = \frac{ds \cdot \tan(\delta)}{l} + +This equation can also be linearized under the consideration of small angles: + +.. math:: + \Delta\phi = \frac{ds \cdot \delta} {l} + +The connection to the steering wheel angle :math:`\delta_{h,\phi}` can be +applied by the ratio :math:`i_s` of the vehicle's steering gear: + +.. math:: + \Delta\phi = \frac{ds \cdot \delta_{h,\phi}}{i_s \cdot l} + +This equation can be transformed to a similar form as the controller's transfer +function above: + +.. math:: + \frac{i_s \cdot l}{ds} = \frac{\delta_{h,\phi}}{\Delta\phi} + +The usage of the incremental difference :math:`ds` in this equation is problematic, +because the controller amplification becomes dependent on the simulation step +size. Because of this, the absolute change :math:`ds` of the longitudinal road +coordinate :math:`s` is substituted by the vehicle's absolute velocity :math:`v` as a +simplification, which is the change of travelled distance with respect to time: + +.. math:: + \frac{i_s \cdot l}{v} = \frac{\delta_{h,\phi}}{\Delta\phi} + +To tune the absolute influence of the heading controller in the overall control +loop, an additional gain factor :math:`\text{Gain}_{\Delta\phi}` is applied to this +transfer function, which allows a situation dependent amplification of the +heading controller by the driver behavior model: + +.. math:: + \delta_{h,\phi} = \frac{\text{Gain}_{\Delta\phi} \cdot i_s \cdot l \cdot \Delta\phi}{v} + +The vehicle parameters :math:`l` and :math:`i_s` are received from the module :ref:`parameters_vehicle`, the vehicle's +absolute velocity :math:`v` is received from the module :ref:`sensor_driver`, +and the additional controller gain :math:`\text{Gain}_{\Delta\phi}` is received from +a driver behavior model. + + +.. _algorithm_lateral_detailed_description_control_deviation: + +Lateral deviation controller +---------------------------- + +The lateral deviation controller is designed as a simple proportional controller. The general transfer +function of a P-controller with the input signal lateral deviation :math:`\Delta` w and +the output signal steering wheel angle :math:`\delta_{h,w}` is described as: + +.. math:: + \delta_{h,w} = P_w \cdot \Delta w + +The controller amplification :math:`P_w` is therefore described as the ratio +between input signal and output signal: + +.. math:: + P_w = \frac{\delta_{h,w}}{\Delta w} + +The controller amplification :math:`P_w` therefore expresses, how many degrees +of steering wheel angle are generated by one metre of lateral deviation. The +design of this controller amplification :math:`P_w` uses some considerations +about plane driving kinematics of Kramer. First of all, the lateral deviation +:math:`\Delta` w is derived from the current heading error :math:`\Delta\phi` over the change +of distance :math:`ds` along the road's longitudinal coordinate :math:`s` in one time step: + +.. math:: + \Delta w = ds \cdot \sin(\Delta\phi) + +The current heading error :math:`\Delta\phi` can further be substituted by an +expression of :math:`ds` and the current curvature :math:`\kappa` of the vehicle +(see :ref:`algorithm_lateral_detailed_description_control_heading` for that matter): + +.. math:: + \Delta w = ds \cdot \sin(\arctan(ds \cdot \kappa)) + +Under the consideration of small angular changes in one time step, this equation +can be linearized to: + +.. math:: + \Delta w = ds^2 \kappa + +The curvature :math:`\kappa` of the vehicle can be substituted by an Ackermann model +(see :ref:`here<algorithm_lateral_detailed_description_lateral_dynamics>` for further information about that): + +.. math:: + \Delta w = \frac{ds^2 \tan(\delta)}{l} + +This equation can also be linearized under the consideration of small angles: + +.. math:: + \Delta w = \frac{ds^2 \cdot \delta}{l} + +The connection to the steering wheel angle :math:`\delta_{h,w}` can be applied +by the ratio :math:`i_s` of the vehicle's steering gear: + +.. math:: + \Delta w = \frac{ds^2 \cdot \delta_{h,w}}{i_s \cdot l} + +This equation can be transformed to a similar form as the controller's transfer +function above: + +.. math:. + \frac{i_s \cdot l}{ds^2} = \frac{\delta_{h,w}}{\Delta w} + +The usage of the incremental difference :math:`ds` in this equation is problematic, +because the controller amplification becomes dependent on the simulation step +size. Because of this, the absolute change :math:`ds` of the longitudinal road +coordinate :math:`s` is substituted by the vehicle's absolute velocity :math:`v` as a +simplification, which is the change of travelled distance with respect to time: + +.. math:. + \frac{i_s \cdot l}{v^2} = \frac{\delta_{h,w}}{\Delta w} + +To tune the absolute influence of the lateral deviation controller in the +overall control loop, an additional gain factor :math:`\text{Gain}_{\Delta w}` is +applied to this transfer function, which allows a situation dependent +amplification of the lateral deviation controller by the driver behavior model: + +.. math:: + \delta_{h,w} = \frac{\text{Gain}_{\Delta w} \cdot i_s \cdot l \cdot \Delta w}{v^2} + +The vehicle parameters :math:`l` and :math:`i_s` are received from the module :ref:`parameters_vehicle`, the vehicle's +absolute velocity :math:`v` is received from the module :ref:`sensor_driver`, +and the additional controller gain :math:`\text{Gain}_{\Delta w}` is received from a +driver behavior model. diff --git a/content/html/_sources/user_guide/sim_user_guide/components/algorithm_longitudinal.rst.txt b/content/html/_sources/user_guide/sim_user_guide/components/algorithm_longitudinal.rst.txt index 0b0b99a912b9329f3be9b222b0cdd6c4a2c41be9..cb5801393ae76f6fd722f7e6d4142f144b47d740 100644 --- a/content/html/_sources/user_guide/sim_user_guide/components/algorithm_longitudinal.rst.txt +++ b/content/html/_sources/user_guide/sim_user_guide/components/algorithm_longitudinal.rst.txt @@ -1,219 +1,219 @@ -.. - ******************************************************************************* - Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _algorithm_longitudinal: - -Algorithm_Longitudinal -###################### - - -This module is responsible for the control of the vehicle's longitudinal -behavior. It receives the command variables from a driver behavior model and generates -the accelerator and brake pedal position and the current gear of the driver to match -these command variables. The pedal positions and the gear can then be forwarded -to a vehicle dynamics module like :ref:`dynamics_regular_driving`. -The actuation of the clutch pedal is currently not simulated by the modul - -.. _algorithm_longitudinal_detailed_description: - -Detailed description of the module's features -============================================= - -.. _algorithm_longitudinal_detailed_description_inverted_dynamics_model_: - -Inverted longitudinal dynamics model ------------------------------------- - -The inverted longitudinal dynamics model produces :math:`act_{olc,stat}` -by utilizing an inverted powertrain and brake system model. The powertrain model -and all of its parameters and state variables are illustrated in the following image. -The brake model is not worth illustrating, as it directly applies on the required acceleration -:math:`a_{set}` of the vehicle. - -.. _image_PowertrainModel1_: - -.. figure:: _static/images/PowertrainModel.svg - :alt: Illustration of the powertrain model and its parameters and state variables - - Illustration of the powertrain model and its parameters and state variables - - -The core element of all calculations in this model is speed and acceleration. -The speed :math:`n_{wheel}` at the wheels is constraint by the current velocity -:math:`v_{act}` of the vehicle and the static wheel radius :math:`r_{stat}`: - -.. math:: - n_{wheel} = \frac{v_{act}}{r_{stat}} \cdot \frac{60}{2 \cdot \pi} - - -where :math:`n_{wheel}` is specified in :math:`rpm` (revolutions per minute) and :math:`v_{act}` is -defined in :math:`m/s`, which requires the conversion term at the end of the equation. -As the equation also illustrates, only a simple rolling relation defines the -model and there is no simulation of tire-road-friction and tire slip involved. - -The speed :math:`n_{eng}` of the engine is constraint by the speed -:math:`n_{wheel}` of the wheels, the ratio :math:`i_{a}` of the axle, and the -current ratio :math:`i_{g}` of the gearbox, depending of the current gear: - -.. math:: - n_{eng} = n_{wheel} \cdot i_{a} \cdot i_{g} - - -The required acceleration :math:`a_{set}` determines the torque :math:`M_{wheel}` -at the wheels, as the overall mass :math:`m` of the vehicle has to be accelerated by -this torque: - -.. math:: - M_{wheel} = m \cdot a_{set} \cdot r_{stat} - - -As the equation illustrates, no driving resistances other than the inertia of -the vehicle are simulated by this model. The required torque :math:`M_{wheel}` -at the wheels must be generated by the engine, considering the ratios of the -powertrain: - -.. math:: - M_{eng} = \frac{M_{wheel}}{i_{a} \cdot i_{g}} - - -As the current speed :math:`n_{eng}` of the engine, the required acceleration -:math:`a_{set}` of the vehicle, and the required torque :math:`M_{eng}` of the -engine are known or defined by the above equations, this knowledge can be used -to determine the estimated positions of the accelerator and the brake pedal or -to calculate the optimal gear for the required acceleration :math:`a_{set}`, -if a positive acceleration is needed. For the accelerator pedal and optimal gear -calculation, there is still some missing knowledge about the engine itself. -The relationship between the current engine speed :math:`n_{eng}` and the -possible engine torque :math:`M_{eng}` is determined by a simple engine map, -which is illustrated in the following image: - -.. _image_EngineMap_: - -.. figure:: _static/images/EngineMap.svg - :alt: Simplified engine map used for the inverted powertrain model - - Simplified engine map used for the inverted powertrain model - - -The engine map is defined by two characteristic curves: - - -* :math:`M_{eng,max}` defines the maximum torque, which can be produced by the - engine at a specific engine speed :math:`n_{eng}`. This is directly connected - with the maximum possible actuation of the accelerator pedal. -* :math:`M_{eng,drag}` defines the drag torque, which is produced by the engine - at a specific engine speed :math:`n_{eng}`, if the accelerator pedal is not - actuated at all. - -The two characteristic curves are only defined between the minimum and maximum -possible speed of the engine. As the two characteristic curves are directly -related to a full actuation (:math:`act_{olc,stat} = 1`) and no actuation -(:math:`act_{olc,stat} = 0`) of the accelerator pedal, the estimated pedal -position for the accelerator pedal :math:`act_{olc,stat}`, which produces the -currently required engine torque :math:`M_{eng}`, can be calculated by linear -interpolation between these two characteristic curves at the current engine -speed :math:`n_{eng}`. - -Analogous for the brake pedal position: - - -* The maximum actuation of the brake pedal (:math:`act_{olc,stat} = -1`) is - directly connected with the maximum possible deceleration of the vehicle, which - is simply set to 1G (:math:`= 9.81 m/s^2`). -* No actuation of the brake pedal (:math:`act_{olc,stat} = 0`) also produces no - deceleration. - -Between these two possible decelerations, the estimated brake pedal position to -produce the required acceleration :math:`a_{set}` is calculated by linear -interpolation. - -The logic for the calculation of the static controller output :math:`act_{olc,stat}`, -utilizing the considerations above, is defined as follows: - -If the required acceleration :math:`a_{set}` is smaller than zero, it can be -produced by the engine drag torque or the brake system. If the engine drag -torque :math:`M_{eng,drag}` at the current engine speed :math:`n_{eng}` is not -strong enough to meet the engine torque :math:`M_{eng}`, which would be -necessary to produce :math:`a_{set}`, an **additional** actuation of the brake -pedal is applied (the driver does not open the clutch, so the engine drag torque -is also applied to the wheels). This mechanism is not considering a change in -gears, but uses the current gear of the gearbox (the driver does not consider to -shift down for a stronger effect of the engine drag torque). - -If the required acceleration :math:`a_{set}` is greater than or equal to zero, -it can only be produced by the powertrain. First of all, the optimal gear to -produce the engine torque :math:`M_{eng}` required for :math:`a_{set}` is -calculated, which is described in :ref:`the subsequent subsection<algorithm_longitudinal_openloop_optimal_gear_>`. -With this chosen gear, the current engine speed :math:`n_{eng}` is calculated. -:math:`n_{eng}` is used to determine the maximum engine torque :math:`M_{eng,max}` -and the engine drag torque :math:`M_{eng,drag}` from the characteristic curves. -As these two values are connected to a full actuation and no actuation of the -accelerator pedal, the estimated accelerator pedal position, which is necessary -to produce the required acceleration :math:`a_{set}`, can be calculated by -linear interpolation. - -The state variable :math:`v_{act}` is received from the module :ref:`sensor_driver`, -the required acceleration :math:`a_{set}` is received from a driver behavior -model, and the vehicle parameters :math:`m`, :math:`r_{stat}`, :math:`i_{a}`, :math:`i_{g}` per gear, -and the information about the engine map are received from the module :ref:`parameters_vehicle`. - -The calculations above are done in the function CalculatePedalPositions, which is called in -the function CalculatePedalPositionAndGear of Algorithm_Longitudinal. - -.. _algorithm_longitudinal_openloop_optimal_gear_: - -Algorithm for optimal gear determination ----------------------------------------- - -The algorithm for the determination of the optimal gear for the required -acceleration :math:`a_{set}` is implemented in the function CalculateGearAndEngineSpeed. -It is called within the function CalculatePedalPositionAndGear of Algorithm_Longitudinal, -which applies the :ref:`inverted longitudinal dynamics model<algorithm_longitudinal_detailed_description_inverted_dynamics_model_>`. -The algorithm receives the current velocity :math:`v_{act}` of the vehicle and the required acceleration :math:`a_{set}`. - -Within a for-loop over all gears, the engine speed :math:`n_{eng}` is calculated -for each gear, which would result from the current velocity :math:`v_{act}`, -as well as the maximum engine torque :math:`M_{eng,max}` and the engine drag -torque :math:`M_{eng,drag}` resulting from these engine speeds. Violating the -minimum engine speed :math:`n_{eng,min}` and the maximum engine speed :math:`n_{eng,max}` -is not considered in this step (resulting engine speeds are written as they result -from the powertrain calculation and the engine torques are set to the lower or -upper limits of the characteristic curves respectively, if the engine speed -range is violated). - -The results above are further processed in a second for-loop over all gears. -The following aspects are checked to determine, if a gear fits the current -required state: - - -* Is the resulting engine speed :math:`n_{eng}` within the range of :math:`n_{eng,min}` - and :math:`n_{eng,max}`? -* Is the resulting engine torque :math:`M_{eng}` to produce the required - acceleration :math:`a_{set}` within the range of :math:`M_{eng,drag}` and :math:`M_{eng,max}`? - -The lowest gear that fits these criteria sets a Boolean foundGear true and the -results (gear number and resulting engine speed :math:`n_{eng}`) are written in -the result vector. This is done for all further gears, until a gear does not fit -the requirements anymore. This initiates the return of the last sufficient gear -and its resulting engine speed :math:`n_{eng}`. A short example should -illustrate this logic: - - -#. The 2nd gear activates the Boolean foundGear, because :math:`n_{eng}` does - not exceed :math:`n_{eng,max}` anymore -#. The 4th gear activates the return of the results, because the required engine - torque :math:`M_{eng}` would exceed the maximum possible engine torque :math:`M_{eng,max}` - at the corresponding engine speed :math:`n_{eng}` -#. The algorithm chooses the 3rd gear as optimum and returns it and its - corresponding engine speed :math:`n_{eng}` - -This logic therefore guarantees, that always the highest possible gear is chosen -by the driver. +.. + ******************************************************************************* + Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _algorithm_longitudinal: + +Algorithm_Longitudinal +###################### + + +This module is responsible for the control of the vehicle's longitudinal +behavior. It receives the command variables from a driver behavior model and generates +the accelerator and brake pedal position and the current gear of the driver to match +these command variables. The pedal positions and the gear can then be forwarded +to a vehicle dynamics module like :ref:`dynamics_regular_driving`. +The actuation of the clutch pedal is currently not simulated by the modul + +.. _algorithm_longitudinal_detailed_description: + +Detailed description of the module's features +============================================= + +.. _algorithm_longitudinal_detailed_description_inverted_dynamics_model_: + +Inverted longitudinal dynamics model +------------------------------------ + +The inverted longitudinal dynamics model produces :math:`act_{olc,stat}` +by utilizing an inverted powertrain and brake system model. The powertrain model +and all of its parameters and state variables are illustrated in the following image. +The brake model is not worth illustrating, as it directly applies on the required acceleration +:math:`a_{set}` of the vehicle. + +.. _image_PowertrainModel1_: + +.. figure:: _static/images/PowertrainModel.svg + :alt: Illustration of the powertrain model and its parameters and state variables + + Illustration of the powertrain model and its parameters and state variables + + +The core element of all calculations in this model is speed and acceleration. +The speed :math:`n_{wheel}` at the wheels is constraint by the current velocity +:math:`v_{act}` of the vehicle and the static wheel radius :math:`r_{stat}`: + +.. math:: + n_{wheel} = \frac{v_{act}}{r_{stat}} \cdot \frac{60}{2 \cdot \pi} + + +where :math:`n_{wheel}` is specified in :math:`rpm` (revolutions per minute) and :math:`v_{act}` is +defined in :math:`m/s`, which requires the conversion term at the end of the equation. +As the equation also illustrates, only a simple rolling relation defines the +model and there is no simulation of tire-road-friction and tire slip involved. + +The speed :math:`n_{eng}` of the engine is constraint by the speed +:math:`n_{wheel}` of the wheels, the ratio :math:`i_{a}` of the axle, and the +current ratio :math:`i_{g}` of the gearbox, depending of the current gear: + +.. math:: + n_{eng} = n_{wheel} \cdot i_{a} \cdot i_{g} + + +The required acceleration :math:`a_{set}` determines the torque :math:`M_{wheel}` +at the wheels, as the overall mass :math:`m` of the vehicle has to be accelerated by +this torque: + +.. math:: + M_{wheel} = m \cdot a_{set} \cdot r_{stat} + + +As the equation illustrates, no driving resistances other than the inertia of +the vehicle are simulated by this model. The required torque :math:`M_{wheel}` +at the wheels must be generated by the engine, considering the ratios of the +powertrain: + +.. math:: + M_{eng} = \frac{M_{wheel}}{i_{a} \cdot i_{g}} + + +As the current speed :math:`n_{eng}` of the engine, the required acceleration +:math:`a_{set}` of the vehicle, and the required torque :math:`M_{eng}` of the +engine are known or defined by the above equations, this knowledge can be used +to determine the estimated positions of the accelerator and the brake pedal or +to calculate the optimal gear for the required acceleration :math:`a_{set}`, +if a positive acceleration is needed. For the accelerator pedal and optimal gear +calculation, there is still some missing knowledge about the engine itself. +The relationship between the current engine speed :math:`n_{eng}` and the +possible engine torque :math:`M_{eng}` is determined by a simple engine map, +which is illustrated in the following image: + +.. _image_EngineMap_: + +.. figure:: _static/images/EngineMap.svg + :alt: Simplified engine map used for the inverted powertrain model + + Simplified engine map used for the inverted powertrain model + + +The engine map is defined by two characteristic curves: + + +* :math:`M_{eng,max}` defines the maximum torque, which can be produced by the + engine at a specific engine speed :math:`n_{eng}`. This is directly connected + with the maximum possible actuation of the accelerator pedal. +* :math:`M_{eng,drag}` defines the drag torque, which is produced by the engine + at a specific engine speed :math:`n_{eng}`, if the accelerator pedal is not + actuated at all. + +The two characteristic curves are only defined between the minimum and maximum +possible speed of the engine. As the two characteristic curves are directly +related to a full actuation (:math:`act_{olc,stat} = 1`) and no actuation +(:math:`act_{olc,stat} = 0`) of the accelerator pedal, the estimated pedal +position for the accelerator pedal :math:`act_{olc,stat}`, which produces the +currently required engine torque :math:`M_{eng}`, can be calculated by linear +interpolation between these two characteristic curves at the current engine +speed :math:`n_{eng}`. + +Analogous for the brake pedal position: + + +* The maximum actuation of the brake pedal (:math:`act_{olc,stat} = -1`) is + directly connected with the maximum possible deceleration of the vehicle, which + is simply set to 1G (:math:`= 9.81 m/s^2`). +* No actuation of the brake pedal (:math:`act_{olc,stat} = 0`) also produces no + deceleration. + +Between these two possible decelerations, the estimated brake pedal position to +produce the required acceleration :math:`a_{set}` is calculated by linear +interpolation. + +The logic for the calculation of the static controller output :math:`act_{olc,stat}`, +utilizing the considerations above, is defined as follows: + +If the required acceleration :math:`a_{set}` is smaller than zero, it can be +produced by the engine drag torque or the brake system. If the engine drag +torque :math:`M_{eng,drag}` at the current engine speed :math:`n_{eng}` is not +strong enough to meet the engine torque :math:`M_{eng}`, which would be +necessary to produce :math:`a_{set}`, an **additional** actuation of the brake +pedal is applied (the driver does not open the clutch, so the engine drag torque +is also applied to the wheels). This mechanism is not considering a change in +gears, but uses the current gear of the gearbox (the driver does not consider to +shift down for a stronger effect of the engine drag torque). + +If the required acceleration :math:`a_{set}` is greater than or equal to zero, +it can only be produced by the powertrain. First of all, the optimal gear to +produce the engine torque :math:`M_{eng}` required for :math:`a_{set}` is +calculated, which is described in :ref:`the subsequent subsection<algorithm_longitudinal_openloop_optimal_gear_>`. +With this chosen gear, the current engine speed :math:`n_{eng}` is calculated. +:math:`n_{eng}` is used to determine the maximum engine torque :math:`M_{eng,max}` +and the engine drag torque :math:`M_{eng,drag}` from the characteristic curves. +As these two values are connected to a full actuation and no actuation of the +accelerator pedal, the estimated accelerator pedal position, which is necessary +to produce the required acceleration :math:`a_{set}`, can be calculated by +linear interpolation. + +The state variable :math:`v_{act}` is received from the module :ref:`sensor_driver`, +the required acceleration :math:`a_{set}` is received from a driver behavior +model, and the vehicle parameters :math:`m`, :math:`r_{stat}`, :math:`i_{a}`, :math:`i_{g}` per gear, +and the information about the engine map are received from the module :ref:`parameters_vehicle`. + +The calculations above are done in the function CalculatePedalPositions, which is called in +the function CalculatePedalPositionAndGear of Algorithm_Longitudinal. + +.. _algorithm_longitudinal_openloop_optimal_gear_: + +Algorithm for optimal gear determination +---------------------------------------- + +The algorithm for the determination of the optimal gear for the required +acceleration :math:`a_{set}` is implemented in the function CalculateGearAndEngineSpeed. +It is called within the function CalculatePedalPositionAndGear of Algorithm_Longitudinal, +which applies the :ref:`inverted longitudinal dynamics model<algorithm_longitudinal_detailed_description_inverted_dynamics_model_>`. +The algorithm receives the current velocity :math:`v_{act}` of the vehicle and the required acceleration :math:`a_{set}`. + +Within a for-loop over all gears, the engine speed :math:`n_{eng}` is calculated +for each gear, which would result from the current velocity :math:`v_{act}`, +as well as the maximum engine torque :math:`M_{eng,max}` and the engine drag +torque :math:`M_{eng,drag}` resulting from these engine speeds. Violating the +minimum engine speed :math:`n_{eng,min}` and the maximum engine speed :math:`n_{eng,max}` +is not considered in this step (resulting engine speeds are written as they result +from the powertrain calculation and the engine torques are set to the lower or +upper limits of the characteristic curves respectively, if the engine speed +range is violated). + +The results above are further processed in a second for-loop over all gears. +The following aspects are checked to determine, if a gear fits the current +required state: + + +* Is the resulting engine speed :math:`n_{eng}` within the range of :math:`n_{eng,min}` + and :math:`n_{eng,max}`? +* Is the resulting engine torque :math:`M_{eng}` to produce the required + acceleration :math:`a_{set}` within the range of :math:`M_{eng,drag}` and :math:`M_{eng,max}`? + +The lowest gear that fits these criteria sets a Boolean foundGear true and the +results (gear number and resulting engine speed :math:`n_{eng}`) are written in +the result vector. This is done for all further gears, until a gear does not fit +the requirements anymore. This initiates the return of the last sufficient gear +and its resulting engine speed :math:`n_{eng}`. A short example should +illustrate this logic: + + +#. The 2nd gear activates the Boolean foundGear, because :math:`n_{eng}` does + not exceed :math:`n_{eng,max}` anymore +#. The 4th gear activates the return of the results, because the required engine + torque :math:`M_{eng}` would exceed the maximum possible engine torque :math:`M_{eng,max}` + at the corresponding engine speed :math:`n_{eng}` +#. The algorithm chooses the 3rd gear as optimum and returns it and its + corresponding engine speed :math:`n_{eng}` + +This logic therefore guarantees, that always the highest possible gear is chosen +by the driver. diff --git a/content/html/_sources/user_guide/sim_user_guide/components/driver.rst.txt b/content/html/_sources/user_guide/sim_user_guide/components/driver.rst.txt index bf3f1ddb2c43283215efa15c5fbf233f6a41ffa4..9de4c01feae779226b26c7cc6511db8de6155750 100644 --- a/content/html/_sources/user_guide/sim_user_guide/components/driver.rst.txt +++ b/content/html/_sources/user_guide/sim_user_guide/components/driver.rst.txt @@ -1,107 +1,107 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _components_driver: - -Driver ------- - -.. _components_agentfollowingdrivermodel: - -AlgorithmAgentFollowingDriverModel -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -AlgorithmAgentFollowingDriverModel implements a simple driver model for longitudinal and lateral control. - -Lateral control -^^^^^^^^^^^^^^^ -The lateral guidance always keeps the agent in the middle of the lane. - -Longitudinal control -^^^^^^^^^^^^^^^^^^^^ -This driver type works according to the IDM (Intelligent Driver Model) and adapts its velocity to an agent in front and holds -a desired velocity if there's no front agent available (like adaptive cruise control). - -For a simplified version of the model, the Intelligent Driver Model acceleration :math:`a_{IDM}` is described by the following equation: - -.. math:: - a_{IDM} = a_{max} \cdot (1 - (\frac{v_{vehicle}}{v_{wish}})^\delta - (\frac{s^*(v_{vehicle},\Delta v)}{s_{netDistance}})^2) - -with - -.. math:: - s^*(v_{vehicle},\Delta v) = s_{0} + v_{vehicle} \cdot T + \frac{v_{vehicle} \cdot \Delta v}{2 \cdot \sqrt{a_{max} \cdot b_{max}}} - -The calculation of :math:`\Delta v` is done by subtracting the absolute velocity :math:`v_{vehicle}` of the own vehicle -from the absolute velocity :math:`v_{frontAgent}` of the front agent: - -.. math:: - \Delta v = v_{vehicle} - v_{frontAgent} - -The acceleration of the vehicle (Intelligent Driver Model acceleration) can be separated into - -* free road term: - -.. math:: - a_{max} \cdot (1 - (\frac{v_{vehicle}}{v_{wish}})^\delta) - -* interaction term: - -.. math:: - -a_{max} \cdot (\frac{s^*(v_{vehicle},\Delta v)}{s_{netDistance}})^2 = -a_{max} \cdot (\frac{s_{0} + v_{vehicle} \cdot T}{s_{netDistance}} + \frac{v_{vehicle} \cdot \Delta v}{2 \cdot \sqrt{a_{max} \cdot b_{max}} \cdot s_{netDistance}})^2 - -**Free road behavior:** On a free road, the distance to the front agent is huge and the vehicle's acceleration is controlled -by the free road term, which is approximately equal to :math:`a_{max}` for low velocities and vanishes as :math:`v_{vehicle}` approaches :math:`v_{wish}`. -There will be some deviation to the actual vehicle velocity, due to the model not being aware of air drag or engine drag (which might be introduced by -subsequent agent components). AlgorithmAgentFollowingDriverModel just controls its velocity wish. - -**Behavior at high approaching rates**: For large velocity differences, the interaction term is governed by: - -.. math:: - -a_{max} \cdot (\frac{v_{vehicle} \cdot \Delta v}{2 \cdot \sqrt{a_{max} \cdot b_{max}} \cdot s_{netDistance}})^2 - -This leads to a driving behavior that compensates velocity differences while trying not to brake much harder than the maximum braking deceleration :math:`b_{max}`. - -**Behavior at small net distances**: For minor velocity differences and small net distances, the interaction term is approximately equal to: - -.. math:: - -a_{max} \cdot (\frac{s_{0} + v_{vehicle} \cdot T}{s_{netDistance}})^2 - -which resembles a simple repulsive force such that small net distances are quickly enlarged towards an equilibrium net distance. - -The following table and the DriverProfile snippet describe a whole DriverProfile. Type "AlgorithmAgentFollowingDriverModel" in -the DriverProfile snippet below determines that this set of parameters is active. - -.. table:: - :class: tight-table - - ================================ ========== ==== ====================================================================================================================== ============================ - Parameter Type Unit Description Defaults to - ================================ ========== ==== ====================================================================================================================== ============================ - AlgorithmLateralModule String Behavior model for the steering wheel angle of the driver Required value - AlgorithmLongitudinalModule String Behavior model for the accelerator, brake pedal position, and the current gear of the driver Required value - VelocityWish: :math:`v_{wish}` Double m/s Desired speed :abbr:`33.33 m/s (120 km/h)` - Delta: :math:`\delta` Double Free acceleration exponent characterizing how the acceleration decreases with velocity (1: linear, infinity: constant) 4.0 - TGapWish: :math:`T` Double s Desired time gap between ego and front agent 1.5 s - MinDistance: :math:`s_{0}` Double m Minimum distance between ego and front (used at slow speeds); Also called jam distance 2.0 m - MaxAcceleration: :math:`a_{max}` Double m/s² Maximum acceleration in satisfactory way, not vehicle possible acceleration 1.4 m/s² - MaxDeceleration: :math:`b_{max}` Double m/s² Desired deceleration 2.0 m/s² - ================================ ========== ==== ====================================================================================================================== ============================ - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/ProfilesCatalog.xml - :language: xml - :dedent: 4 - :start-at: <Profile Name="Regular"> - :end-at: </Profile> - -For further information, please refer to: - -Treiber, Martin; Hennecke, Ansgar; Helbing, Dirk (2000), "Congested traffic states in empirical observations and microscopic simulations", Physical Review E, 62 (2): 1805–1824, https://arxiv.org/pdf/cond-mat/0002177.pdf +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _components_driver: + +Driver +------ + +.. _components_agentfollowingdrivermodel: + +AlgorithmAgentFollowingDriverModel +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +AlgorithmAgentFollowingDriverModel implements a simple driver model for longitudinal and lateral control. + +Lateral control +^^^^^^^^^^^^^^^ +The lateral guidance always keeps the agent in the middle of the lane. + +Longitudinal control +^^^^^^^^^^^^^^^^^^^^ +This driver type works according to the IDM (Intelligent Driver Model) and adapts its velocity to an agent in front and holds +a desired velocity if there's no front agent available (like adaptive cruise control). + +For a simplified version of the model, the Intelligent Driver Model acceleration :math:`a_{IDM}` is described by the following equation: + +.. math:: + a_{IDM} = a_{max} \cdot (1 - (\frac{v_{vehicle}}{v_{wish}})^\delta - (\frac{s^*(v_{vehicle},\Delta v)}{s_{netDistance}})^2) + +with + +.. math:: + s^*(v_{vehicle},\Delta v) = s_{0} + v_{vehicle} \cdot T + \frac{v_{vehicle} \cdot \Delta v}{2 \cdot \sqrt{a_{max} \cdot b_{max}}} + +The calculation of :math:`\Delta v` is done by subtracting the absolute velocity :math:`v_{vehicle}` of the own vehicle +from the absolute velocity :math:`v_{frontAgent}` of the front agent: + +.. math:: + \Delta v = v_{vehicle} - v_{frontAgent} + +The acceleration of the vehicle (Intelligent Driver Model acceleration) can be separated into + +* free road term: + +.. math:: + a_{max} \cdot (1 - (\frac{v_{vehicle}}{v_{wish}})^\delta) + +* interaction term: + +.. math:: + -a_{max} \cdot (\frac{s^*(v_{vehicle},\Delta v)}{s_{netDistance}})^2 = -a_{max} \cdot (\frac{s_{0} + v_{vehicle} \cdot T}{s_{netDistance}} + \frac{v_{vehicle} \cdot \Delta v}{2 \cdot \sqrt{a_{max} \cdot b_{max}} \cdot s_{netDistance}})^2 + +**Free road behavior:** On a free road, the distance to the front agent is huge and the vehicle's acceleration is controlled +by the free road term, which is approximately equal to :math:`a_{max}` for low velocities and vanishes as :math:`v_{vehicle}` approaches :math:`v_{wish}`. +There will be some deviation to the actual vehicle velocity, due to the model not being aware of air drag or engine drag (which might be introduced by +subsequent agent components). AlgorithmAgentFollowingDriverModel just controls its velocity wish. + +**Behavior at high approaching rates**: For large velocity differences, the interaction term is governed by: + +.. math:: + -a_{max} \cdot (\frac{v_{vehicle} \cdot \Delta v}{2 \cdot \sqrt{a_{max} \cdot b_{max}} \cdot s_{netDistance}})^2 + +This leads to a driving behavior that compensates velocity differences while trying not to brake much harder than the maximum braking deceleration :math:`b_{max}`. + +**Behavior at small net distances**: For minor velocity differences and small net distances, the interaction term is approximately equal to: + +.. math:: + -a_{max} \cdot (\frac{s_{0} + v_{vehicle} \cdot T}{s_{netDistance}})^2 + +which resembles a simple repulsive force such that small net distances are quickly enlarged towards an equilibrium net distance. + +The following table and the DriverProfile snippet describe a whole DriverProfile. Type "AlgorithmAgentFollowingDriverModel" in +the DriverProfile snippet below determines that this set of parameters is active. + +.. table:: + :class: tight-table + + ================================ ========== ==== ====================================================================================================================== ============================ + Parameter Type Unit Description Defaults to + ================================ ========== ==== ====================================================================================================================== ============================ + AlgorithmLateralModule String Behavior model for the steering wheel angle of the driver Required value + AlgorithmLongitudinalModule String Behavior model for the accelerator, brake pedal position, and the current gear of the driver Required value + VelocityWish: :math:`v_{wish}` Double m/s Desired speed :abbr:`33.33 m/s (120 km/h)` + Delta: :math:`\delta` Double Free acceleration exponent characterizing how the acceleration decreases with velocity (1: linear, infinity: constant) 4.0 + TGapWish: :math:`T` Double s Desired time gap between ego and front agent 1.5 s + MinDistance: :math:`s_{0}` Double m Minimum distance between ego and front (used at slow speeds); Also called jam distance 2.0 m + MaxAcceleration: :math:`a_{max}` Double m/s² Maximum acceleration in satisfactory way, not vehicle possible acceleration 1.4 m/s² + MaxDeceleration: :math:`b_{max}` Double m/s² Desired deceleration 2.0 m/s² + ================================ ========== ==== ====================================================================================================================== ============================ + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/ProfilesCatalog.xml + :language: xml + :dedent: 4 + :start-at: <Profile Name="Regular"> + :end-at: </Profile> + +For further information, please refer to: + +Treiber, Martin; Hennecke, Ansgar; Helbing, Dirk (2000), "Congested traffic states in empirical observations and microscopic simulations", Physical Review E, 62 (2): 1805–1824, https://arxiv.org/pdf/cond-mat/0002177.pdf diff --git a/content/html/_sources/user_guide/sim_user_guide/components/dynamics_regular_driving.rst.txt b/content/html/_sources/user_guide/sim_user_guide/components/dynamics_regular_driving.rst.txt index ab03d414ccc09c03e2d910fdc40d192b774042dc..5f1212069d36a5087e64102808aefb6641c3d1c2 100644 --- a/content/html/_sources/user_guide/sim_user_guide/components/dynamics_regular_driving.rst.txt +++ b/content/html/_sources/user_guide/sim_user_guide/components/dynamics_regular_driving.rst.txt @@ -1,224 +1,224 @@ -.. - ******************************************************************************* - Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _dynamics_regular_driving: - -Dynamics_RegularDriving -####################### - - -This module is responsible for the vehicle dynamics under normal driving conditions. -It receives a signal from the lateral dynamics module :ref:`algorithm_lateral` containing the steering wheel angle. -Accelerator pedal position, brake pedal position and the currently engaged gear are fetched from the signal sent by the longitudinal dynamics module :ref:`algorithm_longitudinal`. -The module is using these inputs and the vehicle parameters from :ref:`parameters_vehicle` to determine the resulting vehicle speed, yaw angle and absolute position in the road coordinate system. -The calculated values are passed on to the simulation framework/WorldObjectInterface. - -Overview of the module's functionalities -======================================== - - -Longitudinal dynamics ---------------------- -The core element of all longitudinal calculations in this model are speed and acceleration. To determine the change of speed :math:`\Delta v` and the vehicles velocity :math:`v_{act_{i}}` of the current time step :math:`i` the actual acceleration :math:`a_{act}` has to be known. - -The module uses a simplified longitudinal dynamics model e.g. it doesn't factor in rotational inertias. - -:math:`a_{act}` is dependend on the state variables and parameters shown in table 1. - -.. table:: - :class: tight-table - - ====================== ===================================== ====== ======================= - Variable Meaning Unit Source - ====================== ===================================== ====== ======================= - :math:`v_{act_{i-1}}` currently saved velocity of agent m/s WorldObjectInterface - :math:`pos_{actuator}` position of accelerator/brake pedal Algorithm_Longitudinal - :math:`gear` chosen gear Algorithm_Longitudinal - :math:`i_{g} (gear)` gear ratio of current gear vehicleModelParameters - :math:`i_{a}` gear ratio of axle vehicleModelParameters - :math:`M_{eng,max}` maximum torque of the vehicle engine Nm vehicleModelParameters - :math:`n_{eng,max}` maximum engine speed 1/min vehicleModelParameters - :math:`n_{eng,min}` minimum engine speed 1/min vehicleModelParameters - :math:`r_{stat}` static wheel radius m vehicleModelParameters - :math:`m_{vehicle}` vehicle mass kg vehicleModelParameters - :math:`c_{W}` air drag coefficient vehicleModelParameters - :math:`c_{R}` rolling resistance tire vehicleModelParameters - :math:`A_{proj}` front surface m² vehicleModelParameters - ====================== ===================================== ====== ======================= - -First variables are used to calculate the current engine speed :math:`n_{eng}` . -To do so the speed of the wheels :math:`n_{wheel}` is determined via the vehicle velocity and static wheel radius: - -.. math:: - - n_{wheel} = \frac{v_{act_{i-1}}}{r_{stat}} \cdot \frac{60}{2 \cdot \pi} - -The powertrain model in the following image is used to further derive the engine speed :math:`n_{eng}` using the gear ratio :math:`i_{g} (gear)` of the currently engaged gear and axle ratio :math:`i_{a}` . - -.. _image_PowertrainModel2_: - -.. figure:: _static/images/PowertrainModel.svg - :alt: Illustration of the powertrain model and its parameters and state variables - - Illustration of the powertrain model and its parameters and state variables - - -.. math:: - n_{eng} = n_{wheel} \cdot i_{a} \cdot i_{g} (gear) - - -The maximum torque :math:`M_{eng,max} (n_{eng})` at the current engine speed is determined using the engine torque map shown in the following image: - -.. figure:: _static/images/EngineMapCalculated.svg - :alt: Simplified Engine Map - - Simplified Engine Map - - -At this point the module differentiates between deceleration and acceleration by checking whether the value of :math:`pos_{actuator}` is positive or negative. -Negative values indicate the use of the brake pedal between 0-100% while positive values represent the use of the accelerator pedal. - -**Driving resistance:** There are driving resistances to be considered during the drive due to the rolling resistance of tires and air resistance which -could be calculated according to the follwing relations in fluid mechanics, where :math:`\rho_{air}` stands for air density in :math:`kg / m^3` : - -.. math:: - a_{AirDrag} = - \frac{\rho_{air} \cdot c_{w} \cdot A_{proj} \cdot v_{act_{i-a}}^2}{2 \cdot m_{vehicle}} - -.. math:: - a_{RollingDrag} = c_{R} \cdot 9.81 \frac{m}{s^2} - - -The rolling resistance of vehicle is currently set as a dummy value (0.0125), because the related value is not in the catalog of vehicle models yet and -therefore it still can not be tapped in interface. - -**Decelerating:** When decelerating :math:`a_{act}` is the sum of the acceleration resulting from engine drag :math:`a_{drag}` and acceleration from braking :math:`a_{brake}` . -Whenever the driver is braking the module assumes that the engine is dragging with a moment equal to 10% of the maximum torque at the current engine speed. - -.. math:: - M_{drag}(n_{eng}) = - 0.1 \cdot M_{eng,max}(n_{eng}) - -.. math:: - M_{wheel} = \frac{M_{drag}(n_{eng})}{i_{a} \cdot i_{g}(gear)} - -.. math:: - F_{wheel} = \frac{M_{wheel}}{r_{stat}} - -.. math:: - a_{drag} = \frac{F_{wheel}}{m_{vehicle}} - - - -The maximum braking deceleration is set to :math:`a_{brake,max} = 9.81 m/s^2`. The actual braking power is proportional to the position of the braking pedal. - -.. math:: - a_{brake} = pos_{actuator} \cdot a_{brake,max} - -.. math:: - a_{act} = a_{drag} + a_{brake} - - -**Acceleration:** When the driver applies pressure on the accelerator the applied engine torque :math:`M_{eng,act}` is calculated as proportional to the accelerator pedal position and the span between engine drag and maximum engine torque :math:`M_{eng}`\ (:math:`n_{eng}` ) at the current engine speed. - -.. math:: - M_{eng}(n_{eng}) = M_{drag}(n_eng) + pos_{actuator}(M_{eng,max}(n_{eng}) - M_{drag}(n_{eng})) - -.. math:: - M_{wheel} = \frac{M_{eng,act}}{i_{a} \cdot i_{g}(gear)} - -.. math:: - F_{wheel} = \frac{M_{eng,act}}{r_{stat}} - -.. math:: - a_{act} = \frac{F_{wheel}}{m_{vehicle}} - - -Once the acceleration of the vehicle is known the change in velocity is determined by its discrete time integral. - -.. math:: - \Delta v = a_{act} \cdot t_{cycle} - - - -The sum of the previous velocity and change in velocity result in the actual vehicle velocity of the current time step: - -.. math:: - v_{act_{i}} = v_{act_{i-1}} + \Delta v - - - -Lateral dynamics ----------------- - -The lateral dynamics model is based on the Ackermann model which reduces the steering kinematics to a single surrogate front wheel. Considering the relatively small steering angles when driving on the highway this simplification is deemed suitable. -The heading is updated using the previous heading and the change in yaw due to the steering wheel angle which is converted into a yaw rate using the simplified Ackermann model shown in the following image. - -.. _image_AckermannModel_: - -.. figure:: _static/images/AckermannModel.svg - :alt: Illustration of the Ackermann model - - Illustration of the Ackermann model - -.. table:: - :class: tight-table - - ======================== ======================================= ====== ==================================== - Variable Meaning Unit Source - ======================== ======================================= ====== ==================================== - :math:`\delta_{h}` steering wheel angle rad Algorithm_Lateral - :math:`\Phi_{act_{i-1}}` heading at previous time step rad WorldObjectInterface - :math:`i_{s}` steering ratio vehicleModelParameters - :math:`l_{wheelbase}` wheelbase m vehicleModelParameters - :math:`\Delta s` distance travelled since last time step m previously calculated in the module - :math:`t_{cycle}` cycle time ms ModelInterface - ======================== ======================================= ====== ==================================== - -The steering wheel angle :math:`\delta_{h}` is proportional to the front wheel angle :math:`\delta` : - -.. math:: - \delta = \frac{\delta_{h}}{i_{s}} - - -The Ackermann model provides the geometric connection between the front wheel angle and the resulting curvature :math:`\kappa` : - -.. math:: - \kappa = \frac{tan(\delta)}{l_{wheelbase}} - - -The combination of curvature :math:`\kappa` and driven distance at that curvature :math:`\Delta s` result in the change of the heading :math:`\Delta \Phi`: - -.. math:: - \Delta \Phi = atan(\kappa \cdot \Delta s) - - - -The new heading :math:`\Phi_{act_{i}}` is the old heading :math:`\Phi_{act{i-1}}` plus the previously calculated change in heading :math:`\Delta \Phi` : - -.. math:: - \Phi_{act_{i}} = \Phi_{act_{i-1}} + \Delta \Phi - - -Updating position ------------------ - -Once the new vehicle speed :math:`v_{act_{i}}` is determined the distance travelled during the last timestep :math:`\Delta s` is determined: - -.. math:: - \Delta s = v_{act_{i}} \cdot t_{cycle} - - -Using the actual vehicle yaw angle in the road coordinate :math:`\Phi_{act_{i-1}}` the vehicles new x- and y-coordinates are calculated: - -.. math:: - x_{agent_{i}} = x_{agent_{i-1}} + \Delta s \cdot cos(\Phi_{act_{i-1}}) - -.. math:: - y_{agent_{i}} = y_{agent_{i-1}} + \Delta s \cdot sin(\Phi_{act_{i-1}}) +.. + ******************************************************************************* + Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _dynamics_regular_driving: + +Dynamics_RegularDriving +####################### + + +This module is responsible for the vehicle dynamics under normal driving conditions. +It receives a signal from the lateral dynamics module :ref:`algorithm_lateral` containing the steering wheel angle. +Accelerator pedal position, brake pedal position and the currently engaged gear are fetched from the signal sent by the longitudinal dynamics module :ref:`algorithm_longitudinal`. +The module is using these inputs and the vehicle parameters from :ref:`parameters_vehicle` to determine the resulting vehicle speed, yaw angle and absolute position in the road coordinate system. +The calculated values are passed on to the simulation framework/WorldObjectInterface. + +Overview of the module's functionalities +======================================== + + +Longitudinal dynamics +--------------------- +The core element of all longitudinal calculations in this model are speed and acceleration. To determine the change of speed :math:`\Delta v` and the vehicles velocity :math:`v_{act_{i}}` of the current time step :math:`i` the actual acceleration :math:`a_{act}` has to be known. + +The module uses a simplified longitudinal dynamics model e.g. it doesn't factor in rotational inertias. + +:math:`a_{act}` is dependend on the state variables and parameters shown in table 1. + +.. table:: + :class: tight-table + + ====================== ===================================== ====== ======================= + Variable Meaning Unit Source + ====================== ===================================== ====== ======================= + :math:`v_{act_{i-1}}` currently saved velocity of agent m/s WorldObjectInterface + :math:`pos_{actuator}` position of accelerator/brake pedal Algorithm_Longitudinal + :math:`gear` chosen gear Algorithm_Longitudinal + :math:`i_{g} (gear)` gear ratio of current gear vehicleModelParameters + :math:`i_{a}` gear ratio of axle vehicleModelParameters + :math:`M_{eng,max}` maximum torque of the vehicle engine Nm vehicleModelParameters + :math:`n_{eng,max}` maximum engine speed 1/min vehicleModelParameters + :math:`n_{eng,min}` minimum engine speed 1/min vehicleModelParameters + :math:`r_{stat}` static wheel radius m vehicleModelParameters + :math:`m_{vehicle}` vehicle mass kg vehicleModelParameters + :math:`c_{W}` air drag coefficient vehicleModelParameters + :math:`c_{R}` rolling resistance tire vehicleModelParameters + :math:`A_{proj}` front surface m² vehicleModelParameters + ====================== ===================================== ====== ======================= + +First variables are used to calculate the current engine speed :math:`n_{eng}` . +To do so the speed of the wheels :math:`n_{wheel}` is determined via the vehicle velocity and static wheel radius: + +.. math:: + + n_{wheel} = \frac{v_{act_{i-1}}}{r_{stat}} \cdot \frac{60}{2 \cdot \pi} + +The powertrain model in the following image is used to further derive the engine speed :math:`n_{eng}` using the gear ratio :math:`i_{g} (gear)` of the currently engaged gear and axle ratio :math:`i_{a}` . + +.. _image_PowertrainModel2_: + +.. figure:: _static/images/PowertrainModel.svg + :alt: Illustration of the powertrain model and its parameters and state variables + + Illustration of the powertrain model and its parameters and state variables + + +.. math:: + n_{eng} = n_{wheel} \cdot i_{a} \cdot i_{g} (gear) + + +The maximum torque :math:`M_{eng,max} (n_{eng})` at the current engine speed is determined using the engine torque map shown in the following image: + +.. figure:: _static/images/EngineMapCalculated.svg + :alt: Simplified Engine Map + + Simplified Engine Map + + +At this point the module differentiates between deceleration and acceleration by checking whether the value of :math:`pos_{actuator}` is positive or negative. +Negative values indicate the use of the brake pedal between 0-100% while positive values represent the use of the accelerator pedal. + +**Driving resistance:** There are driving resistances to be considered during the drive due to the rolling resistance of tires and air resistance which +could be calculated according to the follwing relations in fluid mechanics, where :math:`\rho_{air}` stands for air density in :math:`kg / m^3` : + +.. math:: + a_{AirDrag} = - \frac{\rho_{air} \cdot c_{w} \cdot A_{proj} \cdot v_{act_{i-a}}^2}{2 \cdot m_{vehicle}} + +.. math:: + a_{RollingDrag} = c_{R} \cdot 9.81 \frac{m}{s^2} + + +The rolling resistance of vehicle is currently set as a dummy value (0.0125), because the related value is not in the catalog of vehicle models yet and +therefore it still can not be tapped in interface. + +**Decelerating:** When decelerating :math:`a_{act}` is the sum of the acceleration resulting from engine drag :math:`a_{drag}` and acceleration from braking :math:`a_{brake}` . +Whenever the driver is braking the module assumes that the engine is dragging with a moment equal to 10% of the maximum torque at the current engine speed. + +.. math:: + M_{drag}(n_{eng}) = - 0.1 \cdot M_{eng,max}(n_{eng}) + +.. math:: + M_{wheel} = \frac{M_{drag}(n_{eng})}{i_{a} \cdot i_{g}(gear)} + +.. math:: + F_{wheel} = \frac{M_{wheel}}{r_{stat}} + +.. math:: + a_{drag} = \frac{F_{wheel}}{m_{vehicle}} + + + +The maximum braking deceleration is set to :math:`a_{brake,max} = 9.81 m/s^2`. The actual braking power is proportional to the position of the braking pedal. + +.. math:: + a_{brake} = pos_{actuator} \cdot a_{brake,max} + +.. math:: + a_{act} = a_{drag} + a_{brake} + + +**Acceleration:** When the driver applies pressure on the accelerator the applied engine torque :math:`M_{eng,act}` is calculated as proportional to the accelerator pedal position and the span between engine drag and maximum engine torque :math:`M_{eng}`\ (:math:`n_{eng}` ) at the current engine speed. + +.. math:: + M_{eng}(n_{eng}) = M_{drag}(n_eng) + pos_{actuator}(M_{eng,max}(n_{eng}) - M_{drag}(n_{eng})) + +.. math:: + M_{wheel} = \frac{M_{eng,act}}{i_{a} \cdot i_{g}(gear)} + +.. math:: + F_{wheel} = \frac{M_{eng,act}}{r_{stat}} + +.. math:: + a_{act} = \frac{F_{wheel}}{m_{vehicle}} + + +Once the acceleration of the vehicle is known the change in velocity is determined by its discrete time integral. + +.. math:: + \Delta v = a_{act} \cdot t_{cycle} + + + +The sum of the previous velocity and change in velocity result in the actual vehicle velocity of the current time step: + +.. math:: + v_{act_{i}} = v_{act_{i-1}} + \Delta v + + + +Lateral dynamics +---------------- + +The lateral dynamics model is based on the Ackermann model which reduces the steering kinematics to a single surrogate front wheel. Considering the relatively small steering angles when driving on the highway this simplification is deemed suitable. +The heading is updated using the previous heading and the change in yaw due to the steering wheel angle which is converted into a yaw rate using the simplified Ackermann model shown in the following image. + +.. _image_AckermannModel_: + +.. figure:: _static/images/AckermannModel.svg + :alt: Illustration of the Ackermann model + + Illustration of the Ackermann model + +.. table:: + :class: tight-table + + ======================== ======================================= ====== ==================================== + Variable Meaning Unit Source + ======================== ======================================= ====== ==================================== + :math:`\delta_{h}` steering wheel angle rad Algorithm_Lateral + :math:`\Phi_{act_{i-1}}` heading at previous time step rad WorldObjectInterface + :math:`i_{s}` steering ratio vehicleModelParameters + :math:`l_{wheelbase}` wheelbase m vehicleModelParameters + :math:`\Delta s` distance travelled since last time step m previously calculated in the module + :math:`t_{cycle}` cycle time ms ModelInterface + ======================== ======================================= ====== ==================================== + +The steering wheel angle :math:`\delta_{h}` is proportional to the front wheel angle :math:`\delta` : + +.. math:: + \delta = \frac{\delta_{h}}{i_{s}} + + +The Ackermann model provides the geometric connection between the front wheel angle and the resulting curvature :math:`\kappa` : + +.. math:: + \kappa = \frac{tan(\delta)}{l_{wheelbase}} + + +The combination of curvature :math:`\kappa` and driven distance at that curvature :math:`\Delta s` result in the change of the heading :math:`\Delta \Phi`: + +.. math:: + \Delta \Phi = atan(\kappa \cdot \Delta s) + + + +The new heading :math:`\Phi_{act_{i}}` is the old heading :math:`\Phi_{act{i-1}}` plus the previously calculated change in heading :math:`\Delta \Phi` : + +.. math:: + \Phi_{act_{i}} = \Phi_{act_{i-1}} + \Delta \Phi + + +Updating position +----------------- + +Once the new vehicle speed :math:`v_{act_{i}}` is determined the distance travelled during the last timestep :math:`\Delta s` is determined: + +.. math:: + \Delta s = v_{act_{i}} \cdot t_{cycle} + + +Using the actual vehicle yaw angle in the road coordinate :math:`\Phi_{act_{i-1}}` the vehicles new x- and y-coordinates are calculated: + +.. math:: + x_{agent_{i}} = x_{agent_{i-1}} + \Delta s \cdot cos(\Phi_{act_{i-1}}) + +.. math:: + y_{agent_{i}} = y_{agent_{i-1}} + \Delta s \cdot sin(\Phi_{act_{i-1}}) diff --git a/content/html/_sources/user_guide/sim_user_guide/components/dynamics_scenario.rst.txt b/content/html/_sources/user_guide/sim_user_guide/components/dynamics_scenario.rst.txt index ef832ba0ad1299e7d81dc1b5dc748ba6debc8413..13ec0c0662f4925570bb39e750069f2003cebf97 100644 --- a/content/html/_sources/user_guide/sim_user_guide/components/dynamics_scenario.rst.txt +++ b/content/html/_sources/user_guide/sim_user_guide/components/dynamics_scenario.rst.txt @@ -1,64 +1,64 @@ -.. _dynamics_scenario: - -Dynamics_Scenario -================= - -This module acts as a direct implementation of external scenario actions, requested through `ControlStrategies` defined in the `Mantle API <https://gitlab.eclipse.org/eclipse/openpass/scenario_api>`. -As the MantleAPI is not an official standard, the module currently follows a "standard conform" interpretation based on `openSCENARIO V1.1 <https://www.asam.net/standards/detail/openscenario/>`. - -.. note:: - - Due to the nature of |op| actions that are set by the scenario engine in one timestep, will be visible in the simulation output starting with the next timestep, - because all states are only syncronized at the end of a timestep - -In every timestep one strategy for each MovementDomain (longitudinal and lateral) is active. -If the scenario engine sets a new strategy for a MovementDomain the previous strategy for this MovementDomain is stopped. -A strategy can also apply to both MovementDomains (meaning it is the only active strategy). -If a strategy is finished (except KeepVelocity and KeepLaneOffset which are never finished), this is reported back to the scenario engine. - -DefaultStrategies ------------------ - -KeepVelocity - longitudinal -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -During this strategy the velocity is constant (same as at the time when this strategy is set). -This is the default longitudinal strategy, if no other longitudinal strategy is set. - -KeepLaneOffset - lateral -~~~~~~~~~~~~~~~~~~~~~~~~ - -During this strategy the agent will drive along the lane with a constant offset (same as at the time when this strategy is set). -This is the default lateral strategy, if no other lateral strategy is set. - -Strategies ----------- - -FollowVelocitySpline - longitudinal -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -A velocity spline defines a function over time of the agent velocity. -This function is a piecewise polynomial of degree 3. -This strategy will be set for SpeedActions with DynamicsShape other than step. - -PerformChangeLane - lateral -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This strategy will have the agent switching lanes while keeping a constant longitudinal velocity (in s direction). -It will be set for LaneChangeActions where the target lane is not the current lane. -At the momement only DynamicsShape sinusoidal and DynamicsDimension distance or time is supported. - -.. note:: - - In the current implementation both movement domains are touched, even if a longitudinal movement controller is active. - This means that the velocity of the longitudinal is ignored while the lane change is executed. - This may result in a jump of the velocity at the end of the lane change. - - -FollowTrajectory - both -~~~~~~~~~~~~~~~~~~~~~~~~ - -A trajectory defines the position and orientation of the agent at defined times. -If a timestep lies between the trajectory points the position is linearly interpolated. -This strategy will be set for FollowTrajectoryActions. -TrajectoryFollowingMode is not supported and the agent will always strictly adhere to the trajectory. +.. _dynamics_scenario: + +Dynamics_Scenario +================= + +This module acts as a direct implementation of external scenario actions, requested through `ControlStrategies` defined in the `Mantle API <https://gitlab.eclipse.org/eclipse/openpass/scenario_api>`. +As the MantleAPI is not an official standard, the module currently follows a "standard conform" interpretation based on `openSCENARIO V1.1 <https://www.asam.net/standards/detail/openscenario/>`. + +.. note:: + + Due to the nature of |op| actions that are set by the scenario engine in one timestep, will be visible in the simulation output starting with the next timestep, + because all states are only syncronized at the end of a timestep + +In every timestep one strategy for each MovementDomain (longitudinal and lateral) is active. +If the scenario engine sets a new strategy for a MovementDomain the previous strategy for this MovementDomain is stopped. +A strategy can also apply to both MovementDomains (meaning it is the only active strategy). +If a strategy is finished (except KeepVelocity and KeepLaneOffset which are never finished), this is reported back to the scenario engine. + +DefaultStrategies +----------------- + +KeepVelocity - longitudinal +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +During this strategy the velocity is constant (same as at the time when this strategy is set). +This is the default longitudinal strategy, if no other longitudinal strategy is set. + +KeepLaneOffset - lateral +~~~~~~~~~~~~~~~~~~~~~~~~ + +During this strategy the agent will drive along the lane with a constant offset (same as at the time when this strategy is set). +This is the default lateral strategy, if no other lateral strategy is set. + +Strategies +---------- + +FollowVelocitySpline - longitudinal +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A velocity spline defines a function over time of the agent velocity. +This function is a piecewise polynomial of degree 3. +This strategy will be set for SpeedActions with DynamicsShape other than step. + +PerformChangeLane - lateral +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This strategy will have the agent switching lanes while keeping a constant longitudinal velocity (in s direction). +It will be set for LaneChangeActions where the target lane is not the current lane. +At the momement only DynamicsShape sinusoidal and DynamicsDimension distance or time is supported. + +.. note:: + + In the current implementation both movement domains are touched, even if a longitudinal movement controller is active. + This means that the velocity of the longitudinal is ignored while the lane change is executed. + This may result in a jump of the velocity at the end of the lane change. + + +FollowTrajectory - both +~~~~~~~~~~~~~~~~~~~~~~~~ + +A trajectory defines the position and orientation of the agent at defined times. +If a timestep lies between the trajectory points the position is linearly interpolated. +This strategy will be set for FollowTrajectoryActions. +TrajectoryFollowingMode is not supported and the agent will always strictly adhere to the trajectory. diff --git a/content/html/_sources/user_guide/sim_user_guide/components/sensor_driver.rst.txt b/content/html/_sources/user_guide/sim_user_guide/components/sensor_driver.rst.txt index beec1cde022eca6174eff3e7dec740cb7cc05e6c..00b4b9c2138e8ba13835daa34b9a17dd5d03b187 100644 --- a/content/html/_sources/user_guide/sim_user_guide/components/sensor_driver.rst.txt +++ b/content/html/_sources/user_guide/sim_user_guide/components/sensor_driver.rst.txt @@ -1,166 +1,166 @@ -.. - ******************************************************************************* - Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _sensor_driver: - -Sensor_Driver -############# - -This module collects and distributes data from the WorldInterface and AgentInterface concerning the own vehicle, traffic rule -and geometry information and surrounding object. It creates a data struct to store the world and agent data of the own vehicle, -traffic rule and geometry information, other objects and surrounding vehicles. - -Components of the module -======================== - -The information collected by SensorDriver consists of generally four different data structs: - -* :ref:`sensor_driver_own_vehicle_states_` includes all information about the vehicle of the driver (e.g. speed, acceleration, ...) -* :ref:`sensor_driver_traffic_rule_information_` includes information about the static environment (e.g. traffic signs, lane markings, ...) -* :ref:`sensor_driver_geometry_information_` includes information about surrounding lanes that describe its geometric features -* :ref:`sensor_driver_surrounding_objects_` includes information about objects surrounding the own agent as seen by the driver - -.. _sensor_driver_own_vehicle_states_: - -OwnVehicleStates ----------------- - -The Information of the own vehicle are based on the following general **struct OwnVehicleInformation** : - -.. table:: - :class: tight-table - - ====================================== ======= ===== ================================================================================== ============= - Variable Type Unit Description Default value - ====================================== ======= ===== ================================================================================== ============= - absoluteVelocity Double m/s Velocity of agent -999 - acceleration Double m/s² Acceleration of agent -999 - lateralPosition Double m t-coordinate -999 - heading Double rad Heading relative to lane -999 - steeringWheelAngle Double rad Angle of the steering wheel -999 - distanceToLaneBoundaryLeft Double m Distance between the left front point and the left boundary of the lane it is in -999 - distanceToLaneBoundaryRight Double m Distance between the right front point and the right boundary of the lane it is in -999 - collision Boolean Whether this agent has collided with another object false - ====================================== ======= ===== ================================================================================== ============= - -.. _sensor_driver_traffic_rule_information_: - -TrafficRuleInformation ----------------------- - -The struct TrafficRuleInformation contains infrastructure information of surrounding lanes that are used to establish traffic rules. - -The general structure is shown in the following table. - -.. table:: - :class: tight-table - - ============================== ===================================================================================== - Variable Description - ============================== ===================================================================================== - laneLeft Data about the lane to left (in driving direction) of the mainLane - laneEgo Data about the lane the where the middle of the front of the agent is (i.e. mainLane) - laneRight Data about the lane to right (in driving direction) of the mainLane - laneMarkingsLeft List of lane markings on the left side of mainLane - laneMarkingsRight List of lane markings on the right side of mainLane - laneMarkingsLeftOfLeftLane List of lane markings on the left side of lane to the left - laneMarkingsRightOfRightLane List of lane markings on the right side of lane to the right - ============================== ===================================================================================== - -The basis for the respective variables is the following general struct **LaneInformationTrafficRules**, which is used to trasport data of a lane concerning traffic rules as seen by the driver. - -.. table:: - :class: tight-table - - ============== =============================================================================== - Variable Description - ============== =============================================================================== - trafficSigns Vector of all traffic signs valid for this lane inside the visibility distance - trafficLights Vector of all traffic lights valid for this lane inside the visibility distance - ============== =============================================================================== - -.. _sensor_driver_geometry_information_: - -GeometryInformation -------------------- - -The struct GeometryInformation contains infrastructure information of surrounding lanes that describe its geometric features. - -The general structure is shown in the following table. - -.. table:: - :class: tight-table - - =================== ===================================================================================== - Variable Description - =================== ===================================================================================== - visibilityDistance Current maximum visibility distance as specified by the world - laneLeft Data about the lane to left (in driving direction) of the mainLane - laneEgo Data about the lane the where the middle of the front of the agent is (i.e. mainLane) - laneRight Data about the lane to right (in driving direction) of the mainLane - =================== ===================================================================================== - -The basis for the respective variables is the following general struct **LaneInformationGeometry**, which is used to transport data of a lane concerning its geometric features as seen by the driver. - -.. table:: - :class: tight-table - - =================== ======= ===== ================================================================= ============= - Variable Type Unit Description Default value - =================== ======= ===== ================================================================= ============= - exists Boolean Whether there is a lane on this position false - curvature Double 1/m Curvature at current s position (default if not existing) -999 - width Double m Width at current s position (default if not existing) -999 - distanceToEndOfLane Double m Distance from current position to the end of the lane or -999 - infinity if the end is farther away than the visibility distance - =================== ======= ===== ================================================================= ============= - -.. _sensor_driver_surrounding_objects_: - -SurroundingObjects ------------------- - -This struct SurroundingObjects contains data of the objects surrounding the own agent as seen by the driver. For all cases mainLaneId is used as own lane. - -.. table:: - :class: tight-table - - ================= ======================================================== - Variable Description - ================= ======================================================== - objectFront Next object in the same lane - objectRear Closest object behind the agent in the same lane - objectFrontLeft Next object in the lane to the left - objectRearLeft Closest object behind the agent in the lane to the left - objectFrontRight Next object in the lane to the right - objectRearRight Closest object behind the agent in the lane to the right - ================= ======================================================== - -The basis for the respective variables is the following general struct **ObjectInformation**, which is used to transport data of an object as seen by the driver: - -.. table:: - :class: tight-table - - ====================================== ======= ===== ============================================================================================== ============================= - Variable Type Unit Description Default value - ====================================== ======= ===== ============================================================================================== ============================= - id Integer Id of the object -1 (not existing) - exist Boolean False if there is no object in this position false - isStatic Boolean True if stationary object, false if agent false - absoluteVelocity Double m/s Absolute velocity of the agent -999 (object is not an agent) - acceleration Double m/s² Acceleration of the agent -999 (object is not an agent) - heading Double rad Heading relative to the street -999 (not existing) - length Double m Length of object -999 (not existing) - width Double m Width of object -999 (not existing) - height Double m Heigth of object -999 (not existing) - relativeLongitudinalDistance Double m Relative distance along the road (i.e. in direction s) between own agent and object -999 (not existing) - relativeLateralDistance Double m Relative distance at right angle to the road (i.e in direction t) between own agent and object -999 (not existing) - ====================================== ======= ===== ============================================================================================== ============================= +.. + ******************************************************************************* + Copyright (c) 2021-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _sensor_driver: + +Sensor_Driver +############# + +This module collects and distributes data from the WorldInterface and AgentInterface concerning the own vehicle, traffic rule +and geometry information and surrounding object. It creates a data struct to store the world and agent data of the own vehicle, +traffic rule and geometry information, other objects and surrounding vehicles. + +Components of the module +======================== + +The information collected by SensorDriver consists of generally four different data structs: + +* :ref:`sensor_driver_own_vehicle_states_` includes all information about the vehicle of the driver (e.g. speed, acceleration, ...) +* :ref:`sensor_driver_traffic_rule_information_` includes information about the static environment (e.g. traffic signs, lane markings, ...) +* :ref:`sensor_driver_geometry_information_` includes information about surrounding lanes that describe its geometric features +* :ref:`sensor_driver_surrounding_objects_` includes information about objects surrounding the own agent as seen by the driver + +.. _sensor_driver_own_vehicle_states_: + +OwnVehicleStates +---------------- + +The Information of the own vehicle are based on the following general **struct OwnVehicleInformation** : + +.. table:: + :class: tight-table + + ====================================== ======= ===== ================================================================================== ============= + Variable Type Unit Description Default value + ====================================== ======= ===== ================================================================================== ============= + absoluteVelocity Double m/s Velocity of agent -999 + acceleration Double m/s² Acceleration of agent -999 + lateralPosition Double m t-coordinate -999 + heading Double rad Heading relative to lane -999 + steeringWheelAngle Double rad Angle of the steering wheel -999 + distanceToLaneBoundaryLeft Double m Distance between the left front point and the left boundary of the lane it is in -999 + distanceToLaneBoundaryRight Double m Distance between the right front point and the right boundary of the lane it is in -999 + collision Boolean Whether this agent has collided with another object false + ====================================== ======= ===== ================================================================================== ============= + +.. _sensor_driver_traffic_rule_information_: + +TrafficRuleInformation +---------------------- + +The struct TrafficRuleInformation contains infrastructure information of surrounding lanes that are used to establish traffic rules. + +The general structure is shown in the following table. + +.. table:: + :class: tight-table + + ============================== ===================================================================================== + Variable Description + ============================== ===================================================================================== + laneLeft Data about the lane to left (in driving direction) of the mainLane + laneEgo Data about the lane the where the middle of the front of the agent is (i.e. mainLane) + laneRight Data about the lane to right (in driving direction) of the mainLane + laneMarkingsLeft List of lane markings on the left side of mainLane + laneMarkingsRight List of lane markings on the right side of mainLane + laneMarkingsLeftOfLeftLane List of lane markings on the left side of lane to the left + laneMarkingsRightOfRightLane List of lane markings on the right side of lane to the right + ============================== ===================================================================================== + +The basis for the respective variables is the following general struct **LaneInformationTrafficRules**, which is used to trasport data of a lane concerning traffic rules as seen by the driver. + +.. table:: + :class: tight-table + + ============== =============================================================================== + Variable Description + ============== =============================================================================== + trafficSigns Vector of all traffic signs valid for this lane inside the visibility distance + trafficLights Vector of all traffic lights valid for this lane inside the visibility distance + ============== =============================================================================== + +.. _sensor_driver_geometry_information_: + +GeometryInformation +------------------- + +The struct GeometryInformation contains infrastructure information of surrounding lanes that describe its geometric features. + +The general structure is shown in the following table. + +.. table:: + :class: tight-table + + =================== ===================================================================================== + Variable Description + =================== ===================================================================================== + visibilityDistance Current maximum visibility distance as specified by the world + laneLeft Data about the lane to left (in driving direction) of the mainLane + laneEgo Data about the lane the where the middle of the front of the agent is (i.e. mainLane) + laneRight Data about the lane to right (in driving direction) of the mainLane + =================== ===================================================================================== + +The basis for the respective variables is the following general struct **LaneInformationGeometry**, which is used to transport data of a lane concerning its geometric features as seen by the driver. + +.. table:: + :class: tight-table + + =================== ======= ===== ================================================================= ============= + Variable Type Unit Description Default value + =================== ======= ===== ================================================================= ============= + exists Boolean Whether there is a lane on this position false + curvature Double 1/m Curvature at current s position (default if not existing) -999 + width Double m Width at current s position (default if not existing) -999 + distanceToEndOfLane Double m Distance from current position to the end of the lane or -999 + infinity if the end is farther away than the visibility distance + =================== ======= ===== ================================================================= ============= + +.. _sensor_driver_surrounding_objects_: + +SurroundingObjects +------------------ + +This struct SurroundingObjects contains data of the objects surrounding the own agent as seen by the driver. For all cases mainLaneId is used as own lane. + +.. table:: + :class: tight-table + + ================= ======================================================== + Variable Description + ================= ======================================================== + objectFront Next object in the same lane + objectRear Closest object behind the agent in the same lane + objectFrontLeft Next object in the lane to the left + objectRearLeft Closest object behind the agent in the lane to the left + objectFrontRight Next object in the lane to the right + objectRearRight Closest object behind the agent in the lane to the right + ================= ======================================================== + +The basis for the respective variables is the following general struct **ObjectInformation**, which is used to transport data of an object as seen by the driver: + +.. table:: + :class: tight-table + + ====================================== ======= ===== ============================================================================================== ============================= + Variable Type Unit Description Default value + ====================================== ======= ===== ============================================================================================== ============================= + id Integer Id of the object -1 (not existing) + exist Boolean False if there is no object in this position false + isStatic Boolean True if stationary object, false if agent false + absoluteVelocity Double m/s Absolute velocity of the agent -999 (object is not an agent) + acceleration Double m/s² Acceleration of the agent -999 (object is not an agent) + heading Double rad Heading relative to the street -999 (not existing) + length Double m Length of object -999 (not existing) + width Double m Width of object -999 (not existing) + height Double m Heigth of object -999 (not existing) + relativeLongitudinalDistance Double m Relative distance along the road (i.e. in direction s) between own agent and object -999 (not existing) + relativeLateralDistance Double m Relative distance at right angle to the road (i.e in direction t) between own agent and object -999 (not existing) + ====================================== ======= ===== ============================================================================================== ============================= diff --git a/content/html/_sources/user_guide/sim_user_guide/components/spawner.rst.txt b/content/html/_sources/user_guide/sim_user_guide/components/spawner.rst.txt index 89e8526751614bf47d06a2a18cd46f62092ebfd2..67f2c22bea538bd4507d36c6df563ab7761ba860 100644 --- a/content/html/_sources/user_guide/sim_user_guide/components/spawner.rst.txt +++ b/content/html/_sources/user_guide/sim_user_guide/components/spawner.rst.txt @@ -1,223 +1,223 @@ -.. - ******************************************************************************* - Copyright (c) 2021-2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - 2021 in-tech GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _components_spawner: - -Spawner -------- - -Spawners are responsible to populate the world. -In order to do so, several spawners can be used. - -.. _components_prerunspawner: - -PreRunSpawner -~~~~~~~~~~~~~ - -.. _OpenDRIVE: https://www.asam.net/standards/detail/opendrive/ - -The PreRunSpawner is responsible for populating the scenery/world with Common-Agents before the simulator starts. -This Spawner only acts once before the simulator starts and is not active during the simulation run. -The PreRunSpawner needs a list of SpawnZones that define where it will spawn agents and a list of weighted :ref:`components_trafficgroups` that defines the type and parameters of the spawned agents. -The SpawnZones have the following parameters: - -.. table:: - :class: tight-table - - ========= ============ ==== ======== ================================================================================== - Parameter Type Unit optional Description - ========= ============ ==== ======== ================================================================================== - Roads StringVector no List of linked Roads on which to spawn Agents. - Intermediate roads may be omitted. - If a road is not linked to the previous in the list (or doesn't exist), this road and the roads after it are ignored. - This means in particular, that if the first road in the list does not exist, the entire SpawnZone is ignored. - Lanes IntVector yes The LaneIDs of the Lanes of the Road on which to spawn Agents (given on SStart). - Inexistent lanes are ignored. - If omitted all lanes are used. - SStart Double m yes The S position on the first road specifying the start of the range within which to spawn Agents - If omitted the whole road is included - SEnd Double m yes The S position on the last road specifying the start of the range within which to spawn Agents - SLength Double m yes Length of spawned area calculated from SStart - This is ignored if SEnd is explicitly defined. - If neither is given the whole road is included - ========= ============ ==== ======== ================================================================================== - -.. note:: - - Lanes of two SpawnZones should not intersect each other. The behavior in this case is undefined. The PreRunSpawner is not required to fill the SpawnZones in the given order. - -SStart, SEnd and SLength may be out of range for the road. -In this case they are cropped such that the spawn range is maximum within the road's bounds. -It is also possible to define the MinimumSeparationBuffer either as fixed parameter of type double or as stochastic distribution: - -.. table:: - :class: tight-table - - ======================= ======================================= ==== ======== ==================================================== - Parameter Type Unit optional Description - ======================= ======================================= ==== ======== ==================================================== - MinimumSeparationBuffer Double (or any stochastic distribution) m yes Required minimum distance on lane between two agents - ======================= ======================================= ==== ======== ==================================================== - -If the MinimumSeparationBuffer isn't defined the default value of 5m is used. - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/ProfilesCatalog.xml - :language: xml - :dedent: 4 - :start-at: <Profile Name="DefaultPreRunCommon"> - :end-at: </Profile> - -The PreRunCommonSpawner will spawn common agents on the specified Lanes of the specified continuous Road sequence (= RoadStream) inside the specified s interval based on the parameters of the TrafficGroups. -The following restrictions apply: - -- The PreRunCommonSpawner only spawns on the following `OpenDRIVE`_ lane types: - - Driving - - OnRamp - - OffRamp - - ConnectingRamp - -- If the ScenarioSpawner spawned Scenario Agents (including the Ego agent) before this Spawner is triggered (in the intended order of these Spawners), ranges between the Scenario Agents are invalid for spawning by this Spawner. - The spawn ranges will only be augmented by Scenario Agents on the same Lane. - As such, there are 7 different potential scenarios that may arise in terms of how the valid spawn ranges of the spawner may be impacted: - - #) **Two Scenario Agents on the same Lane** - - One before S-Start position and one after S-End position: - This invalidates the entirety of the spawning range; no agents may be spawned here - - #) **Two Scenario Agents on the same Lane** - - One between S-Start position and S-End position and one either before S-Start or after S-End: - The only valid spawn range is that on the opposite side of the in-specified-range Agent from the outside-specified-range agent - - #) **Two Scenario Agents on the same Lane** - - Both within the specified S-Start and S-End positions - The valid spawn ranges are between S-Start and the first car and between the second car and S-End - - #) **Two Scenario Agents on the same Lane** - - Both outside the specified S-Start and S-End positions on the same side (both before S-Start or both after S-End): - The specified spawn range is entirely valid - - #) **One Scenario Agent on the same Lane** - - Within specified S-Start and S-End positions: - The valid spawn ranges include all but the bounds of the Agent within the specified S-Start and S-End positions - - #) **One Scenario Agent on the same Lane** - - Outside specified S-Start and S-End positions: - The specified spawn range is entirely valid - - #) **No Scenario Agents on the same Lane** - - The specified spawn range is entirely valid - -- If only non-existent lanes on SStart are specified, no spawning will occur - -- If some specified lanes exist and some are non-existent, spawning will occur for the lanes which do exist - -Once the spawning ranges are determined the PreRunSpawner will spawn for each spawning area based on the following logic: - -#) First the agentprofile needs to be determined. If the current spawn position evaluate to a right lane, the pool from which the agentprofile is drafted is extended by all traffic groups which contain the RightLaneOnly flag set to true. - -#) Then the time gap between the new agent and the closest existing agent is sampled. - -#) Afterwards the velocity of the new agent is being sampled under consideration of the homogeneity. - -#) The gap and velocity are used to calculate the distance between the new agent and the next agent in this spawnarea. Here a minimum distance of 5m between agents is required. - -#) A random route is sampled starting at the appropriate road - -#) Based on the distance and the velocity the TTC (2s) conditions are evaluated.If the TTC is critical the spawn velocity is reduced to fulfill the TTC requirements. - -#) As a final step the spawnzone evaluates the spawncoordinates. If they are valid the agent is created, else the spawnzone moves on to the next spawning range. - -.. _components_runtimespawner: - -RuntimeSpawner -~~~~~~~~~~~~~~ - -The RuntimeSpawner (included in library "SpawnerRuntimeCommon_OSI") is responsible for maintaining a populated scenery throughout the simulation runtime. -It acts at each timestep throughout the simulation run and attempts to spawn Common Agents at the specified location(s). -The RuntimeSpawner needs a list of SpawnZones that define where it will spawn agents and a list of weighted :ref:`components_trafficgroups` that defines the type and parameters of the spawned agents. -The SpawnZones have the following parameters: - -.. table:: - :class: tight-table - - ========== ============ ==== ============================================================== - Parameter Type Unit Description - ========== ============ ==== ============================================================== - Roads StringVector The RoadIDs of the Roads on which to spawn Agents - Lanes IntVector The LaneIDs of the Lanes of the Road on which to spawn Agents - S-Position Double m The S position specifying at which point to spawn Agents - ========== ============ ==== ============================================================== - -It is also possible to define the MinimumSeparationBuffer either as fixed parameter of type double or as stochastic distribution: - -.. table:: - :class: tight-table - - ======================= ======================================= ==== ======== ==================================================== - Parameter Type Unit optional Description - ======================= ======================================= ==== ======== ==================================================== - MinimumSeparationBuffer Double (or any stochastic distribution) m yes Required minimum distance on lane between two agents - ======================= ======================================= ==== ======== ==================================================== - -If the MinimumSeparationBuffer isn't defined the default value of 5m is used. - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/ProfilesCatalog.xml - :language: xml - :dedent: 4 - :start-at: <Profile Name="DefaultRuntimeCommon"> - :end-at: </Profile> - -The RuntimeSpawner will spawn based on the following logic: - -- First the agentprofile needs to be determined. If the current spawn position evaluates to a right lane, the pool from which the agentprofile is drafted is extended by all traffic groups which contain the RightLaneOnly flag set to true. -- Then the gap between the spawn time of the new agent and the previously spawned agent is sampled. -- Afterwards the velocity of the new agent is being sampled under consideration of the homogeneity. -- A random route is sampled starting at the appropriate road -- Once the timely gap expires, the spawnpoint evaluate if the TTC (2s) conditions and a minimum required distance between agents (5m) are met. If the TTC is critical the spawn velocity is reduced to fullfill the TTC requriements. If the minimum distance is not fullfilled, the agent will be held back. -- If all requirements were fullfilled the agent is spawned. - -The RuntimeSpawner only spawns on the following `OpenDRIVE`_ lane types: Driving, OnRamp - -.. _components_trafficgroups: - -TrafficGroups -~~~~~~~~~~~~~ - -Both the :ref:`components_prerunspawner` and the :ref:`components_runtimespawner` need one or more TrafficGroup. -These are typically defined in a separate ProfileGroup of type "TrafficGroup" and then reference by the spawner profile. -In this way both spawner can use the same TrafficGroups. - -.. table:: - :class: tight-table - - ============= ============= ==== ======================================================================================================================================================================= - Parameter Type Unit Description - ============= ============= ==== ======================================================================================================================================================================= - AgentProfiles <List> A set of <ListItem>s which define potential AgentProfile values for the Agents spawned in the SpawnArea and the probability at which the TrafficVolume will be selected - Velocity Distribution m/s A stochastic distribution describing the velocity of the spawned Agents - TGap Distribution s A stochastic distribution describing the time gap between spawned Agents - Homogeneity DoubleVector OPTIONAL: A vector describing the velocity increments for left lanes - RightLaneOnly Bool OPTIONAL: A flag determining whether this TrafficGroup can only be applied to the right most lane - ============= ============= ==== ======================================================================================================================================================================= - -.. literalinclude:: /../../../repo/sim/contrib/examples/Common/ProfilesCatalog.xml - :language: xml - :dedent: 4 - :start-at: <Profile Name="LightVehicles"> - :end-at: </Profile> +.. + ******************************************************************************* + Copyright (c) 2021-2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + 2021 in-tech GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _components_spawner: + +Spawner +------- + +Spawners are responsible to populate the world. +In order to do so, several spawners can be used. + +.. _components_prerunspawner: + +PreRunSpawner +~~~~~~~~~~~~~ + +.. _OpenDRIVE: https://www.asam.net/standards/detail/opendrive/ + +The PreRunSpawner is responsible for populating the scenery/world with Common-Agents before the simulator starts. +This Spawner only acts once before the simulator starts and is not active during the simulation run. +The PreRunSpawner needs a list of SpawnZones that define where it will spawn agents and a list of weighted :ref:`components_trafficgroups` that defines the type and parameters of the spawned agents. +The SpawnZones have the following parameters: + +.. table:: + :class: tight-table + + ========= ============ ==== ======== ================================================================================== + Parameter Type Unit optional Description + ========= ============ ==== ======== ================================================================================== + Roads StringVector no List of linked Roads on which to spawn Agents. + Intermediate roads may be omitted. + If a road is not linked to the previous in the list (or doesn't exist), this road and the roads after it are ignored. + This means in particular, that if the first road in the list does not exist, the entire SpawnZone is ignored. + Lanes IntVector yes The LaneIDs of the Lanes of the Road on which to spawn Agents (given on SStart). + Inexistent lanes are ignored. + If omitted all lanes are used. + SStart Double m yes The S position on the first road specifying the start of the range within which to spawn Agents + If omitted the whole road is included + SEnd Double m yes The S position on the last road specifying the start of the range within which to spawn Agents + SLength Double m yes Length of spawned area calculated from SStart + This is ignored if SEnd is explicitly defined. + If neither is given the whole road is included + ========= ============ ==== ======== ================================================================================== + +.. note:: + + Lanes of two SpawnZones should not intersect each other. The behavior in this case is undefined. The PreRunSpawner is not required to fill the SpawnZones in the given order. + +SStart, SEnd and SLength may be out of range for the road. +In this case they are cropped such that the spawn range is maximum within the road's bounds. +It is also possible to define the MinimumSeparationBuffer either as fixed parameter of type double or as stochastic distribution: + +.. table:: + :class: tight-table + + ======================= ======================================= ==== ======== ==================================================== + Parameter Type Unit optional Description + ======================= ======================================= ==== ======== ==================================================== + MinimumSeparationBuffer Double (or any stochastic distribution) m yes Required minimum distance on lane between two agents + ======================= ======================================= ==== ======== ==================================================== + +If the MinimumSeparationBuffer isn't defined the default value of 5m is used. + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/ProfilesCatalog.xml + :language: xml + :dedent: 4 + :start-at: <Profile Name="DefaultPreRunCommon"> + :end-at: </Profile> + +The PreRunCommonSpawner will spawn common agents on the specified Lanes of the specified continuous Road sequence (= RoadStream) inside the specified s interval based on the parameters of the TrafficGroups. +The following restrictions apply: + +- The PreRunCommonSpawner only spawns on the following `OpenDRIVE`_ lane types: + - Driving + - OnRamp + - OffRamp + - ConnectingRamp + +- If the ScenarioSpawner spawned Scenario Agents (including the Ego agent) before this Spawner is triggered (in the intended order of these Spawners), ranges between the Scenario Agents are invalid for spawning by this Spawner. + The spawn ranges will only be augmented by Scenario Agents on the same Lane. + As such, there are 7 different potential scenarios that may arise in terms of how the valid spawn ranges of the spawner may be impacted: + + #) **Two Scenario Agents on the same Lane** + + One before S-Start position and one after S-End position: + This invalidates the entirety of the spawning range; no agents may be spawned here + + #) **Two Scenario Agents on the same Lane** + + One between S-Start position and S-End position and one either before S-Start or after S-End: + The only valid spawn range is that on the opposite side of the in-specified-range Agent from the outside-specified-range agent + + #) **Two Scenario Agents on the same Lane** + + Both within the specified S-Start and S-End positions + The valid spawn ranges are between S-Start and the first car and between the second car and S-End + + #) **Two Scenario Agents on the same Lane** + + Both outside the specified S-Start and S-End positions on the same side (both before S-Start or both after S-End): + The specified spawn range is entirely valid + + #) **One Scenario Agent on the same Lane** + + Within specified S-Start and S-End positions: + The valid spawn ranges include all but the bounds of the Agent within the specified S-Start and S-End positions + + #) **One Scenario Agent on the same Lane** + + Outside specified S-Start and S-End positions: + The specified spawn range is entirely valid + + #) **No Scenario Agents on the same Lane** + + The specified spawn range is entirely valid + +- If only non-existent lanes on SStart are specified, no spawning will occur + +- If some specified lanes exist and some are non-existent, spawning will occur for the lanes which do exist + +Once the spawning ranges are determined the PreRunSpawner will spawn for each spawning area based on the following logic: + +#) First the agentprofile needs to be determined. If the current spawn position evaluate to a right lane, the pool from which the agentprofile is drafted is extended by all traffic groups which contain the RightLaneOnly flag set to true. + +#) Then the time gap between the new agent and the closest existing agent is sampled. + +#) Afterwards the velocity of the new agent is being sampled under consideration of the homogeneity. + +#) The gap and velocity are used to calculate the distance between the new agent and the next agent in this spawnarea. Here a minimum distance of 5m between agents is required. + +#) A random route is sampled starting at the appropriate road + +#) Based on the distance and the velocity the TTC (2s) conditions are evaluated.If the TTC is critical the spawn velocity is reduced to fulfill the TTC requirements. + +#) As a final step the spawnzone evaluates the spawncoordinates. If they are valid the agent is created, else the spawnzone moves on to the next spawning range. + +.. _components_runtimespawner: + +RuntimeSpawner +~~~~~~~~~~~~~~ + +The RuntimeSpawner (included in library "SpawnerRuntimeCommon_OSI") is responsible for maintaining a populated scenery throughout the simulation runtime. +It acts at each timestep throughout the simulation run and attempts to spawn Common Agents at the specified location(s). +The RuntimeSpawner needs a list of SpawnZones that define where it will spawn agents and a list of weighted :ref:`components_trafficgroups` that defines the type and parameters of the spawned agents. +The SpawnZones have the following parameters: + +.. table:: + :class: tight-table + + ========== ============ ==== ============================================================== + Parameter Type Unit Description + ========== ============ ==== ============================================================== + Roads StringVector The RoadIDs of the Roads on which to spawn Agents + Lanes IntVector The LaneIDs of the Lanes of the Road on which to spawn Agents + S-Position Double m The S position specifying at which point to spawn Agents + ========== ============ ==== ============================================================== + +It is also possible to define the MinimumSeparationBuffer either as fixed parameter of type double or as stochastic distribution: + +.. table:: + :class: tight-table + + ======================= ======================================= ==== ======== ==================================================== + Parameter Type Unit optional Description + ======================= ======================================= ==== ======== ==================================================== + MinimumSeparationBuffer Double (or any stochastic distribution) m yes Required minimum distance on lane between two agents + ======================= ======================================= ==== ======== ==================================================== + +If the MinimumSeparationBuffer isn't defined the default value of 5m is used. + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/ProfilesCatalog.xml + :language: xml + :dedent: 4 + :start-at: <Profile Name="DefaultRuntimeCommon"> + :end-at: </Profile> + +The RuntimeSpawner will spawn based on the following logic: + +- First the agentprofile needs to be determined. If the current spawn position evaluates to a right lane, the pool from which the agentprofile is drafted is extended by all traffic groups which contain the RightLaneOnly flag set to true. +- Then the gap between the spawn time of the new agent and the previously spawned agent is sampled. +- Afterwards the velocity of the new agent is being sampled under consideration of the homogeneity. +- A random route is sampled starting at the appropriate road +- Once the timely gap expires, the spawnpoint evaluate if the TTC (2s) conditions and a minimum required distance between agents (5m) are met. If the TTC is critical the spawn velocity is reduced to fullfill the TTC requriements. If the minimum distance is not fullfilled, the agent will be held back. +- If all requirements were fullfilled the agent is spawned. + +The RuntimeSpawner only spawns on the following `OpenDRIVE`_ lane types: Driving, OnRamp + +.. _components_trafficgroups: + +TrafficGroups +~~~~~~~~~~~~~ + +Both the :ref:`components_prerunspawner` and the :ref:`components_runtimespawner` need one or more TrafficGroup. +These are typically defined in a separate ProfileGroup of type "TrafficGroup" and then reference by the spawner profile. +In this way both spawner can use the same TrafficGroups. + +.. table:: + :class: tight-table + + ============= ============= ==== ======================================================================================================================================================================= + Parameter Type Unit Description + ============= ============= ==== ======================================================================================================================================================================= + AgentProfiles <List> A set of <ListItem>s which define potential AgentProfile values for the Agents spawned in the SpawnArea and the probability at which the TrafficVolume will be selected + Velocity Distribution m/s A stochastic distribution describing the velocity of the spawned Agents + TGap Distribution s A stochastic distribution describing the time gap between spawned Agents + Homogeneity DoubleVector OPTIONAL: A vector describing the velocity increments for left lanes + RightLaneOnly Bool OPTIONAL: A flag determining whether this TrafficGroup can only be applied to the right most lane + ============= ============= ==== ======================================================================================================================================================================= + +.. literalinclude:: /../../../repo/sim/contrib/examples/Common/ProfilesCatalog.xml + :language: xml + :dedent: 4 + :start-at: <Profile Name="LightVehicles"> + :end-at: </Profile> diff --git a/content/html/_sources/user_guide/sim_user_guide/components/vehicle.rst.txt b/content/html/_sources/user_guide/sim_user_guide/components/vehicle.rst.txt index 1d68736305bbf3b6f25338e89347413b97dc17f4..0c821f156bf4c48038ea71cd10f10b621b8ccffd 100644 --- a/content/html/_sources/user_guide/sim_user_guide/components/vehicle.rst.txt +++ b/content/html/_sources/user_guide/sim_user_guide/components/vehicle.rst.txt @@ -1,794 +1,797 @@ -.. - ******************************************************************************* - Copyright (c) 2021 in-tech GmbH - 2022-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - 2023-2024 Volkswagen AG - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _components_vehiclecomponents: - -VehicleComponents ------------------ - -.. _components_aeb: - -AEB -~~~ - -The Autonomous Emergency Braking system checks if a collision is likely to occur in the near future and, if necessary, brakes to avoid the collision. -In each timestep, the system evaluates all objects detected by a Sensor and calculates the time to collision (TTC) for this object based on the perceived movement of the object. -If, for any object, the TTC is lower than the threshold of the component, then the component gets activated. The system deactivates if the TTC is larger than 1,5 times the threshold of the component. - -.. table:: - :class: tight-table - - ====================================== ====== ==== =================================================================================== - Attribute Type Unit Description - ====================================== ====== ==== =================================================================================== - CollisionDetectionLongitudinalBoundary Double m Additional length added the vehicle boundary when checking for collision detection - CollisionDetectionLateralBoundary Double m Additional width added the vehicle boundary when checking for collision detection - TTC Double s Time to collision which is used to trigger AEB - Acceleration Double m/s² Braking acceleration when activated - ====================================== ====== ==== =================================================================================== - -.. code-block:: xml - - <ProfileGroup Type="AEB"> - <Profile Type="AEB" Name="AEB1"> - <Double Key="CollisionDetectionLongitudinalBoundary" Value="4.0"/> - <Double Key="CollisionDetectionLateralBoundary" Value="1.5"/> - <Double Key="TTC" Value="2.0"/> - <Double Key="Acceleration" Value="-2"/> - </Profile> - ... - </ProfileGroup> - -.. _components_trajectoryfollower: - -DynamicsTrajectoryFollower -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. _OpenSCENARIO: https://www.asam.net/standards/detail/openscenario/ - -This module forces agents to drive according to a specific trajectory. The trajectory is defined in the scenario. This module is disabled by default and is activated if a trajectory from `OpenSCENARIO`_ is triggered. -It is always important that the trajectories matches the current scenery file, otherwise the Agent could be placed outside of valid lanes. If the agent gets placed on a invalid position, it will be deleted. - -All attributes are required. - -.. table:: - :class: tight-table - - ===================== ==== ======================================================================================================================= - Attribute Type Description - ===================== ==== ======================================================================================================================= - AutomaticDeactivation Bool If true, the trajectory follower relinquishes control of the vehicle after the final instruction in the TrajectoryFile. - If false, it stops at the last point of the trajectory. - EnforceTrajectory Bool If true, the trajectory follower overrides external input related to the vehicle's travel. - ===================== ==== ======================================================================================================================= - -.. code-block:: xml - - <ProfileGroup Type="DynamicsTrajectoryFollower"> - <Profile Name="BasicTrajectoryFollower"> - <Bool Key="AutomaticDeactivation" Value="true"/> - <Bool Key="EnforceTrajectory" Value="true"/> - </Profile> - </ProfileGroup> - -.. _components_fmuwrapper: - -FMU Wrapper -~~~~~~~~~~~ - -The FMU Wrapper provides a connection to arbitrary FMUs (Functional Mock-up Unit). -An FMU has to be compatible with the FMI 1.0 or the FMI 2.0 specification (Functional Mock-up Interface) and has to be ABI (Application Binary Interface) compatible with the opSimulation binary. - -Additional reading about FMI is provided by the FMI standard website at https://fmi-standard.org/. -For interfacing the FMUs in openPASS, the Modelon FMI Library is used, which is recommended on the FMI standard website. See https://jmodelica.org/. - -**FMU package format** - -FMI defines a packaging format for FMUs. -The used container format is ZIP. -It basically contains - among other parts - the compiled FMU code (as ``*.dll`` or ``*.so``, depending on the platform) and the ``modelDescription.xml``. -Latter provides meta-data about the FMU, i. e. -- Author information -- Model name, identifier and description -- Generation timestamp -- Name and datatype of model variables (inputs and outputs) - - -**Architectural overview** - -The wrapper is instantiated as a component of an agent. -It reads the input variables for the FMU from the simulation and provides it the FMU and reads the output of the FMU and forwards it via signals to other agent components. - -.. image:: _static/images/FmuWrapperOverview.svg - :alt: |op| FMU wrapper architectural overview - -**Framework channels** - -The wrapper can use input and output signals via *Channels* as every other agent component does. -Framework channels (signals) can provide data and can also be written to by the wrapper. -In addition, the wrapper is able to access the \c AgentInterface and \c WorldInterface methods. - -**FMI variables** - -Communication with the FMU happens via FMI variables (inputs and outputs). -The wrapper will read in available variables from ``modelDescription.xml`` in the FMU package. -These variables need to be mapped to variables and signals of openPASS in the VehicleComponentProfile. - -FMI 1.0 supports these standard datatypes: -- bool -- integer -- real -- string - -By using OSMP, three integer values can be used to support full osi messages - -**Configuration** - -Configuration of a particular FMU takes place in ``ProfilesCatalog.xml``. -An example of a static system configuration can be found here "sim/contrib/examples/Configurations/StaticOSMPSensorDataToTrafficUpdateStepper". - -The following parameters are always required for the FmuWrapper. Depending on the FmuHandler additional parameters may be needed. - -.. table:: - :class: tight-table - :name: FmuWrapper basic configuration - - ==================== ======= ======= ================================================================================================================================ - Key Type Default Description - ==================== ======= ======= ================================================================================================================================ - FmuPath string \- Path to FMU file, either absolute or relative to the simulator's configuration directory. - Logging bool true If set to true, FMU initialization and execution task are logged to a text file. - CsvOutput bool true If set to true, FMI outputs are logged to a CSV file. - ==================== ======= ======= ================================================================================================================================ - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/DynamicOSMPSensorDataToTUStepper/ProfilesCatalog.xml - :language: xml - :dedent: 2 - :start-at: <ProfileGroup Type="FMU1"> - :end-at: </ProfileGroup> - -Upon instantiation of the FMU wrapper, it will extract the FMU ZIP file to a temporary directory. -Then the ``modelDescription.xml`` is parsed and the FMU is checked for compatibility. - -If the parameter ``CsvOutput`` is set to `true`, a subfolder "FmuWrapper/Agent<ID>" will be created in the simulator's "results" directory. -"<ID>" is replaced with the agent id. -FMI output data will be logged to a file inside this directory. -The filename consists of the FMU's name and extension "csv". -This output can then be used for visualization in a spreadsheet application or it may be processed in any other way. - -Same goes for parameter ``Logging`` (having "log" as output file extension). - -**Primitive Datatypes** - -The FMU Wrapper allows to link Simulink models or any other FMU to |op|. -It lets the user link any input variables of the FMU to values of the Agent in the simulation and any output values of the FMU to signals, that are forwarded to other |op| components. -These mappings are defined with the following optional parameters. - -.. note:: - - Be careful with the size of integer data types when used in Matlab/Simulink. The FMU integer data type shall always be 32 bit or bigger, e.g. for IDs. - -.. table:: - :class: tight-table - - ===================================== ======= ================================================================================================================== - Key Type Description - ===================================== ======= ================================================================================================================== - Parameter\_\ *varName* any Mapping of a fixed value (bool, integer, double, string) to an FMU input: - - * ``varName`` references an FMI input variable. - * The type of the parameter has to match the FMI variable type. - - Parameter_AssignSpecial\_\ *varName* any Mapping of a specific value of the simulation to an FMU input, assigned only once at FMU initialization: - - * ``varName`` references an FMI input variable. - * The parameter is always of type string. - * The value of this parameter has to be one of the types specified in the `Special simulation values`_ table below, - which will also determine the required type of the FMI variable. - - Input\_\ *varName* string Mapping of a specific value of the simulation to an FMU input: - - * ``varName`` references an FMI input variable. - * The value of this parameter has to be one of the types specified in the `Input simulation values`_ table below. - - Output\_\ *varName* string Mapping of a FMU output to a specific field in a specific signal: - - * ``varName`` references an FMI output variable. - * The value of this parameter has to be one of the types specified in the `Output simulation signals`_ table below. - ===================================== ======= ================================================================================================================== - -The allowed special simulation values are as follows: - -.. table:: - :class: tight-table - :name: Special simulation values - - ========================================= ================== ================================================================================================== - Type FMU Variable Type Calculation - ========================================= ================== ================================================================================================== - RandomSeed Integer The random seed of the current simulation run. - ConfigPath String Config directory supplied to opSimulation (or the corresponding default value) - OutputPath String An output path unique to this FmuWrapper instance. - The path will always refer to a directory below the simulator's current result folder. - This directory is not necessarily created by the FmuWrapper, depending on the setting of - `CsvOutput` and `Logging` parameters (see `FmuWrapper basic configuration`_). - MaxSteering Real The `max_steering` property of an agent's front axle as defined in OpenSCENARIO (catalog). - SteeringRatio Real The steering ratio of the vehicle model. - Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name - ``SteeringRatio`` and the value has to be a valid floating point expression. - NumberOfGears Integer The number of gears of the vehicle model. - Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name - ``NumberOfGears`` and the value has to be a valid integer. - GearRatio\ *N* Real The ratio of the Nth gear. - Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name - ``GearRatioN`` and the value has to be a valid floating point expression. - *N* is allowed to be in the range 1-9. - ========================================= ================== ================================================================================================== - -The allowed inputs (simulation values) are as follows: - -.. table:: - :class: tight-table - :name: Input simulation values - - ========================================= ================== ================================================================================================== - Type FMU Variable Type Calculation - ========================================= ================== ================================================================================================== - VelocityEgo Real Absolute velocity (length of the velocity vector) at reference point - AccelerationEgo Real Longitudinal acceleration at reference point - CentripetalAccelerationEgo Real Centripetal acceleration at reference point - SteeringWheelEgo Real Angle of the steering wheel (in radian) - AccelerationPedalPositionEgo Real Position of the acceleration pedal in the interval [0, 1] - BrakePedalPositionEgo Real Position of the brake pedal in the interval [0, 1] - DistanceRefToFrontEdgeEgo Real Distance between the reference point and the front of the agent (static) - PositionXEgo Real X position of the reference point - PositionYEgo Real Y position of the reference point - YawEgo Real Yaw of the reference point - LaneEgo Integer Lane id of the front center on the route (0, if off route) - PositionSEgo Real S position of the reference point on the route (0, if off route) - PositionTEgo Real T position of the reference point on the route (0, if off route) - ExistenceFront Boolean true, if there is a object in front on the own lane (any range), false otherwise - PositionXFront Real X position of front object reference point (0, if no front object) - PositionYFront Real Y position of front object reference point (0, if no front object) - YawFront Real Yaw of front object reference point (0, if no front object) - PositionSFront Real S position of front object reference point on ego route (0, if no front object) - PositionTFront Real T position of front object reference point on ego route (0, if no front object) - RelativeDistanceFront Real Net distance to front object along route (0, if no front object) - WidthFront Real Width of front object (0, if no front object) - LengthFront Real Length of front object (0, if no front object) - DistanceRefToFrontEdgeFront Real Distance between the reference point and the front of the front object (0, if no front object) - VelocityFront Real Absolute velocity of front object at reference point (0, if no front object) - LaneFront Integer Lane id of the reference point of the front object on the ego route (0, if no front object) - ExistenceFrontFront Boolean true, if there are at least two objects in front on the own lane (any range), false otherwise - PositionXFrontFront Real X position of second front object reference point (0, if no second front object) - PositionYFrontFront Real Y position of second front object reference point (0, if no second front object) - RelativeDistanceFrontFront Real Net distance to second front object reference point (0, if no second front object) - VelocityFrontFront Real Absolute velocity of second front object reference point (0, if no second front object) - LaneFrontFront Integer Lane id of the reference point of second front object reference point (0, if no second front object) - LaneCountLeft Integer Number of lanes to the left of front center of type Driving, Exit, Entry, OnRamp or OffRamp - LaneCountRight Integer Number of lanes to the right of front center of type Driving, Exit, Entry, OnRamp or OffRamp - SpeedLimit\_\ *X* Real Speed limit in effect in distance *X* meters from front center (999, if no speed limit) - RoadCurvature\_\ *X* Real Road curvature in distance *X* meters from front center - ========================================= ================== ================================================================================================== - -* **reference point**: Center of the rear axle -* **front center**: Center of the front of the bounding box of the object - -If the FmuWrapper is linked to at least one sensor with InputId "Camera", the following additional inputs are available. -The objects seen by this sensor(s) are sorted by distance from the agent and accessed by indices starting from 0. -For each object the values listed in the following table are available where *X* is the index of the object (between 0 and 9). -If there are less objects than *X*, a default value is set (-1 for the Id, 0 for the other values). -Only the list of objects is taken from the sensor. -The values are then calculated by the FmuWrapper (not from the SensorData). - -.. table:: - :class: tight-table - - ============================================ ================== ======================================================================================================== - Type FMU Variable Type Calculation - ============================================ ================== ======================================================================================================== - SensorFusionObjectId\_\ *X* Integer Id of the object - SensorFusionNumberOfDetectingSensors\_\ *X* Integer Number of sensors detecting the object - SensorFusionRelativeS\_\ *X* Real Distance between reference points along route (NaN, if object not on route) - SensorFusionRelativeNetS\_\ *X* Real Net distance along route (NaN, if object not on route) - SensorFusionRelativeT\_\ *X* Real Lateral obstruction for front center (NaN, if object not on route) (see :ref:`world_getobstruction`) - SensorFusionRelativeX\_\ *X* Real Relative distance between reference points in x in world coordinates - SensorFusionRelativeY\_\ *X* Real Relative distance between reference points in y in world coordinates - SensorFusionRelativeNetLeft\_\ *X* Real Lateral obstruction for leftmost point (NaN, if object not on route) - SensorFusionRelativeNetRight\_\ *X* Real Lateral obstruction for rightmost point (NaN, if object not on route) - SensorFusionRelativeNetX\_\ *X* Real Net distance between bounding boxes in x in world coordinates - SensorFusionRelativeNetY\_\ *X* Real Net distance between bounding boxes in y in world coordinates - SensorFusionLane\_\ *X* Integer Lane of front center - SensorFusionVelocity\_\ *X* Real Absolute velocity at reference point - SensorFusionVelocityX\_\ *X* Real Velocity in x at reference point in world coordinates - SensorFusionVelocityY\_\ *X* Real Velocity in y at reference point in world coordinates - SensorFusionYaw\_\ *X* Real Yaw in world coordinates - ============================================ ================== ======================================================================================================== - -The FMU wrapper can output one or more of these signals: -AccelerationSignal, LongitudinalSignal, SteeringSignal and DynamicsSignal - -The name of the signal field has to be specified after the signal name. -This means the output type is one of the following: - -.. table:: - :class: tight-table - :name: Output simulation signals - - ====================================== =================== ========================================= - Type FMU Variable Type Enum Values - ====================================== =================== ========================================= - ComponentState Enum Undefined, Disabled, Armed, Acting - AccelerationSignal_Acceleration Real - LongitudinalSignal_AccPedalPos Real - LongitudinalSignal_BrakePedalPos Real - LongitudinalSignal_Gear Int - SteeringSignal_SteeringWheelAngle Real - DynamicsSignal_Acceleration Real - DynamicsSignal_Velocity Real - DynamicsSignal_PositionX Real - DynamicsSignal_PositionY Real - DynamicsSignal_Yaw Real - DynamicsSignal_YawRate Real - DynamicsSignal_YawAcceleration Real - DynamicsSignal_SteeringWheelAngle Real - DynamicsSignal_CentripetalAcceleration Real - DynamicsSignal_TravelDistance Real - CompCtrlSignal_MovementDomain Enum Undefined, Lateral, Longitudinal, Both - CompCtrlSignal_WarningActivity Bool - CompCtrlSignal_WarningLevel Enum INFO, WARNING - CompCtrlSignal_WarningType Enum OPTIC, ACOUSTIC, HAPTIC - CompCtrlSignal_WarningIntensity Enum LOW, MEDIUM, HIGH - CompCtrlSignal_WarningDirection Enum - ====================================== =================== ========================================= - -If one of these fields of a signal (except ComponentState) is mapped to an FMU variable, all fields of this signal have to be mapped. -If the ComponentState is mapped to a FMU variable, it is used for all signals, otherwise it defaults to Acting. - -**OSI Data** - -OSMP (OsiSensorModelPackaging) is a package layer specification for the Open Simulation Interface (OSI). -It allows to pass input to the FMU as OSI messages as well as receive output as OSI message. -For more information on OSMP see https://github.com/OpenSimulationInterface/osi-sensor-model-packaging. - -The FmuHandler has the following additional (optional) parameters: - -.. table:: - :class: tight-table - - ========================================================= ==================== =============================================================================================================================================== - Key Type Description - ========================================================= ==================== =============================================================================================================================================== - Init\_\ *var_name* string *var_name* references an FMU variable (as defined in FMU's modelDescription.xml) to which a specific OSI message is sent during initialization Allowed values: `GroundTruth` - Input\_\ *var_name* string *var_name* references an FMU variable (as defined in FMU's modelDescription.xml) to which a specific OSI message is sent Allowed values: `SensorView`, `SensorViewConfig`, `SensorData`, `TrafficCommand` - Output\_\ *var_name* string *var_name* references an FMU variable (as defined in FMU's modelDescription.xml) from which a specific OSI message is received Allowed values: `SensorViewConfigRequest`, `SensorData`, `TrafficUpdate` - Parameter\_\ *var_name* any The value of the parameter is assigned to the FMU variable *var_name* - Parameter\_\ *transformation*\ [*mapping* ]\_\ *name* string/string/any\* Same as Parameter\_\ *name* but with an preceding *transformation* according to a *mapping*. |br| Currently, only mappings between the same types are supported. |br| \*;When using `TransformList` as *transformation*, the type of the data is expected to be a string and the string must be a comma separated list of values. |br| |br| Allowed values: |br| *transformation*: `Transform`, `TransformList` |br| *mapping*: `ScenarioName>Id` |br| |br| Example: `Parameter_TransformList[ScenarioName>Id]\_\ *name*` - WriteJson\_\ *var_name* bool If true the osi message specified by *var_name* is written to a json file - WriteTrace\_\ *var_name* bool If true the osi message specified by *var_name* is written to the trace file - EnforceDoubleBuffering bool If true the wrapper will throw an error if FMU doesn't use double buffering. Defaults to false. - ========================================================= ==================== =============================================================================================================================================== - -The type of OSI messages the FmuHandler sends and receives is defined by its parameters. Only messages for which an FMU variable is given in the configuration are sent/received. -An additional parameter defines whether the message should be logged as JSON file for every agent and every timestep (see table above). - -Currently these messages are supported: - -* SensorView: SensorView generated from the GroundTruth with this agent is host vehicle. -* SensorViewConfig, SensorViewConfigRequest: Configuration of a sensor according to OSMP. -* TrafficCommand: Trajectory from `OpenSCENARIO`_, that will be converted into a TrafficCommand. -* SensorData: Output of a sensor. Can be input and/or output of an FMU. Received SensorData is forwarded to other components as SensorDataSignal. -* TrafficUpdate: Will be converted to a DynamicsSignal, AccelerationSignal, SteeringSignal or LongitudinalSignal. If the update is empty, the signal will have ComponentState::Disabled. If it is only partially filled, the missing values for the DynamicsSignal will be set to the current state. -* GroundTruth: Will be used as groundtruth information for everything that exists in the simulation world. - -**FmuVariables** - -FmuVariables can have different variability and causality. - -* There are the following causalities: Input, Output, Parameter and CalculatedParameter -* Input or outputs can have the variability constant, fixed, discrete or continuous -* Parameter or CalculatedParameter can have the variability constant, fixed or tunable - -In openPASS we have the initialization phase, which is only called once. In that phase first readValues is called. -Then parameter values are synchronized between different config files. The following priority is used for the synchronization: - -modelDescription < systemConfig < SSP config. - -Afterwards still in the initialization phase writeValues is called. -During the whole simulation in openPASS all the trigger functions are called each time step. -For the FMU component we call WriteValues before trigger and readValues afterwards. -For the first two time steps we have the following calls for read- and writeValues: - - 1) ReadValues (Init) - 2) WriteValues (Init) - 3) WriteValues - 4) Trigger - 5) ReadValues - 6) WriteValues - 7) Trigger - 8) ReadValues - -Depending on them, FmuVariables are written/read to/from the FMU on different occasions, which is shown in the following table. - - -.. list-table:: Write- and ReadValues depending on variability and causality - :widths: 5 5 5 5 5 - :header-rows: 1 - :stub-columns: 1 - - * - - - ReadValues - Init - - WriteValues - Init - - WriteValues - Trigger - - ReadValues - Trigger - * - Input - fixed - - x - - x - - - - - * - Input - discrete or continuous - - x - - x - - x - - - * - Output - fixed - - x - - - - - - - * - Output - discrete or continuous - - x - - - - - - x - * - Parameter - fixed - - x - - x - - - - - * - Parameter - tunable - - x - - x - - x - - - * - CalculatedParameter - fixed - - x - - - - - - - * - CalculatedParameter - tunable - - x - - - - - - x - -.. note:: - For alle kinds of Input, Output, Parameter and CalculatedParameter there exists the variablity "constant". - All constant values are only read into openPASS once at the initialization phase. - Never will these values be written onto the FMU. - -.. _components_geometric2d: - -SensorGeometric2D -~~~~~~~~~~~~~~~~~ - -This sensor is selected, when a sensor is parameterized as ProfileGroup "Geometric2D". - -.. table:: - :class: tight-table - - =============================== ====== ==== ================================================================================================== - Parameter Type Unit Description - =============================== ====== ==== ================================================================================================== - DetectionRange Double m Detection range - EnableVisualObstruction Bool Activates 2D sensor obstruction calculation - FailureProbability Double Probability object is not detected although it is visible - Latency Double s Delay the sensor output - DetectionDelayTime Double s Time an object needs to be in detection range before it is detected (optional) - MaxDropOutTime Double s Time after which delay for undetected object starts anew (optional) - OpeningAngleH Double rad Horizontal opening angle - RequiredPercentageOfVisibleArea Double Required percentage of an object within the sensor cone to trigger a detection - =============================== ====== ==== ================================================================================================== - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/ADAS_AEB_PreventingCollisionWithObstacle/ProfilesCatalog.xml - :language: xml - :dedent: 2 - :start-at: <ProfileGroup Type="Geometric2D"> - :end-at: </ProfileGroup> - -.. note:: - - Sensors also need a mounting position, defined w.r.t. the coordinate system of the vehicle (center of rear axis). - See also :ref:`profilescatalog_systemprofiles`. - -ReceiverCar2X -~~~~~~~~~~~~~ - -This type is selected, when a sensor is parameterized as ProfileGroup "ReceiverCar2X". - -.. table:: - :class: tight-table - - ================== ====== ==== =========================================================================================== - Parameter Type Unit Description - ================== ====== ==== =========================================================================================== - FailureProbability Double Probability object is not detected although it is visible - Latency Double s Sensor latency - Sensitivity Double W/m² Sensitivity of the sensor - ================== ====== ==== =========================================================================================== - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/ADAS_Car2X/ProfilesCatalog.xml - :language: xml - :dedent: 2 - :start-at: <ProfileGroup Type="ReceiverCar2X"> - :end-at: </ProfileGroup> - -The moving object is detected if the received SignalStrength is greater than the Sensitivity of the ReceiverCar2X . - -The received SignalStrength is calculated by :math:`ss_{\text{received}} = \frac {ss_{\text{sender}}} {4 \cdot pi \cdot d \cdot d}`, where the symbols meanings are: - -============================ =================================================== -Symbol Description -============================ =================================================== -:math:`ss_{\text{received}}` Received strength of the signal [1/m²] -:math:`ss_{\text{sender}}` Sent strength of the signal [1/m²] -:math:`d` Distance between the receiver agent and sender [m] -============================ =================================================== - -.. note:: - - Sensors also need a mounting position, defined w.r.t. the coordinate system of the vehicle (center of rear axis). - See also :ref:`profilescatalog_systemprofiles`. - -SSP -~~~ - -A SSP can be added as vehicle component. It's a blackbox of one or multiple FMUs. - -.. table:: - :class: tight-table - - =============================== ====== ==== ================================================================================================== - Parameter Type Unit Description - =============================== ====== ==== ================================================================================================== - SspPath String path config relative path to ssp archive - =============================== ====== ==== ================================================================================================== - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/DynamicSSPStepper/ProfilesCatalog.xml - :language: xml - :dedent: 2 - :start-at: <ProfileGroup Type="SSP1"> - :end-at: </ProfileGroup> - -.. note:: - - To add the ssp component to a system profile do the following: - See also :ref:`profilescatalog_systemprofiles`. - -.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/DynamicSSPStepper/ProfilesCatalog.xml - :language: xml - :dedent: 2 - :start-at: <SystemProfile Name="EgoVehicle - :end-at: </SystemProfiles> - -.. |br| raw:: html - - <br> - -VehicleDynamics -~~~~~~~~~~~~~~~ - -Components of this group can be used to model the vehicle dynamics. The vehicle dynamics model has a modular design. If necessary, the individual components can be replaced by the user with their own models. The vehicle dynamics model consists of six components listed below: - - -.. table:: - :class: tight-table - - ================================ ================================================================================================================================================================== - Component Short Description - ================================ ================================================================================================================================================================== - :ref:`components_steeringsystem` The steering model transfers the driver's input into the vehicle's wheel angle - :ref:`components_powertrain` The powertrain model converts the accelerator pedal position into wheel drive torques, under consideration of the selected gear - :ref:`components_brakesystem` The brake model converts the brake pedal position into wheel brake torques - :ref:`components_tiremodel` The tire model converts the predetermined drive and braking torques of the tires into tire longitudinal and lateral forces, under consideration of the wheel angles - :ref:`components_motionmodel` The motion model calculates the translational and rotational vehicle movement with the calculated tire forces - :ref:`components_chassismodel` The chassis model determines the dynamic wheel loads via the vehicle's longitudinal and lateral acceleration - ================================ ================================================================================================================================================================== - - -The following figure gives an overview of the driving dynamics components and their signals: - - -.. image:: _static/images/VehicleDynamicsOverview.svg - :alt: |op| Vehicle dynamics overview - - - -.. _components_steeringsystem: - -ActionSteeringSystem -^^^^^^^^^^^^^^^^^^^^ - -The steering model obtains the "SteeringRatio" property from the :ref:`scenario_vehiclemodels` and uses it to calculate the steering angle of the front wheels. -Both wheels are turned at the same angle. The following parameter can be used to set a static toe and the steering elasticity: - -.. table:: - :class: tight-table - - ========== ============ ====== ========================================================================================================================= - Attribute Type Unit Description - ========== ============ ====== ========================================================================================================================= - StaticToe VectorDouble rad Static toe of the wheels (A positive value corresponds to a toe-in; one static toe per axis) - Elasticity VectorDouble rad/Nm Steering Elasticity (one elasticity per axis) - Caster VectorDouble m Overall Caster of steering system - ========== ============ ====== ========================================================================================================================= - -.. _components_powertrain: - -ActionPowertrain -^^^^^^^^^^^^^^^^ - -The powertrain model contains an engine model and a gear model. The type of the powertrain can be set using the following parameters: - -.. table:: - :class: tight-table - - ============== ====== ==== ============================================================================================================================= - Attribute Type Unit Description - ============== ====== ==== ============================================================================================================================= - TypeDrivetrain String Type of drivetrain; A selection can be made between front-wheel drive (FWD), rear-wheel drive (RWD) and all-wheel drive (AWD) - FrontRatioAWD Double Distribution of the drive torque to the front axle in the case of all-wheel drive (AWD); Range 0-1 - ============== ====== ==== ============================================================================================================================= - -The wheel speed is converted into an engine speed [Hz] according to the axle ratio and the transmission ratio of the selected gear. -The axle ratio and gear ratios are obtained from the :ref:`scenario_vehiclemodels` ("AxleRatio" & "GearRatio"). The average value of the powered wheels is used for the determination of the engine speed. - -.. math:: - \omega_{engine} = \omega_{wheels,avg} \cdot i_{axle} \cdot i_{gear,selected} - -The maximum possible engine torque [Nm] is limited by the engine power [W] or the maximum engine torque [Nm]. -The engine power and the maximum engine torque are obtained from the :ref:`scenario_vehiclemodels` ("MaximumEnginePower" & "MaximumEngineTorque"). - -.. math:: - M_{engine,max,current} = \begin{cases} - \frac{P_{engine,max}}{\omega_{engine}} & \text{ if } \frac{P_{engine,max}}{\omega_{engine}} < M_{engine,max} \\ - M_{engine,max} & \text{ if } \frac{P_{engine,max}}{\omega_{engine}} >= M_{engine,max} - \end{cases} - -When 98% of the maximum speed of the motor is reached ("MaximumEngineSpeed" in the :ref:`scenario_vehiclemodels`), the engine torque is linearly reduced to 0. - -The maximum engine torque is scaled via the accelerator pedal position (input). This value is calculated back to the total wheel drive torque via the gear ratio. - -.. math:: - M_{wheels,current} = M_{engine,max,current} \cdot position_{accelerator pedal} \cdot i_{axle} \cdot i_{gear,selected} - -The wheel total drive torque is evenly distributed to the wheels of an axle according to the definition of the drive type. -With all-wheel drive, the entire wheel drive torque is distributed statically over the defined ratio. - - -.. _components_brakesystem: - -ActionBrakeSystem -^^^^^^^^^^^^^^^^^ - -The brake model is a linearized model. The brake pedal position is used as input. As output, the model returns the braking torques of the wheels as a vector. -The model considers a response time [ms] and linear factors [m/s³] for the increase and decrease of the braking force.The distribution of braking force between the front and rear axles can be defined statically. - -.. table:: - :class: tight-table - - ============================ ====== ==== ============================================================================================================== - Attribute Type Unit Description - ============================ ====== ==== ============================================================================================================== - FrontAxlePercentage Double Distribution of the brake torque to the front axle in the case of all-wheel drive (AWD); Range 0-1 - BrakeDecelerationInclineRate Double m/s³ Linear Rate of braking force increase - BrakeDecelerationDeclineRate Double m/s³ Linear Rate of braking force decrease - BrakeResponseTimeMs Double ms Brake response time - ============================ ====== ==== ============================================================================================================== - - -The maximum braking force of the system is determined from the maximum possible deceleration and the mass of the vehicle and is scaled by the brake pedal position (Input). -The maximum possible deceleration and the vehicle mass are obtained from the :ref:`scenario_vehiclemodels` ("maxDeceleration" & "mass"). - -.. math:: - F_{brake,max} = a_{deceleration,max} \cdot m_{vehicle} \cdot position_{brake pedal} - -When the brake is applied, a deceleration is calculated after the response time has elapsed. Then the braking force is built up linearly until the maximum or requested braking force has been reached. - -.. math:: - F_{brake,current} = rate_{incline} \cdot (t_{brake} - t_{response}) - -When the brake is released, the braking force is dissipated with the decline rate until it has dropped to zero. After that, the response time builds up again. -The braking force is divided among the axles according to the parameter "FrontAxlePercentage". Another input allows you to request a prefill that reduces the response time without braking - - -.. _components_chassismodel: - -DynamicsChassis -^^^^^^^^^^^^^^^ - -The chassis model determines the vertical forces of the four wheels from the longitudinal and lateral acceleration of the vehicle. Constant spring and damper rates are taken into account, which can be defined by the following parameters per axis: - -.. table:: - :class: tight-table - - ============================ ============ ==== ============================================================================================================== - Attribute Type Unit Description - ============================ ============ ==== ============================================================================================================== - SpringCoefficient VectorDouble N/m Constant spring coefficient for each axis - DamperCoefficient VectorDouble Ns/m Constant damper coefficient for each axis - ============================ ============ ==== ============================================================================================================== - -.. _components_tiremodel: - -DynamicsTireModel -^^^^^^^^^^^^^^^^^ - -The tire model is freely configurable and includes a degressive behaviour. The tire forces are modeled according to Rill using the TMEasy model. The following parameters can be set for the tire model per axis : - -.. table:: - :class: tight-table - - ==================== ============ ==== ============================================================================================================== - Attribute Type Unit Description - ==================== ============ ==== ============================================================================================================== - MuTireMaxXFRef VectorDouble Normalized scaling factor for maximum longitudinal force at reference vertical force - MuTireMaxX2FRef VectorDouble Normalized scaling factor for maximum longitudinal force at double reference vertical force - MuTireSlideXFRef VectorDouble Normalized scaling factor for sliding longitudinal force at reference vertical force - MuTireSlideX2FRef VectorDouble Normalized scaling factor for sliding longitudinal force at double reference vertical force - SlipTireMaxXFRef VectorDouble Longitudinal slip at maximum longitudinal force at reference vertical force - SlipTireMaxX2FRef VectorDouble Longitudinal slip at maximum longitudinal force at double reference vertical force - SlipTireSlideXFRef VectorDouble Longitudinal slip at sliding longitudinal force at reference vertical force - SlipTireSlideX2FRef VectorDouble Longitudinal slip at sliding longitudinal force at double reference vertical force - F0pXFRef VectorDouble N Initial slope of longitudinal force at reference force - F0pX2FRef VectorDouble N Initial slope of longitudinal force at double reference force - MuTireMaxYFRef VectorDouble Normalized scaling factor for maximum lateral force at reference vertical force - MuTireMaxY2FRef VectorDouble Normalized scaling factor for maximum lateral force at double reference vertical force - MuTireSlideYFRef VectorDouble Normalized scaling factor for sliding lateral force at reference vertical force - MuTireSlideY2FRef VectorDouble Normalized scaling factor for sliding lateral force at double reference vertical force - SlipTireMaxYFRef VectorDouble Lateral slip at maximum lateral force at reference vertical force - SlipTireMaxY2FRef VectorDouble Lateral slip at maximum lateral force at double reference vertical force - SlipTireSlideYFRef VectorDouble Lateral slip at sliding lateral force at reference vertical force - SlipTireSlideY2FRef VectorDouble Lateral slip at sliding lateral force at double reference vertical force - F0pYFRef VectorDouble N Initial slope of lateral force at reference force - F0pY2FRef VectorDouble N Initial slope of lateral force at double reference force - FRef VectorDouble N Vertical reference force for the tire parameters - FRefNormalized VectorBool Should the reference force be scaled with the static vertical tire force? - Inertia VectorDouble kgm² Inertia of tire - PneumaticTrail VectorDouble m Pneumatic trail of tire - ==================== ============ ==== ============================================================================================================== - -The normalized factors refer to the reference vertical force or to the double reference vertical force -The input variables used by the model are tire drive and braking torques as well as the wheel angles and vertical wheel forces. All data is provided as vectors. -The model determines tire forces in the longitudinal and lateral directions as well as the wheel self aligning torques. The wheel self aligning torque is formed from the product of the tire side force and the pneumatic trail. -A linear interpolation is performed between the values for the reference force and the double reference force. If no degressive tire behavior is desired, the parameters for the double reference force must be set identically to the values for the reference force. - -All forces are scaled with the coefficient of friction from the :ref:`scenario_vehiclemodels` ("FrictionCoefficient"). - -All further information about the model can be found in the following sources: - -https://www.tmeasy.de/ - -Rill, Georg. (2013). TMeasy -- A Handling Tire Model based on a three-dimensional slip approach. - - -.. _components_motionmodel: - -DynamicsMotionModel -^^^^^^^^^^^^^^^^^^^ -The motion model converts the tire forces (input) into a translational and rotational movement of the vehicle. The air resistance of the vehicle is taken into account. For the dynamic calculation, the center of gravity position is taken from the :ref:`scenario_vehiclemodels` ("XPositionCOG","YPositionCOG"), -which indicates the distance of the center of gravity to the center of the rear axle. If this data is not given, the center of gravity is positioned on half wheelbase. For air resistance, the properties "AirDragCoefficient" & "FrontSurface" from the :ref:`scenario_vehiclemodels` are used. - -For the equations of motion, see relevant vehicle dynamics books such as: - -Kücükay, Ferit (2022), "Grundlagen der Fahrzeugtechnik", page 1067 ff +.. + ******************************************************************************* + Copyright (c) 2021 in-tech GmbH + 2022-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + 2023-2024 Volkswagen AG + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _components_vehiclecomponents: + +VehicleComponents +----------------- + +.. _components_aeb: + +AEB +~~~ + +The Autonomous Emergency Braking system checks if a collision is likely to occur in the near future and, if necessary, brakes to avoid the collision. +In each timestep, the system evaluates all objects detected by a Sensor and calculates the time to collision (TTC) for this object based on the perceived movement of the object. +If, for any object, the TTC is lower than the threshold of the component, then the component gets activated. The system deactivates if the TTC is larger than 1,5 times the threshold of the component. + +.. table:: + :class: tight-table + + ====================================== ====== ==== =================================================================================== + Attribute Type Unit Description + ====================================== ====== ==== =================================================================================== + CollisionDetectionLongitudinalBoundary Double m Additional length added the vehicle boundary when checking for collision detection + CollisionDetectionLateralBoundary Double m Additional width added the vehicle boundary when checking for collision detection + TTC Double s Time to collision which is used to trigger AEB + Acceleration Double m/s² Braking acceleration when activated + ====================================== ====== ==== =================================================================================== + +.. code-block:: xml + + <ProfileGroup Type="AEB"> + <Profile Type="AEB" Name="AEB1"> + <Double Key="CollisionDetectionLongitudinalBoundary" Value="4.0"/> + <Double Key="CollisionDetectionLateralBoundary" Value="1.5"/> + <Double Key="TTC" Value="2.0"/> + <Double Key="Acceleration" Value="-2"/> + </Profile> + ... + </ProfileGroup> + +.. _components_trajectoryfollower: + +DynamicsTrajectoryFollower +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. _OpenSCENARIO: https://www.asam.net/standards/detail/openscenario/ + +This module forces agents to drive according to a specific trajectory. The trajectory is defined in the scenario. This module is disabled by default and is activated if a trajectory from `OpenSCENARIO`_ is triggered. +It is always important that the trajectories matches the current scenery file, otherwise the Agent could be placed outside of valid lanes. If the agent gets placed on a invalid position, it will be deleted. + +All attributes are required. + +.. table:: + :class: tight-table + + ===================== ==== ======================================================================================================================= + Attribute Type Description + ===================== ==== ======================================================================================================================= + AutomaticDeactivation Bool If true, the trajectory follower relinquishes control of the vehicle after the final instruction in the TrajectoryFile. + If false, it stops at the last point of the trajectory. + EnforceTrajectory Bool If true, the trajectory follower overrides external input related to the vehicle's travel. + ===================== ==== ======================================================================================================================= + +.. code-block:: xml + + <ProfileGroup Type="DynamicsTrajectoryFollower"> + <Profile Name="BasicTrajectoryFollower"> + <Bool Key="AutomaticDeactivation" Value="true"/> + <Bool Key="EnforceTrajectory" Value="true"/> + </Profile> + </ProfileGroup> + +.. _components_fmuwrapper: + +FMU Wrapper +~~~~~~~~~~~ + +The FMU Wrapper provides a connection to arbitrary FMUs (Functional Mock-up Unit). +An FMU has to be compatible with the FMI 1.0 or the FMI 2.0 specification (Functional Mock-up Interface) and has to be ABI (Application Binary Interface) compatible with the opSimulation binary. + +Additional reading about FMI is provided by the FMI standard website at https://fmi-standard.org/. +For interfacing the FMUs in openPASS, the Modelon FMI Library is used, which is recommended on the FMI standard website. See https://jmodelica.org/. + +**FMU package format** + +FMI defines a packaging format for FMUs. +The used container format is ZIP. +It basically contains - among other parts - the compiled FMU code (as ``*.dll`` or ``*.so``, depending on the platform) and the ``modelDescription.xml``. +Latter provides meta-data about the FMU, i. e. +- Author information +- Model name, identifier and description +- Generation timestamp +- Name and datatype of model variables (inputs and outputs) + + +**Architectural overview** + +The wrapper is instantiated as a component of an agent. +It reads the input variables for the FMU from the simulation and provides it the FMU and reads the output of the FMU and forwards it via signals to other agent components. + +.. image:: _static/images/FmuWrapperOverview.svg + :alt: |op| FMU wrapper architectural overview + +**Framework channels** + +The wrapper can use input and output signals via *Channels* as every other agent component does. +Framework channels (signals) can provide data and can also be written to by the wrapper. +In addition, the wrapper is able to access the \c AgentInterface and \c WorldInterface methods. + +**FMI variables** + +Communication with the FMU happens via FMI variables (inputs and outputs). +The wrapper will read in available variables from ``modelDescription.xml`` in the FMU package. +These variables need to be mapped to variables and signals of openPASS in the VehicleComponentProfile. + +FMI 1.0 supports these standard datatypes: +- bool +- integer +- real +- string + +By using OSMP, three integer values can be used to support full osi messages + +**Configuration** + +Configuration of a particular FMU takes place in ``ProfilesCatalog.xml``. +An example of a static system configuration can be found here "sim/contrib/examples/Configurations/StaticOSMPSensorDataToTrafficUpdateStepper". + +The following parameters are always required for the FmuWrapper. Depending on the FmuHandler additional parameters may be needed. + +.. table:: + :class: tight-table + :name: FmuWrapper basic configuration + + ==================== ======= ======= ================================================================================================================================ + Key Type Default Description + ==================== ======= ======= ================================================================================================================================ + FmuPath string \- Path to FMU file, either absolute or relative to the simulator's configuration directory. + Logging bool true If set to true, FMU initialization and execution task are logged to a text file. + CsvOutput bool true If set to true, FMI outputs are logged to a CSV file. + ==================== ======= ======= ================================================================================================================================ + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/DynamicOSMPSensorDataToTUStepper/ProfilesCatalog.xml + :language: xml + :dedent: 2 + :start-at: <ProfileGroup Type="FMU1"> + :end-at: </ProfileGroup> + +Upon instantiation of the FMU wrapper, it will extract the FMU ZIP file to a temporary directory. +Then the ``modelDescription.xml`` is parsed and the FMU is checked for compatibility. + +If the parameter ``CsvOutput`` is set to `true`, a subfolder "FmuWrapper/Agent<ID>" will be created in the simulator's "results" directory. +"<ID>" is replaced with the agent id. +FMI output data will be logged to a file inside this directory. +The filename consists of the FMU's name and extension "csv". +This output can then be used for visualization in a spreadsheet application or it may be processed in any other way. + +Same goes for parameter ``Logging`` (having "log" as output file extension). + +**Primitive Datatypes** + +The FMU Wrapper allows to link Simulink models or any other FMU to |op|. +It lets the user link any input variables of the FMU to values of the Agent in the simulation and any output values of the FMU to signals, that are forwarded to other |op| components. +These mappings are defined with the following optional parameters. + +.. note:: + + Be careful with the size of integer data types when used in Matlab/Simulink. The FMU integer data type shall always be 32 bit or bigger, e.g. for IDs. + +.. table:: + :class: tight-table + + ===================================== ======= ================================================================================================================== + Key Type Description + ===================================== ======= ================================================================================================================== + Parameter\_\ *varName* any Mapping of a fixed value (bool, integer, double, string) to an FMU input: + + * ``varName`` references an FMI input variable. + * The type of the parameter has to match the FMI variable type. + + Parameter_AssignSpecial\_\ *varName* any Mapping of a specific value of the simulation to an FMU input, assigned only once at FMU initialization: + + * ``varName`` references an FMI input variable. + * The parameter is always of type string. + * The value of this parameter has to be one of the types specified in the `Special simulation values`_ table below, + which will also determine the required type of the FMI variable. + + Input\_\ *varName* string Mapping of a specific value of the simulation to an FMU input: + + * ``varName`` references an FMI input variable. + * The value of this parameter has to be one of the types specified in the `Input simulation values`_ table below. + + Output\_\ *varName* string Mapping of a FMU output to a specific field in a specific signal: + + * ``varName`` references an FMI output variable. + * The value of this parameter has to be one of the types specified in the `Output simulation signals`_ table below. + ===================================== ======= ================================================================================================================== + +The allowed special simulation values are as follows: + +.. table:: + :class: tight-table + :name: Special simulation values + + ========================================= ================== ================================================================================================== + Type FMU Variable Type Calculation + ========================================= ================== ================================================================================================== + RandomSeed Integer The random seed of the current simulation run. + ConfigPath String Config directory supplied to opSimulation (or the corresponding default value) + OutputPath String An output path unique to this FmuWrapper instance. + The path will always refer to a directory below the simulator's current result folder. + This directory is not necessarily created by the FmuWrapper, depending on the setting of + `CsvOutput` and `Logging` parameters (see `FmuWrapper basic configuration`_). + MaxSteering Real The `max_steering` property of an agent's front axle as defined in OpenSCENARIO (catalog). + AxleRatio Real The axle ratio of the vehicle model. + Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name + ``AxleRatio`` and the value has to be a valid floating point expression. + SteeringRatio Real The steering ratio of the vehicle model. + Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name + ``SteeringRatio`` and the value has to be a valid floating point expression. + NumberOfGears Integer The number of gears of the vehicle model. + Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name + ``NumberOfGears`` and the value has to be a valid integer. + GearRatio\ *N* Real The ratio of the Nth gear. + Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name + ``GearRatioN`` and the value has to be a valid floating point expression. + *N* is allowed to be in the range 1-9. + ========================================= ================== ================================================================================================== + +The allowed inputs (simulation values) are as follows: + +.. table:: + :class: tight-table + :name: Input simulation values + + ========================================= ================== ================================================================================================== + Type FMU Variable Type Calculation + ========================================= ================== ================================================================================================== + VelocityEgo Real Absolute velocity (length of the velocity vector) at reference point + AccelerationEgo Real Longitudinal acceleration at reference point + CentripetalAccelerationEgo Real Centripetal acceleration at reference point + SteeringWheelEgo Real Angle of the steering wheel (in radian) + AccelerationPedalPositionEgo Real Position of the acceleration pedal in the interval [0, 1] + BrakePedalPositionEgo Real Position of the brake pedal in the interval [0, 1] + DistanceRefToFrontEdgeEgo Real Distance between the reference point and the front of the agent (static) + PositionXEgo Real X position of the reference point + PositionYEgo Real Y position of the reference point + YawEgo Real Yaw of the reference point + LaneEgo Integer Lane id of the front center on the route (0, if off route) + PositionSEgo Real S position of the reference point on the route (0, if off route) + PositionTEgo Real T position of the reference point on the route (0, if off route) + ExistenceFront Boolean true, if there is a object in front on the own lane (any range), false otherwise + PositionXFront Real X position of front object reference point (0, if no front object) + PositionYFront Real Y position of front object reference point (0, if no front object) + YawFront Real Yaw of front object reference point (0, if no front object) + PositionSFront Real S position of front object reference point on ego route (0, if no front object) + PositionTFront Real T position of front object reference point on ego route (0, if no front object) + RelativeDistanceFront Real Net distance to front object along route (0, if no front object) + WidthFront Real Width of front object (0, if no front object) + LengthFront Real Length of front object (0, if no front object) + DistanceRefToFrontEdgeFront Real Distance between the reference point and the front of the front object (0, if no front object) + VelocityFront Real Absolute velocity of front object at reference point (0, if no front object) + LaneFront Integer Lane id of the reference point of the front object on the ego route (0, if no front object) + ExistenceFrontFront Boolean true, if there are at least two objects in front on the own lane (any range), false otherwise + PositionXFrontFront Real X position of second front object reference point (0, if no second front object) + PositionYFrontFront Real Y position of second front object reference point (0, if no second front object) + RelativeDistanceFrontFront Real Net distance to second front object reference point (0, if no second front object) + VelocityFrontFront Real Absolute velocity of second front object reference point (0, if no second front object) + LaneFrontFront Integer Lane id of the reference point of second front object reference point (0, if no second front object) + LaneCountLeft Integer Number of lanes to the left of front center of type Driving, Exit, Entry, OnRamp or OffRamp + LaneCountRight Integer Number of lanes to the right of front center of type Driving, Exit, Entry, OnRamp or OffRamp + SpeedLimit\_\ *X* Real Speed limit in effect in distance *X* meters from front center (999, if no speed limit) + RoadCurvature\_\ *X* Real Road curvature in distance *X* meters from front center + ========================================= ================== ================================================================================================== + +* **reference point**: Center of the rear axle +* **front center**: Center of the front of the bounding box of the object + +If the FmuWrapper is linked to at least one sensor with InputId "Camera", the following additional inputs are available. +The objects seen by this sensor(s) are sorted by distance from the agent and accessed by indices starting from 0. +For each object the values listed in the following table are available where *X* is the index of the object (between 0 and 9). +If there are less objects than *X*, a default value is set (-1 for the Id, 0 for the other values). +Only the list of objects is taken from the sensor. +The values are then calculated by the FmuWrapper (not from the SensorData). + +.. table:: + :class: tight-table + + ============================================ ================== ======================================================================================================== + Type FMU Variable Type Calculation + ============================================ ================== ======================================================================================================== + SensorFusionObjectId\_\ *X* Integer Id of the object + SensorFusionNumberOfDetectingSensors\_\ *X* Integer Number of sensors detecting the object + SensorFusionRelativeS\_\ *X* Real Distance between reference points along route (NaN, if object not on route) + SensorFusionRelativeNetS\_\ *X* Real Net distance along route (NaN, if object not on route) + SensorFusionRelativeT\_\ *X* Real Lateral obstruction for front center (NaN, if object not on route) (see :ref:`world_getobstruction`) + SensorFusionRelativeX\_\ *X* Real Relative distance between reference points in x in world coordinates + SensorFusionRelativeY\_\ *X* Real Relative distance between reference points in y in world coordinates + SensorFusionRelativeNetLeft\_\ *X* Real Lateral obstruction for leftmost point (NaN, if object not on route) + SensorFusionRelativeNetRight\_\ *X* Real Lateral obstruction for rightmost point (NaN, if object not on route) + SensorFusionRelativeNetX\_\ *X* Real Net distance between bounding boxes in x in world coordinates + SensorFusionRelativeNetY\_\ *X* Real Net distance between bounding boxes in y in world coordinates + SensorFusionLane\_\ *X* Integer Lane of front center + SensorFusionVelocity\_\ *X* Real Absolute velocity at reference point + SensorFusionVelocityX\_\ *X* Real Velocity in x at reference point in world coordinates + SensorFusionVelocityY\_\ *X* Real Velocity in y at reference point in world coordinates + SensorFusionYaw\_\ *X* Real Yaw in world coordinates + ============================================ ================== ======================================================================================================== + +The FMU wrapper can output one or more of these signals: +AccelerationSignal, LongitudinalSignal, SteeringSignal and DynamicsSignal + +The name of the signal field has to be specified after the signal name. +This means the output type is one of the following: + +.. table:: + :class: tight-table + :name: Output simulation signals + + ====================================== =================== ========================================= + Type FMU Variable Type Enum Values + ====================================== =================== ========================================= + ComponentState Enum Undefined, Disabled, Armed, Acting + AccelerationSignal_Acceleration Real + LongitudinalSignal_AccPedalPos Real + LongitudinalSignal_BrakePedalPos Real + LongitudinalSignal_Gear Int + SteeringSignal_SteeringWheelAngle Real + DynamicsSignal_Acceleration Real + DynamicsSignal_Velocity Real + DynamicsSignal_PositionX Real + DynamicsSignal_PositionY Real + DynamicsSignal_Yaw Real + DynamicsSignal_YawRate Real + DynamicsSignal_YawAcceleration Real + DynamicsSignal_SteeringWheelAngle Real + DynamicsSignal_CentripetalAcceleration Real + DynamicsSignal_TravelDistance Real + CompCtrlSignal_MovementDomain Enum Undefined, Lateral, Longitudinal, Both + CompCtrlSignal_WarningActivity Bool + CompCtrlSignal_WarningLevel Enum INFO, WARNING + CompCtrlSignal_WarningType Enum OPTIC, ACOUSTIC, HAPTIC + CompCtrlSignal_WarningIntensity Enum LOW, MEDIUM, HIGH + CompCtrlSignal_WarningDirection Enum + ====================================== =================== ========================================= + +If one of these fields of a signal (except ComponentState) is mapped to an FMU variable, all fields of this signal have to be mapped. +If the ComponentState is mapped to a FMU variable, it is used for all signals, otherwise it defaults to Acting. + +**OSI Data** + +OSMP (OsiSensorModelPackaging) is a package layer specification for the Open Simulation Interface (OSI). +It allows to pass input to the FMU as OSI messages as well as receive output as OSI message. +For more information on OSMP see https://github.com/OpenSimulationInterface/osi-sensor-model-packaging. + +The FmuHandler has the following additional (optional) parameters: + +.. table:: + :class: tight-table + + ========================================================= ==================== =============================================================================================================================================== + Key Type Description + ========================================================= ==================== =============================================================================================================================================== + Init\_\ *var_name* string *var_name* references an FMU variable (as defined in FMU's modelDescription.xml) to which a specific OSI message is sent during initialization Allowed values: `GroundTruth` + Input\_\ *var_name* string *var_name* references an FMU variable (as defined in FMU's modelDescription.xml) to which a specific OSI message is sent Allowed values: `SensorView`, `SensorViewConfig`, `SensorData`, `TrafficCommand` + Output\_\ *var_name* string *var_name* references an FMU variable (as defined in FMU's modelDescription.xml) from which a specific OSI message is received Allowed values: `SensorViewConfigRequest`, `SensorData`, `TrafficUpdate` + Parameter\_\ *var_name* any The value of the parameter is assigned to the FMU variable *var_name* + Parameter\_\ *transformation*\ [*mapping* ]\_\ *name* string/string/any\* Same as Parameter\_\ *name* but with an preceding *transformation* according to a *mapping*. |br| Currently, only mappings between the same types are supported. |br| \*;When using `TransformList` as *transformation*, the type of the data is expected to be a string and the string must be a comma separated list of values. |br| |br| Allowed values: |br| *transformation*: `Transform`, `TransformList` |br| *mapping*: `ScenarioName>Id` |br| |br| Example: `Parameter_TransformList[ScenarioName>Id]\_\ *name*` + WriteJson\_\ *var_name* bool If true the osi message specified by *var_name* is written to a json file + WriteTrace\_\ *var_name* bool If true the osi message specified by *var_name* is written to the trace file + EnforceDoubleBuffering bool If true the wrapper will throw an error if FMU doesn't use double buffering. Defaults to false. + ========================================================= ==================== =============================================================================================================================================== + +The type of OSI messages the FmuHandler sends and receives is defined by its parameters. Only messages for which an FMU variable is given in the configuration are sent/received. +An additional parameter defines whether the message should be logged as JSON file for every agent and every timestep (see table above). + +Currently these messages are supported: + +* SensorView: SensorView generated from the GroundTruth with this agent is host vehicle. +* SensorViewConfig, SensorViewConfigRequest: Configuration of a sensor according to OSMP. +* TrafficCommand: Trajectory from `OpenSCENARIO`_, that will be converted into a TrafficCommand. +* SensorData: Output of a sensor. Can be input and/or output of an FMU. Received SensorData is forwarded to other components as SensorDataSignal. +* TrafficUpdate: Will be converted to a DynamicsSignal, AccelerationSignal, SteeringSignal or LongitudinalSignal. If the update is empty, the signal will have ComponentState::Disabled. If it is only partially filled, the missing values for the DynamicsSignal will be set to the current state. +* GroundTruth: Will be used as groundtruth information for everything that exists in the simulation world. + +**FmuVariables** + +FmuVariables can have different variability and causality. + +* There are the following causalities: Input, Output, Parameter and CalculatedParameter +* Input or outputs can have the variability constant, fixed, discrete or continuous +* Parameter or CalculatedParameter can have the variability constant, fixed or tunable + +In openPASS we have the initialization phase, which is only called once. In that phase first readValues is called. +Then parameter values are synchronized between different config files. The following priority is used for the synchronization: + +modelDescription < systemConfig < SSP config. + +Afterwards still in the initialization phase writeValues is called. +During the whole simulation in openPASS all the trigger functions are called each time step. +For the FMU component we call WriteValues before trigger and readValues afterwards. +For the first two time steps we have the following calls for read- and writeValues: + + 1) ReadValues (Init) + 2) WriteValues (Init) + 3) WriteValues + 4) Trigger + 5) ReadValues + 6) WriteValues + 7) Trigger + 8) ReadValues + +Depending on them, FmuVariables are written/read to/from the FMU on different occasions, which is shown in the following table. + + +.. list-table:: Write- and ReadValues depending on variability and causality + :widths: 5 5 5 5 5 + :header-rows: 1 + :stub-columns: 1 + + * - + - ReadValues - Init + - WriteValues - Init + - WriteValues - Trigger + - ReadValues - Trigger + * - Input - fixed + - x + - x + - + - + * - Input - discrete or continuous + - x + - x + - x + - + * - Output - fixed + - x + - + - + - + * - Output - discrete or continuous + - x + - + - + - x + * - Parameter - fixed + - x + - x + - + - + * - Parameter - tunable + - x + - x + - x + - + * - CalculatedParameter - fixed + - x + - + - + - + * - CalculatedParameter - tunable + - x + - + - + - x + +.. note:: + For alle kinds of Input, Output, Parameter and CalculatedParameter there exists the variablity "constant". + All constant values are only read into openPASS once at the initialization phase. + Never will these values be written onto the FMU. + +.. _components_geometric2d: + +SensorGeometric2D +~~~~~~~~~~~~~~~~~ + +This sensor is selected, when a sensor is parameterized as ProfileGroup "Geometric2D". + +.. table:: + :class: tight-table + + =============================== ====== ==== ================================================================================================== + Parameter Type Unit Description + =============================== ====== ==== ================================================================================================== + DetectionRange Double m Detection range + EnableVisualObstruction Bool Activates 2D sensor obstruction calculation + FailureProbability Double Probability object is not detected although it is visible + Latency Double s Delay the sensor output + DetectionDelayTime Double s Time an object needs to be in detection range before it is detected (optional) + MaxDropOutTime Double s Time after which delay for undetected object starts anew (optional) + OpeningAngleH Double rad Horizontal opening angle + RequiredPercentageOfVisibleArea Double Required percentage of an object within the sensor cone to trigger a detection + =============================== ====== ==== ================================================================================================== + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/ADAS_AEB_PreventingCollisionWithObstacle/ProfilesCatalog.xml + :language: xml + :dedent: 2 + :start-at: <ProfileGroup Type="Geometric2D"> + :end-at: </ProfileGroup> + +.. note:: + + Sensors also need a mounting position, defined w.r.t. the coordinate system of the vehicle (center of rear axis). + See also :ref:`profilescatalog_systemprofiles`. + +ReceiverCar2X +~~~~~~~~~~~~~ + +This type is selected, when a sensor is parameterized as ProfileGroup "ReceiverCar2X". + +.. table:: + :class: tight-table + + ================== ====== ==== =========================================================================================== + Parameter Type Unit Description + ================== ====== ==== =========================================================================================== + FailureProbability Double Probability object is not detected although it is visible + Latency Double s Sensor latency + Sensitivity Double W/m² Sensitivity of the sensor + ================== ====== ==== =========================================================================================== + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/ADAS_Car2X/ProfilesCatalog.xml + :language: xml + :dedent: 2 + :start-at: <ProfileGroup Type="ReceiverCar2X"> + :end-at: </ProfileGroup> + +The moving object is detected if the received SignalStrength is greater than the Sensitivity of the ReceiverCar2X . + +The received SignalStrength is calculated by :math:`ss_{\text{received}} = \frac {ss_{\text{sender}}} {4 \cdot pi \cdot d \cdot d}`, where the symbols meanings are: + +============================ =================================================== +Symbol Description +============================ =================================================== +:math:`ss_{\text{received}}` Received strength of the signal [1/m²] +:math:`ss_{\text{sender}}` Sent strength of the signal [1/m²] +:math:`d` Distance between the receiver agent and sender [m] +============================ =================================================== + +.. note:: + + Sensors also need a mounting position, defined w.r.t. the coordinate system of the vehicle (center of rear axis). + See also :ref:`profilescatalog_systemprofiles`. + +SSP +~~~ + +A SSP can be added as vehicle component. It's a blackbox of one or multiple FMUs. + +.. table:: + :class: tight-table + + =============================== ====== ==== ================================================================================================== + Parameter Type Unit Description + =============================== ====== ==== ================================================================================================== + SspPath String path config relative path to ssp archive + =============================== ====== ==== ================================================================================================== + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/DynamicSSPStepper/ProfilesCatalog.xml + :language: xml + :dedent: 2 + :start-at: <ProfileGroup Type="SSP1"> + :end-at: </ProfileGroup> + +.. note:: + + To add the ssp component to a system profile do the following: + See also :ref:`profilescatalog_systemprofiles`. + +.. literalinclude:: /../../../repo/sim/contrib/examples/Configurations/DynamicSSPStepper/ProfilesCatalog.xml + :language: xml + :dedent: 2 + :start-at: <SystemProfile Name="EgoVehicle + :end-at: </SystemProfiles> + +.. |br| raw:: html + + <br> + +VehicleDynamics +~~~~~~~~~~~~~~~ + +Components of this group can be used to model the vehicle dynamics. The vehicle dynamics model has a modular design. If necessary, the individual components can be replaced by the user with their own models. The vehicle dynamics model consists of six components listed below: + + +.. table:: + :class: tight-table + + ================================ ================================================================================================================================================================== + Component Short Description + ================================ ================================================================================================================================================================== + :ref:`components_steeringsystem` The steering model transfers the driver's input into the vehicle's wheel angle + :ref:`components_powertrain` The powertrain model converts the accelerator pedal position into wheel drive torques, under consideration of the selected gear + :ref:`components_brakesystem` The brake model converts the brake pedal position into wheel brake torques + :ref:`components_tiremodel` The tire model converts the predetermined drive and braking torques of the tires into tire longitudinal and lateral forces, under consideration of the wheel angles + :ref:`components_motionmodel` The motion model calculates the translational and rotational vehicle movement with the calculated tire forces + :ref:`components_chassismodel` The chassis model determines the dynamic wheel loads via the vehicle's longitudinal and lateral acceleration + ================================ ================================================================================================================================================================== + + +The following figure gives an overview of the driving dynamics components and their signals: + + +.. image:: _static/images/VehicleDynamicsOverview.svg + :alt: |op| Vehicle dynamics overview + + + +.. _components_steeringsystem: + +ActionSteeringSystem +^^^^^^^^^^^^^^^^^^^^ + +The steering model obtains the "SteeringRatio" property from the :ref:`scenario_vehiclemodels` and uses it to calculate the steering angle of the front wheels. +Both wheels are turned at the same angle. The following parameter can be used to set a static toe and the steering elasticity: + +.. table:: + :class: tight-table + + ========== ============ ====== ========================================================================================================================= + Attribute Type Unit Description + ========== ============ ====== ========================================================================================================================= + StaticToe VectorDouble rad Static toe of the wheels (A positive value corresponds to a toe-in; one static toe per axis) + Elasticity VectorDouble rad/Nm Steering Elasticity (one elasticity per axis) + Caster VectorDouble m Overall Caster of steering system + ========== ============ ====== ========================================================================================================================= + +.. _components_powertrain: + +ActionPowertrain +^^^^^^^^^^^^^^^^ + +The powertrain model contains an engine model and a gear model. The type of the powertrain can be set using the following parameters: + +.. table:: + :class: tight-table + + ============== ====== ==== ============================================================================================================================= + Attribute Type Unit Description + ============== ====== ==== ============================================================================================================================= + TypeDrivetrain String Type of drivetrain; A selection can be made between front-wheel drive (FWD), rear-wheel drive (RWD) and all-wheel drive (AWD) + FrontRatioAWD Double Distribution of the drive torque to the front axle in the case of all-wheel drive (AWD); Range 0-1 + ============== ====== ==== ============================================================================================================================= + +The wheel speed is converted into an engine speed [Hz] according to the axle ratio and the transmission ratio of the selected gear. +The axle ratio and gear ratios are obtained from the :ref:`scenario_vehiclemodels` ("AxleRatio" & "GearRatio"). The average value of the powered wheels is used for the determination of the engine speed. + +.. math:: + \omega_{engine} = \omega_{wheels,avg} \cdot i_{axle} \cdot i_{gear,selected} + +The maximum possible engine torque [Nm] is limited by the engine power [W] or the maximum engine torque [Nm]. +The engine power and the maximum engine torque are obtained from the :ref:`scenario_vehiclemodels` ("MaximumEnginePower" & "MaximumEngineTorque"). + +.. math:: + M_{engine,max,current} = \begin{cases} + \frac{P_{engine,max}}{\omega_{engine}} & \text{ if } \frac{P_{engine,max}}{\omega_{engine}} < M_{engine,max} \\ + M_{engine,max} & \text{ if } \frac{P_{engine,max}}{\omega_{engine}} >= M_{engine,max} + \end{cases} + +When 98% of the maximum speed of the motor is reached ("MaximumEngineSpeed" in the :ref:`scenario_vehiclemodels`), the engine torque is linearly reduced to 0. + +The maximum engine torque is scaled via the accelerator pedal position (input). This value is calculated back to the total wheel drive torque via the gear ratio. + +.. math:: + M_{wheels,current} = M_{engine,max,current} \cdot position_{accelerator pedal} \cdot i_{axle} \cdot i_{gear,selected} + +The wheel total drive torque is evenly distributed to the wheels of an axle according to the definition of the drive type. +With all-wheel drive, the entire wheel drive torque is distributed statically over the defined ratio. + + +.. _components_brakesystem: + +ActionBrakeSystem +^^^^^^^^^^^^^^^^^ + +The brake model is a linearized model. The brake pedal position is used as input. As output, the model returns the braking torques of the wheels as a vector. +The model considers a response time [ms] and linear factors [m/s³] for the increase and decrease of the braking force.The distribution of braking force between the front and rear axles can be defined statically. + +.. table:: + :class: tight-table + + ============================ ====== ==== ============================================================================================================== + Attribute Type Unit Description + ============================ ====== ==== ============================================================================================================== + FrontAxlePercentage Double Distribution of the brake torque to the front axle in the case of all-wheel drive (AWD); Range 0-1 + BrakeDecelerationInclineRate Double m/s³ Linear Rate of braking force increase + BrakeDecelerationDeclineRate Double m/s³ Linear Rate of braking force decrease + BrakeResponseTimeMs Double ms Brake response time + ============================ ====== ==== ============================================================================================================== + + +The maximum braking force of the system is determined from the maximum possible deceleration and the mass of the vehicle and is scaled by the brake pedal position (Input). +The maximum possible deceleration and the vehicle mass are obtained from the :ref:`scenario_vehiclemodels` ("maxDeceleration" & "mass"). + +.. math:: + F_{brake,max} = a_{deceleration,max} \cdot m_{vehicle} \cdot position_{brake pedal} + +When the brake is applied, a deceleration is calculated after the response time has elapsed. Then the braking force is built up linearly until the maximum or requested braking force has been reached. + +.. math:: + F_{brake,current} = rate_{incline} \cdot (t_{brake} - t_{response}) + +When the brake is released, the braking force is dissipated with the decline rate until it has dropped to zero. After that, the response time builds up again. +The braking force is divided among the axles according to the parameter "FrontAxlePercentage". Another input allows you to request a prefill that reduces the response time without braking + + +.. _components_chassismodel: + +DynamicsChassis +^^^^^^^^^^^^^^^ + +The chassis model determines the vertical forces of the four wheels from the longitudinal and lateral acceleration of the vehicle. Constant spring and damper rates are taken into account, which can be defined by the following parameters per axis: + +.. table:: + :class: tight-table + + ============================ ============ ==== ============================================================================================================== + Attribute Type Unit Description + ============================ ============ ==== ============================================================================================================== + SpringCoefficient VectorDouble N/m Constant spring coefficient for each axis + DamperCoefficient VectorDouble Ns/m Constant damper coefficient for each axis + ============================ ============ ==== ============================================================================================================== + +.. _components_tiremodel: + +DynamicsTireModel +^^^^^^^^^^^^^^^^^ + +The tire model is freely configurable and includes a degressive behaviour. The tire forces are modeled according to Rill using the TMEasy model. The following parameters can be set for the tire model per axis : + +.. table:: + :class: tight-table + + ==================== ============ ==== ============================================================================================================== + Attribute Type Unit Description + ==================== ============ ==== ============================================================================================================== + MuTireMaxXFRef VectorDouble Normalized scaling factor for maximum longitudinal force at reference vertical force + MuTireMaxX2FRef VectorDouble Normalized scaling factor for maximum longitudinal force at double reference vertical force + MuTireSlideXFRef VectorDouble Normalized scaling factor for sliding longitudinal force at reference vertical force + MuTireSlideX2FRef VectorDouble Normalized scaling factor for sliding longitudinal force at double reference vertical force + SlipTireMaxXFRef VectorDouble Longitudinal slip at maximum longitudinal force at reference vertical force + SlipTireMaxX2FRef VectorDouble Longitudinal slip at maximum longitudinal force at double reference vertical force + SlipTireSlideXFRef VectorDouble Longitudinal slip at sliding longitudinal force at reference vertical force + SlipTireSlideX2FRef VectorDouble Longitudinal slip at sliding longitudinal force at double reference vertical force + F0pXFRef VectorDouble N Initial slope of longitudinal force at reference force + F0pX2FRef VectorDouble N Initial slope of longitudinal force at double reference force + MuTireMaxYFRef VectorDouble Normalized scaling factor for maximum lateral force at reference vertical force + MuTireMaxY2FRef VectorDouble Normalized scaling factor for maximum lateral force at double reference vertical force + MuTireSlideYFRef VectorDouble Normalized scaling factor for sliding lateral force at reference vertical force + MuTireSlideY2FRef VectorDouble Normalized scaling factor for sliding lateral force at double reference vertical force + SlipTireMaxYFRef VectorDouble Lateral slip at maximum lateral force at reference vertical force + SlipTireMaxY2FRef VectorDouble Lateral slip at maximum lateral force at double reference vertical force + SlipTireSlideYFRef VectorDouble Lateral slip at sliding lateral force at reference vertical force + SlipTireSlideY2FRef VectorDouble Lateral slip at sliding lateral force at double reference vertical force + F0pYFRef VectorDouble N Initial slope of lateral force at reference force + F0pY2FRef VectorDouble N Initial slope of lateral force at double reference force + FRef VectorDouble N Vertical reference force for the tire parameters + FRefNormalized VectorBool Should the reference force be scaled with the static vertical tire force? + Inertia VectorDouble kgm² Inertia of tire + PneumaticTrail VectorDouble m Pneumatic trail of tire + ==================== ============ ==== ============================================================================================================== + +The normalized factors refer to the reference vertical force or to the double reference vertical force +The input variables used by the model are tire drive and braking torques as well as the wheel angles and vertical wheel forces. All data is provided as vectors. +The model determines tire forces in the longitudinal and lateral directions as well as the wheel self aligning torques. The wheel self aligning torque is formed from the product of the tire side force and the pneumatic trail. +A linear interpolation is performed between the values for the reference force and the double reference force. If no degressive tire behavior is desired, the parameters for the double reference force must be set identically to the values for the reference force. + +All forces are scaled with the coefficient of friction from the :ref:`scenario_vehiclemodels` ("FrictionCoefficient"). + +All further information about the model can be found in the following sources: + +https://www.tmeasy.de/ + +Rill, Georg. (2013). TMeasy -- A Handling Tire Model based on a three-dimensional slip approach. + + +.. _components_motionmodel: + +DynamicsMotionModel +^^^^^^^^^^^^^^^^^^^ +The motion model converts the tire forces (input) into a translational and rotational movement of the vehicle. The air resistance of the vehicle is taken into account. For the dynamic calculation, the center of gravity position is taken from the :ref:`scenario_vehiclemodels` ("XPositionCOG","YPositionCOG"), +which indicates the distance of the center of gravity to the center of the rear axle. If this data is not given, the center of gravity is positioned on half wheelbase. For air resistance, the properties "AirDragCoefficient" & "FrontSurface" from the :ref:`scenario_vehiclemodels` are used. + +For the equations of motion, see relevant vehicle dynamics books such as: + +Kücükay, Ferit (2022), "Grundlagen der Fahrzeugtechnik", page 1067 ff diff --git a/content/html/_sources/user_guide/tutorials/10_scenario_simulation.rst.txt b/content/html/_sources/user_guide/tutorials/10_scenario_simulation.rst.txt index bce67bdf3e495f5c1bb49f58d9b3de6589a4865b..49331e901996694ee5c410d1ebac73ac766d2e8a 100644 --- a/content/html/_sources/user_guide/tutorials/10_scenario_simulation.rst.txt +++ b/content/html/_sources/user_guide/tutorials/10_scenario_simulation.rst.txt @@ -1,124 +1,123 @@ -.. - ******************************************************************************* - Copyright (c) 2021-2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - 2021 in-tech GmbH - 2023 Mercedes-Benz Tech Innovation GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _scenario_based_simulation: - -Scenario-based simulation -========================= - -This guide describes how to execute an exemplary simulation with openPASS. - -The simulation runs a scenario which is set up for triggering an AEB (Autonomous Emergency Break) system. -The scenario contains two agents: The ego agent and a scenario agent. -The ego vehicle is equipped with an AEB system (the system under test). -The scenario agent performs a cut-in and triggers as a result the AEB system of the ego agent. -To force this exact maneuver, the scenario agent is set up to follow a predefined trajectory. - -.. TODO:: Update this paragraph for the new react GUI. - -The GUI is not yet capable of configuring and executing a scenario based simulation as this is currently work in progress. -Thus, an existing simulation configuration is used and the simulation is started manually. - -**Step-by-step instructions** - -#. Navigate into the |op| install directory (e.g. ``C:\openPASS\bin\core``) - -#. The install directory should look like the following - - :: - - openPASS-Install-Dir - └── configs <-- this directory will be created in the next step - └── examples <-- if non existent, it can be copied from the openPASS checkout repository (see note) - │ ├── Common - │ └── Configurations - └── doc - └── examples - └── lib - │ ... - └── opSimulation.exe - - .. note:: - - The folder ``examples`` might not be existent right after the installation. In this case one can find it in the checkout repository of openPASS under ``deps/os/sim/contrib``. From there one can copy it into the installation folder. - -#. Create a new folder named "configs" for the configuration files within the |op| install directory - -#. Copy configuration files - - Simulations for |op| are fully configured through configuration files. This is where the user defines the traffic scenario to be simulated by openPASS. - Examples for |op| configuration files are located in the directory ``examples`` and are divided into two groups: *default configurations* and *specific configurations*. - - a. The *default configuration* files located under ``examples/Common`` contain the basis for any simulation. They represent the minimum input required, therefore: - - i. Copy all files from the directory ``examples/Common`` to the previously created folder ``configs``. - - b. The *specific configuration* files located under ``examples/Configurations`` complement the default configuration files. Examples are provided for different simulations. - - i. Ensure all files from directory ``examples/Common`` have been copied to ``configs`` (this has been done in the previous step). Repeat this step every time another simulation is chosen. - - ii. Navigate to the directory ``examples/Configurations``. Here, all folders contain special pre-configured simulations (which either can be used as demo cases or as end-to-end test cases primarily used for development). - - iii. Copy all files from the directory specifying the specific scenario you want to simulate (in our case all files from directory ``examples/Configurations/AEB_CutIn``) to the directory ``configs``. Overwrite existing files when prompted. - - .. note:: - - A detailed description of the various configuration files can be found under see :ref:`configs_in_depth`. - -#. Learn how to modify configuration files - - If one wants to edit the configurations (e.g. experiment set-up or parameters of specific scenario) placed under ``configs``, one can do so by changing any of the following files: - - :: - - configs - ├── PedestrianModelsCatalog.xosc - ├── ProfilesCatalog.xml - ├── Scenario.xosc - ├── SceneryConfiguration.xodr - ├── simulationConfig.xml - ├── systemConfigBlueprint.xml - └── VehicleModelsCatalog.xosc - - - As an example, modifications of the configuration files that describe an AEB cut-in scenario are given. - The following list describes some relevant adjustments that may be useful. - - a. ``ProfilesCatalog.xml``: - - * The AEB system and sensor parameters, e.g. „TTC“, „DetectionRange“, can be adjusted. - * The spawner parameters, such as the traffic volume or the velocity of the surrounding traffic, can be modified in the existing spawner profiles. - - b. ``Scenario.xosc``: - - * The scenario set-up contains the initial positions und velocities of the ego and scenario agent. - * The trajectory that defines the cut-in maneuver of the scenario agent is defined and editable here. - * The overall simulation time, which determines the end condition of the simulation in seconds, can be adjusted. - - c. ``simulationConfig.xml``: - - * The number of invocations can be changed in case more than one run is desired to be simulated. This will incorporate stochastic variation (i.e. initial constellation of surrounding traffic) - * If surrounding traffic is not desired in the experiment, the spawner libraries "SpawnPointPreRunCommon" and "SpawnPointRuntimeCommon" can be deactivated by removing the corresponding sections. Only the "SpawnPointScenario" is mandatory to spawn the ego and scenario agent. More information on the functionality of spawners can be found in :ref:`components_spawner`. - * The output format can be modified by setting the parameter "LoggingCyclicsToCsv" to true. - -#. Start the simulation by double-clicking ``opSimulation.exe`` or from the console by calling the executable. - -#. Once the simulation is successfully completed, the following results can be found in the directory ``results``: - - * ``simulationOutput.xml``: Contains general information about the experiment and an overview on all agents from the simulation. Further, an event log is contained. If the csv-output is set to false in the ``simulationConfig.xml``, the ``simulationOutput.xml`` will also include the „cyclics†(state in each time step) of the simulation. - * ``Cyclics_Run_xxx.csv``: In case the csv-output is activated, the „cyclics†of each run in the simulation are logged to a separated csv-file. This file is missing, if "cyclics" are written directly to the ``simulationOutput.xml`` (i.e. when "LoggingCyclicsToCsv" is set to false). - * ``Repository_Run_xxx.csv``: Overview of the agents and objects from the simulation as well as some details on scenery components like lane markings, guard rails, etc. - - .. note:: - - The outputs do not contain the ``SceneryConfiguration.xodr``, i.e. the static environment given in the scenery file in configs. In order to make the world around the simulation results available, we need to copy ``SceneryConfiguration.xodr`` file from ``configs`` to ``results``. +.. + ******************************************************************************* + Copyright (c) 2021-2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + 2021 in-tech GmbH + 2023 Mercedes-Benz Tech Innovation GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _scenario_based_simulation: + +Scenario-based simulation +========================= + +This guide describes how to execute an exemplary simulation with openPASS. + +The simulation runs a scenario which is set up for triggering an AEB (Autonomous Emergency Break) system. +The scenario contains two agents: The ego agent and a scenario agent. +The ego vehicle is equipped with an AEB system (the system under test). +The scenario agent performs a cut-in and triggers as a result the AEB system of the ego agent. +To force this exact maneuver, the scenario agent is set up to follow a predefined trajectory. + +The opGUI is not yet capable of configuring and executing a scenario based simulation as this is currently work in progress. +Thus, an existing simulation configuration is used and the simulation is started manually. + +**Step-by-step instructions** + +#. Navigate into the |op| install directory (e.g. ``C:\openPASS\bin\core``) + +#. The install directory should look like the following + + :: + + openPASS-Install-Dir + └── configs <-- this directory will be created in the next step + └── examples <-- if non existent, it can be copied from the openPASS checkout repository (see note) + │ ├── Common + │ └── Configurations + └── doc + └── examples + └── lib + │ ... + └── opSimulation.exe + + .. note:: + + The folder ``examples`` might not be existent right after the installation. In this case one can find it in the checkout repository of openPASS under ``deps/os/sim/contrib``. From there one can copy it into the installation folder. + +#. Create a new folder named "configs" for the configuration files within the |op| install directory + +#. Copy configuration files + + Simulations for |op| are fully configured through configuration files. This is where the user defines the traffic scenario to be simulated by openPASS. + Examples for |op| configuration files are located in the directory ``examples`` and are divided into two groups: *default configurations* and *specific configurations*. + + a. The *default configuration* files located under ``examples/Common`` contain the basis for any simulation. They represent the minimum input required, therefore: + + i. Copy all files from the directory ``examples/Common`` to the previously created folder ``configs``. + + b. The *specific configuration* files located under ``examples/Configurations`` complement the default configuration files. Examples are provided for different simulations. + + i. Ensure all files from directory ``examples/Common`` have been copied to ``configs`` (this has been done in the previous step). Repeat this step every time another simulation is chosen. + + ii. Navigate to the directory ``examples/Configurations``. Here, all folders contain special pre-configured simulations (which either can be used as demo cases or as end-to-end test cases primarily used for development). + + iii. Copy all files from the directory specifying the specific scenario you want to simulate (in our case all files from directory ``examples/Configurations/AEB_CutIn``) to the directory ``configs``. Overwrite existing files when prompted. The catalogs for vehicles or pedestrian parameters must be stored in a child folder ``Vehicles``. + + .. note:: + + A detailed description of the various configuration files can be found under see :ref:`configs_in_depth`. + +#. Learn how to modify configuration files + + If one wants to edit the configurations (e.g. experiment set-up or parameters of specific scenario) placed under ``configs``, one can do so by changing any of the following files: + + :: + + configs + ├── Vehicles + │ ├── VehicleModelsCatalog.xosc + │ └── PedestrianModelsCatalog.xosc + ├── ProfilesCatalog.xml + ├── Scenario.xosc + ├── SceneryConfiguration.xodr + ├── simulationConfig.xml + └── systemConfigBlueprint.xml + + + As an example, modifications of the configuration files that describe an AEB cut-in scenario are given. + The following list describes some relevant adjustments that may be useful. + + a. ``ProfilesCatalog.xml``: + + * The AEB system and sensor parameters, e.g. „TTC“, „DetectionRange“, can be adjusted. + * The spawner parameters, such as the traffic volume or the velocity of the surrounding traffic, can be modified in the existing spawner profiles. + + b. ``Scenario.xosc``: + + * The scenario set-up contains the initial positions und velocities of the ego and scenario agent. + * The trajectory that defines the cut-in maneuver of the scenario agent is defined and editable here. + * The overall simulation time, which determines the end condition of the simulation in seconds, can be adjusted. + + c. ``simulationConfig.xml``: + + * The number of invocations can be changed in case more than one run is desired to be simulated. This will incorporate stochastic variation (i.e. initial constellation of surrounding traffic) + * If surrounding traffic is not desired in the experiment, the spawner libraries "SpawnPointPreRunCommon" and "SpawnPointRuntimeCommon" can be deactivated by removing the corresponding sections. Only the "SpawnPointScenario" is mandatory to spawn the ego and scenario agent. More information on the functionality of spawners can be found in :ref:`components_spawner`. + * The output format can be modified by setting the parameter "LoggingCyclicsToCsv" to true. + +#. Start the simulation by double-clicking ``opSimulation.exe`` or from the console by calling the executable. + +#. Once the simulation is successfully completed, the following results can be found in the directory ``results``: + + * ``simulationOutput.xml``: Contains general information about the experiment and an overview on all agents from the simulation. Further, an event log is contained. If the csv-output is set to false in the ``simulationConfig.xml``, the ``simulationOutput.xml`` will also include the „cyclics†(state in each time step) of the simulation. + * ``Cyclics_Run_xxx.csv``: In case the csv-output is activated, the „cyclics†of each run in the simulation are logged to a separated csv-file. This file is missing, if "cyclics" are written directly to the ``simulationOutput.xml`` (i.e. when "LoggingCyclicsToCsv" is set to false). + * ``Repository_Run_xxx.csv``: Overview of the agents and objects from the simulation as well as some details on scenery components like lane markings, guard rails, etc. + + .. note:: + + The outputs do not contain the ``SceneryConfiguration.xodr``, i.e. the static environment given in the scenery file in configs. In order to make the world around the simulation results available, we need to copy ``SceneryConfiguration.xodr`` file from ``configs`` to ``results``. diff --git a/content/html/_sources/user_guide/tutorials/20_pcm_simulation.rst.txt b/content/html/_sources/user_guide/tutorials/20_pcm_simulation.rst.txt index 9ef165d974cd5b42d3c04ea3d6c9d3e33a318502..0664fb07a484a9222c0f834110e944871152bbe3 100644 --- a/content/html/_sources/user_guide/tutorials/20_pcm_simulation.rst.txt +++ b/content/html/_sources/user_guide/tutorials/20_pcm_simulation.rst.txt @@ -1,18 +1,18 @@ -.. - ******************************************************************************* - Copyright (c) 2021 ITK Engineering GmbH - - This program and the accompanying materials are made available under the - terms of the Eclipse Public License 2.0 which is available at - http://www.eclipse.org/legal/epl-2.0. - - SPDX-License-Identifier: EPL-2.0 - ******************************************************************************* - -.. _pcm_simulation_guide: - -PCM Simulation -============== - -.. todo:: - Write tutorial for PCM simulation +.. + ******************************************************************************* + Copyright (c) 2021 ITK Engineering GmbH + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License 2.0 which is available at + http://www.eclipse.org/legal/epl-2.0. + + SPDX-License-Identifier: EPL-2.0 + ******************************************************************************* + +.. _pcm_simulation_guide: + +PCM Simulation +============== + +.. todo:: + Include link and explaination to opGUI documentation how to run PCM simulations diff --git a/content/html/_static/basic.css b/content/html/_static/basic.css index d1901937a9b4bdb849c624aa0ce3400549ab9623..30fee9d0f76a47aec5ef23e46adbf6bab4671eac 100644 --- a/content/html/_static/basic.css +++ b/content/html/_static/basic.css @@ -1,925 +1,925 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li p.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 360px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -a:visited { - color: #551A8B; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} - -nav.contents, -aside.topic, -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ - -nav.contents, -aside.topic, -div.topic { - border: 1px solid #ccc; - padding: 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -nav.contents > :last-child, -aside.topic > :last-child, -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -nav.contents::after, -aside.topic::after, -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - -/* -- object description styles --------------------------------------------- */ - -.sig { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -.sig-name, code.descname { - background-color: transparent; - font-weight: bold; -} - -.sig-name { - font-size: 1.1em; -} - -code.descname { - font-size: 1.2em; -} - -.sig-prename, code.descclassname { - background-color: transparent; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.sig-param.n { - font-style: italic; -} - -/* C++ specific styling */ - -.sig-inline.c-texpr, -.sig-inline.cpp-texpr { - font-family: unset; -} - -.sig.c .k, .sig.c .kt, -.sig.cpp .k, .sig.cpp .kt { - color: #0033B3; -} - -.sig.c .m, -.sig.cpp .m { - color: #1750EB; -} - -.sig.c .s, .sig.c .sc, -.sig.cpp .s, .sig.cpp .sc { - color: #067D17; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -aside.footnote > span, -div.citation > span { - float: left; -} -aside.footnote > span:last-of-type, -div.citation > span:last-of-type { - padding-right: 0.5em; -} -aside.footnote > p { - margin-left: 2em; -} -div.citation > p { - margin-left: 4em; -} -aside.footnote > p:last-of-type, -div.citation > p:last-of-type { - margin-bottom: 0em; -} -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -.sig dd { - margin-top: 0px; - margin-bottom: 0px; -} - -.sig dl { - margin-top: 0px; - margin-bottom: 0px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0 0.5em; - content: ":"; - display: inline-block; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -.translated { - background-color: rgba(207, 255, 207, 0.2) -} - -.untranslated { - background-color: rgba(255, 207, 207, 0.2) -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; - white-space: nowrap; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; - -webkit-user-select: text; /* Safari fallback only */ - -webkit-user-select: none; /* Chrome/Safari */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* IE10+ */ -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } } \ No newline at end of file diff --git a/content/html/_static/css/custom.css b/content/html/_static/css/custom.css index 6a9eda3da41a2339975a1a9f3644d965647207b6..5fccaa2c2157dec55f536171770415f4793282c1 100644 --- a/content/html/_static/css/custom.css +++ b/content/html/_static/css/custom.css @@ -1,4 +1,4 @@ -/* see https://knowyourtoolset.com/2018/02/controlling-the-width-of-a-table-with-read-the-docs/ */ -.tight-table td { - white-space: normal !important; -} +/* see https://knowyourtoolset.com/2018/02/controlling-the-width-of-a-table-with-read-the-docs/ */ +.tight-table td { + white-space: normal !important; +} diff --git a/content/html/_static/documentation_options.js b/content/html/_static/documentation_options.js index 3f2f2b823e69c123522df4ac177114608f2c174c..3f42394035b9a75ca22ae78ee1b4f65f91cc3196 100644 --- a/content/html/_static/documentation_options.js +++ b/content/html/_static/documentation_options.js @@ -1,13 +1,13 @@ -const DOCUMENTATION_OPTIONS = { - VERSION: '1.1.0', - LANGUAGE: 'en', - COLLAPSE_INDEX: false, - BUILDER: 'html', - FILE_SUFFIX: '.html', - LINK_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false, - SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, +const DOCUMENTATION_OPTIONS = { + VERSION: '1.2.0', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, }; \ No newline at end of file diff --git a/content/html/_static/language_data.js b/content/html/_static/language_data.js index 53c120fecc6cad88c869c4618ebb4454132092ec..250f5665fa64b70c822190199b3b804b10f8b9d8 100644 --- a/content/html/_static/language_data.js +++ b/content/html/_static/language_data.js @@ -1,199 +1,199 @@ -/* - * language_data.js - * ~~~~~~~~~~~~~~~~ - * - * This script contains the language-specific data used by searchtools.js, - * namely the list of stopwords, stemmer, scorer and splitter. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; - - -/* Non-minified version is copied as a separate JS file, is available */ - -/** - * Porter Stemmer - */ -var Stemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' - }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, is available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/content/html/_static/pygments.css b/content/html/_static/pygments.css index 26c5c65205b0524baad03d36db8c5d7db4fb034e..6f8b210a1c9a4c763cd4c1a669999d3d0594b576 100644 --- a/content/html/_static/pygments.css +++ b/content/html/_static/pygments.css @@ -1,75 +1,75 @@ -pre { line-height: 125%; } -td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -.highlight .hll { background-color: #ffffcc } -.highlight { background: #f8f8f8; } -.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .k { color: #008000; font-weight: bold } /* Keyword */ -.highlight .o { color: #666666 } /* Operator */ -.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #9C6500 } /* Comment.Preproc */ -.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ -.highlight .gr { color: #E40000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #008400 } /* Generic.Inserted */ -.highlight .go { color: #717171 } /* Generic.Output */ -.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0044DD } /* Generic.Traceback */ -.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #008000 } /* Keyword.Pseudo */ -.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #B00040 } /* Keyword.Type */ -.highlight .m { color: #666666 } /* Literal.Number */ -.highlight .s { color: #BA2121 } /* Literal.String */ -.highlight .na { color: #687822 } /* Name.Attribute */ -.highlight .nb { color: #008000 } /* Name.Builtin */ -.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ -.highlight .no { color: #880000 } /* Name.Constant */ -.highlight .nd { color: #AA22FF } /* Name.Decorator */ -.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #0000FF } /* Name.Function */ -.highlight .nl { color: #767600 } /* Name.Label */ -.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #19177C } /* Name.Variable */ -.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mb { color: #666666 } /* Literal.Number.Bin */ -.highlight .mf { color: #666666 } /* Literal.Number.Float */ -.highlight .mh { color: #666666 } /* Literal.Number.Hex */ -.highlight .mi { color: #666666 } /* Literal.Number.Integer */ -.highlight .mo { color: #666666 } /* Literal.Number.Oct */ -.highlight .sa { color: #BA2121 } /* Literal.String.Affix */ -.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ -.highlight .sc { color: #BA2121 } /* Literal.String.Char */ -.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ -.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ -.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ -.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ -.highlight .sx { color: #008000 } /* Literal.String.Other */ -.highlight .sr { color: #A45A77 } /* Literal.String.Regex */ -.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ -.highlight .ss { color: #19177C } /* Literal.String.Symbol */ -.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #0000FF } /* Name.Function.Magic */ -.highlight .vc { color: #19177C } /* Name.Variable.Class */ -.highlight .vg { color: #19177C } /* Name.Variable.Global */ -.highlight .vi { color: #19177C } /* Name.Variable.Instance */ -.highlight .vm { color: #19177C } /* Name.Variable.Magic */ -.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #F00 } /* Error */ +.highlight .k { color: #008000; font-weight: bold } /* Keyword */ +.highlight .o { color: #666 } /* Operator */ +.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #9C6500 } /* Comment.Preproc */ +.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #E40000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #008400 } /* Generic.Inserted */ +.highlight .go { color: #717171 } /* Generic.Output */ +.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #04D } /* Generic.Traceback */ +.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #008000 } /* Keyword.Pseudo */ +.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #B00040 } /* Keyword.Type */ +.highlight .m { color: #666 } /* Literal.Number */ +.highlight .s { color: #BA2121 } /* Literal.String */ +.highlight .na { color: #687822 } /* Name.Attribute */ +.highlight .nb { color: #008000 } /* Name.Builtin */ +.highlight .nc { color: #00F; font-weight: bold } /* Name.Class */ +.highlight .no { color: #800 } /* Name.Constant */ +.highlight .nd { color: #A2F } /* Name.Decorator */ +.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #00F } /* Name.Function */ +.highlight .nl { color: #767600 } /* Name.Label */ +.highlight .nn { color: #00F; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #19177C } /* Name.Variable */ +.highlight .ow { color: #A2F; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #BBB } /* Text.Whitespace */ +.highlight .mb { color: #666 } /* Literal.Number.Bin */ +.highlight .mf { color: #666 } /* Literal.Number.Float */ +.highlight .mh { color: #666 } /* Literal.Number.Hex */ +.highlight .mi { color: #666 } /* Literal.Number.Integer */ +.highlight .mo { color: #666 } /* Literal.Number.Oct */ +.highlight .sa { color: #BA2121 } /* Literal.String.Affix */ +.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ +.highlight .sc { color: #BA2121 } /* Literal.String.Char */ +.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ +.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ +.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ +.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +.highlight .sx { color: #008000 } /* Literal.String.Other */ +.highlight .sr { color: #A45A77 } /* Literal.String.Regex */ +.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ +.highlight .ss { color: #19177C } /* Literal.String.Symbol */ +.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #00F } /* Name.Function.Magic */ +.highlight .vc { color: #19177C } /* Name.Variable.Class */ +.highlight .vg { color: #19177C } /* Name.Variable.Global */ +.highlight .vi { color: #19177C } /* Name.Variable.Instance */ +.highlight .vm { color: #19177C } /* Name.Variable.Magic */ +.highlight .il { color: #666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/content/html/advanced_topics/20_simulator_advanced.html b/content/html/advanced_topics/20_simulator_advanced.html index d59945212b6b697497489a2c44de47d0e20fcc27..90a5b75a7a6f71518eed11d26f7c9f66d2f8e833 100644 --- a/content/html/advanced_topics/20_simulator_advanced.html +++ b/content/html/advanced_topics/20_simulator_advanced.html @@ -1,285 +1,288 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Simulator — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="Agent Components" href="simulator/agent_components.html" /> - <link rel="prev" title="VehicleComponents" href="../user_guide/sim_user_guide/components/vehicle.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Simulator</a><ul> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html">Agent Components</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/coordinate_systems.html">Coordinate Systems</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/event_detector.html">EventDetector</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/simulation.html">Simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/spawner_features.html">Spawner Features</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/world_osi.html">World_OSI</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Simulator</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/advanced_topics/20_simulator_advanced.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="simulator"> -<span id="simulator-advanced"></span><h1>Simulator<a class="headerlink" href="#simulator" title="Link to this heading">ïƒ</a></h1> -<div class="toctree-wrapper compound"> -<ul> -<li class="toctree-l1"><a class="reference internal" href="simulator/agent_components.html">Agent Components</a><ul> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#action-longitudinaldriver">Action_LongitudinalDriver</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#action-secondarydriver">Action_SecondaryDriver</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#agentupdater">AgentUpdater</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#algorithm-lateral">Algorithm_Lateral</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#algorithm-longitudinal">Algorithm_Longitudinal</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#algorithmcar2xsender">AlgorithmCar2XSender</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#dynamics-collision">Dynamics_Collision</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#dynamics-scenario">Dynamics_Scenario</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#dynamics-regulardriving">Dynamics_RegularDriving</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#limiteraccelerationvehiclecomponents">LimiterAccelerationVehicleComponents</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#openscenarioactions">OpenScenarioActions</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#parameters-vehicle">Parameters_Vehicle</a><ul> -<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#vehicle-model-related-parameters">Vehicle model related parameters</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#powertrain-related-parameters">Powertrain related parameters</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#steering-related-parameters">Steering related parameters</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#sensor-driver">Sensor_Driver</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#sensor-osi">Sensor_OSI</a><ul> -<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#sensorgeometric2d">SensorGeometric2D</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#function">Function</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#cases">Cases</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#visual-obstruction">Visual Obstruction</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#sensorfusionosi">SensorFusionOSI</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#signalprioritizer">SignalPrioritizer</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#componentcontroller">ComponentController</a><ul> -<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#overview">Overview</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#state-handling-inside-vehicle-component">State handling inside Vehicle Component</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#used-signals">Used signals</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="simulator/coordinate_systems.html">Coordinate Systems</a><ul> -<li class="toctree-l2"><a class="reference internal" href="simulator/coordinate_systems.html#world-coordinate-system">World Coordinate System</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/coordinate_systems.html#road-coordinate-system">Road Coordinate System</a><ul> -<li class="toctree-l3"><a class="reference internal" href="simulator/coordinate_systems.html#agent-coordinate-system">Agent Coordinate System</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="simulator/coordinate_systems.html#sensor-coordinate-system">Sensor Coordinate System</a><ul> -<li class="toctree-l3"><a class="reference internal" href="simulator/coordinate_systems.html#conversions-between-sensordata-coordinate-systems">Conversions between SensorData coordinate systems</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="simulator/event_detector.html">EventDetector</a><ul> -<li class="toctree-l2"><a class="reference internal" href="simulator/event_detector.html#collisiondetector">CollisionDetector</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="simulator/scenario_actions.html">Mapping of OpenSCENARIO Actions</a><ul> -<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#acquirepositionaction">AcquirePositionAction</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#assignrouteaction">AssignRouteAction</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#customcommandaction">CustomCommandAction</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#followtrajectoryaction">FollowTrajectoryAction</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#lanechangeaction">LaneChangeAction</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#speedaction">SpeedAction</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#teleportaction">TeleportAction</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#trafficsignalaction">TrafficSignalAction</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#trafficsignalstateaction">TrafficSignalStateAction</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#trafficsinkaction">TrafficSinkAction</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#visibilityaction">VisibilityAction</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="simulator/simulation.html">Simulation</a><ul> -<li class="toctree-l2"><a class="reference internal" href="simulator/simulation.html#command-line-arguments">Command Line Arguments</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/simulation.html#scheduler">Scheduler</a><ul> -<li class="toctree-l3"><a class="reference internal" href="simulator/simulation.html#executing-phases">Executing phases</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/simulation.html#task-type-description">Task type description</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/simulation.html#task-priorities">Task priorities</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="simulator/spawner_features.html">Spawner Features</a><ul> -<li class="toctree-l2"><a class="reference internal" href="simulator/spawner_features.html#prerunspawner">PreRunSpawner</a><ul> -<li class="toctree-l3"><a class="reference internal" href="simulator/spawner_features.html#spawning-on-roads-lanes-and-ranges">Spawning on roads, lanes and ranges</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/spawner_features.html#traffic-parameters">Traffic parameters</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/spawner_features.html#stochastics">Stochastics</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="simulator/spawner_features.html#runtimespawner">RuntimeSpawner</a><ul> -<li class="toctree-l3"><a class="reference internal" href="simulator/spawner_features.html#id2">Spawning on roads, lanes and ranges</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/spawner_features.html#id8">Traffic parameters</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/spawner_features.html#id11">Stochastics</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a><ul> -<li class="toctree-l2"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#inputs-ssp-structure">Inputs / SSP Structure</a><ul> -<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#system-structure-package-ssp">System Structure Package SSP</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#ssd-system-structure-definition">SSD - System Structure Definition</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#implementation">Implementation</a><ul> -<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#parsing">Parsing</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#osi-connectors">OSI Connectors</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#object-structure">Object Structure</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#ssp-and-op">SSP and <strong>openPASS</strong></a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#limits">Limits</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#outputs">Outputs</a><ul> -<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#folderstructure">FolderStructure</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#writemessageparameters">WriteMessageParameters</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="simulator/world_osi.html">World_OSI</a><ul> -<li class="toctree-l2"><a class="reference internal" href="simulator/world_osi.html#sampling-of-world-geometries">Sampling of World Geometries</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/world_osi.html#localization">Localization</a><ul> -<li class="toctree-l3"><a class="reference internal" href="simulator/world_osi.html#basics">Basics</a></li> -<li class="toctree-l3"><a class="reference internal" href="simulator/world_osi.html#localization-sequence">Localization Sequence</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="simulator/world_osi.html#traffic-signs-road-markings-and-trafficlights">Traffic Signs, Road Markings and TrafficLights</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/world_osi.html#lane-markings">Lane Markings</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulator/world_osi.html#getobstruction">GetObstruction</a></li> -</ul> -</li> -</ul> -</div> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../user_guide/sim_user_guide/components/vehicle.html" class="btn btn-neutral float-left" title="VehicleComponents" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="simulator/agent_components.html" class="btn btn-neutral float-right" title="Agent Components" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Simulator — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Agent Components" href="simulator/agent_components.html" /> + <link rel="prev" title="VehicleComponents" href="../user_guide/sim_user_guide/components/vehicle.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Simulator</a><ul> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html">Agent Components</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/coordinate_systems.html">Coordinate Systems</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/event_detector.html">EventDetector</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/simulation.html">Simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/spawner_features.html">Spawner Features</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/world_osi.html">World_OSI</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Simulator</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/advanced_topics/20_simulator_advanced.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="simulator"> +<span id="simulator-advanced"></span><h1>Simulator<a class="headerlink" href="#simulator" title="Link to this heading">ïƒ</a></h1> +<div class="toctree-wrapper compound"> +<ul> +<li class="toctree-l1"><a class="reference internal" href="simulator/agent_components.html">Agent Components</a><ul> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#action-longitudinaldriver">Action_LongitudinalDriver</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#action-secondarydriver">Action_SecondaryDriver</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#agentupdater">AgentUpdater</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#algorithm-lateral">Algorithm_Lateral</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#algorithm-longitudinal">Algorithm_Longitudinal</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#algorithmcar2xsender">AlgorithmCar2XSender</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#dynamics-collision">Dynamics_Collision</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#dynamics-scenario">Dynamics_Scenario</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#dynamics-regulardriving">Dynamics_RegularDriving</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#limiteraccelerationvehiclecomponents">LimiterAccelerationVehicleComponents</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#openscenarioactions">OpenScenarioActions</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#parameters-vehicle">Parameters_Vehicle</a><ul> +<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#vehicle-model-related-parameters">Vehicle model related parameters</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#powertrain-related-parameters">Powertrain related parameters</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#steering-related-parameters">Steering related parameters</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#sensor-driver">Sensor_Driver</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#sensor-osi">Sensor_OSI</a><ul> +<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#sensorgeometric2d">SensorGeometric2D</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#function">Function</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#cases">Cases</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#visual-obstruction">Visual Obstruction</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#sensorfusionosi">SensorFusionOSI</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#signalprioritizer">SignalPrioritizer</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/agent_components.html#componentcontroller">ComponentController</a><ul> +<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#overview">Overview</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#state-handling-inside-vehicle-component">State handling inside Vehicle Component</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/agent_components.html#used-signals">Used signals</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="simulator/coordinate_systems.html">Coordinate Systems</a><ul> +<li class="toctree-l2"><a class="reference internal" href="simulator/coordinate_systems.html#world-coordinate-system">World Coordinate System</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/coordinate_systems.html#road-coordinate-system">Road Coordinate System</a><ul> +<li class="toctree-l3"><a class="reference internal" href="simulator/coordinate_systems.html#agent-coordinate-system">Agent Coordinate System</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="simulator/coordinate_systems.html#sensor-coordinate-system">Sensor Coordinate System</a><ul> +<li class="toctree-l3"><a class="reference internal" href="simulator/coordinate_systems.html#conversions-between-sensordata-coordinate-systems">Conversions between SensorData coordinate systems</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="simulator/event_detector.html">EventDetector</a><ul> +<li class="toctree-l2"><a class="reference internal" href="simulator/event_detector.html#collisiondetector">CollisionDetector</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="simulator/scenario_actions.html">Mapping of OpenSCENARIO Actions</a><ul> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#acquirepositionaction">AcquirePositionAction</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#assignrouteaction">AssignRouteAction</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#customcommandaction">CustomCommandAction</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#followtrajectoryaction">FollowTrajectoryAction</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#lanechangeaction">LaneChangeAction</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#lightstateaction">LightStateAction</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#speedaction">SpeedAction</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#teleportaction">TeleportAction</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#trafficsignalaction">TrafficSignalAction</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#trafficsignalstateaction">TrafficSignalStateAction</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#trafficsinkaction">TrafficSinkAction</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#visibilityaction">VisibilityAction</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/scenario_actions.html#id1">LightStateAction</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="simulator/simulation.html">Simulation</a><ul> +<li class="toctree-l2"><a class="reference internal" href="simulator/simulation.html#command-line-arguments">Command Line Arguments</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/simulation.html#scheduler">Scheduler</a><ul> +<li class="toctree-l3"><a class="reference internal" href="simulator/simulation.html#executing-phases">Executing phases</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/simulation.html#task-type-description">Task type description</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/simulation.html#task-priorities">Task priorities</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="simulator/spawner_features.html">Spawner Features</a><ul> +<li class="toctree-l2"><a class="reference internal" href="simulator/spawner_features.html#prerunspawner">PreRunSpawner</a><ul> +<li class="toctree-l3"><a class="reference internal" href="simulator/spawner_features.html#spawning-on-roads-lanes-and-ranges">Spawning on roads, lanes and ranges</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/spawner_features.html#traffic-parameters">Traffic parameters</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/spawner_features.html#stochastics">Stochastics</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="simulator/spawner_features.html#runtimespawner">RuntimeSpawner</a><ul> +<li class="toctree-l3"><a class="reference internal" href="simulator/spawner_features.html#id2">Spawning on roads, lanes and ranges</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/spawner_features.html#id8">Traffic parameters</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/spawner_features.html#id11">Stochastics</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a><ul> +<li class="toctree-l2"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#inputs-ssp-structure">Inputs / SSP Structure</a><ul> +<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#system-structure-package-ssp">System Structure Package SSP</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#ssd-system-structure-definition">SSD - System Structure Definition</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#implementation">Implementation</a><ul> +<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#parsing">Parsing</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#osi-connectors">OSI Connectors</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#object-structure">Object Structure</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#ssp-and-op">SSP and <strong>openPASS</strong></a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#limits">Limits</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#outputs">Outputs</a><ul> +<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#folderstructure">FolderStructure</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/system_structure_and_parameterization_%28SSP%29.html#writemessageparameters">WriteMessageParameters</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="simulator/world_osi.html">World_OSI</a><ul> +<li class="toctree-l2"><a class="reference internal" href="simulator/world_osi.html#sampling-of-world-geometries">Sampling of World Geometries</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/world_osi.html#localization">Localization</a><ul> +<li class="toctree-l3"><a class="reference internal" href="simulator/world_osi.html#basics">Basics</a></li> +<li class="toctree-l3"><a class="reference internal" href="simulator/world_osi.html#localization-sequence">Localization Sequence</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="simulator/world_osi.html#traffic-signs-road-markings-and-trafficlights">Traffic Signs, Road Markings and TrafficLights</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/world_osi.html#lane-markings">Lane Markings</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulator/world_osi.html#getobstruction">GetObstruction</a></li> +</ul> +</li> +</ul> +</div> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../user_guide/sim_user_guide/components/vehicle.html" class="btn btn-neutral float-left" title="VehicleComponents" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="simulator/agent_components.html" class="btn btn-neutral float-right" title="Agent Components" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/advanced_topics/30_testing.html b/content/html/advanced_topics/30_testing.html index 3c1262f958feb6557c80c2e556a4b5f287c64fe9..bd371fab6fbebcc8c32e7de39f08df36366dacc1 100644 --- a/content/html/advanced_topics/30_testing.html +++ b/content/html/advanced_topics/30_testing.html @@ -1,551 +1,541 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>EndToEnd Test Framework — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="IDE Support" href="../developer_information/10_ide_support.html" /> - <link rel="prev" title="World_OSI" href="simulator/world_osi.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">EndToEnd Test Framework</a><ul> -<li class="toctree-l2"><a class="reference internal" href="#prerequisites">Prerequisites</a></li> -<li class="toctree-l2"><a class="reference internal" href="#execution">Execution</a></li> -<li class="toctree-l2"><a class="reference internal" href="#parallel-execution">Parallel Execution</a></li> -<li class="toctree-l2"><a class="reference internal" href="#test-configuration">Test Configuration</a></li> -<li class="toctree-l2"><a class="reference internal" href="#querying-results">Querying Results</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#basic-syntax">Basic Syntax</a></li> -<li class="toctree-l3"><a class="reference internal" href="#using-events-in-filter">Using Events in Filter</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#event-payload">Event Payload</a></li> -<li class="toctree-l4"><a class="reference internal" href="#query-example">Query Example</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#using-openscenario-events">Using OpenSCENARIO Events</a></li> -<li class="toctree-l3"><a class="reference internal" href="#querying-transitions">Querying Transitions</a></li> -<li class="toctree-l3"><a class="reference internal" href="#querying-spawning-time">Querying Spawning Time</a></li> -<li class="toctree-l3"><a class="reference internal" href="#explicit-datatypes">Explicit Datatypes</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="#dev-notes">Dev Notes</a></li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">EndToEnd Test Framework</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/advanced_topics/30_testing.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="endtoend-test-framework"> -<span id="testing-endtoend"></span><h1>EndToEnd Test Framework<a class="headerlink" href="#endtoend-test-framework" title="Link to this heading">ïƒ</a></h1> -<p><strong>pyOpenPASS</strong></p> -<p>This tool acts as configurable executor for complete sets of configs for the openPASS simulation. -The test framework is located at <code class="docutils literal notranslate"><span class="pre">sim/tests/endToEndTests/pyOpenPASS</span></code>.</p> -<section id="prerequisites"> -<h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Link to this heading">ïƒ</a></h2> -<p>The test framework is based on Python and some additional Python modules. -Installation of the required modules can be accomplished using <code class="docutils literal notranslate"><span class="pre">pip</span></code>. -Please refer to the file <code class="docutils literal notranslate"><span class="pre">requirements.txt</span></code> located in the source code repository at <code class="docutils literal notranslate"><span class="pre">sim/tests/endToEndTests/pyOpenPASS</span></code> for a list of dependencies. -See <a class="reference internal" href="../installation_guide/30_install_openpass.html#download-and-install-openpass"><span class="std std-ref">Installing openPASS</span></a> for instructions on repository checkout.</p> -<p>The requirements file can be directly passed to <code class="docutils literal notranslate"><span class="pre">pip</span></code> for installation:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">r</span> <span class="n">requirements</span><span class="o">.</span><span class="n">txt</span> -</pre></div> -</div> -<p>(executed from <code class="docutils literal notranslate"><span class="pre">sim/tests/endToEndTests/pyOpenPASS</span></code>)</p> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p><img alt="win_only" src="../_images/win_only.png" /> -<code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span></code> will try to fetch precompiled packages by default. -If it is unable to locate a binary package for the current environment, packages will be compiled from source. -This step fails for the <code class="docutils literal notranslate"><span class="pre">numpy</span></code> package when being built from the MSYS2 environment. -Thus, it is recommended to set up a native Windows Python environment and perform the installation there. -To force the usage of a specific Python environment, the variable <code class="docutils literal notranslate"><span class="pre">Python3_EXECUTABLE</span></code> can be set to the indended Python interpreter executable during cmake configuration (see <a class="reference internal" href="../installation_guide/30_install_openpass.html#download-and-install-openpass"><span class="std std-ref">Installing openPASS</span></a>).</p> -</div> -</section> -<section id="execution"> -<h2>Execution<a class="headerlink" href="#execution" title="Link to this heading">ïƒ</a></h2> -<p>As pyOpenPASS is a pytest plugin (and is not yet a standalone-plugin) it will be automatically executed, when pytest finds its entry-point <code class="docutils literal notranslate"><span class="pre">conftest.py</span></code> (= local-pytest-plugin) next to files named <code class="docutils literal notranslate"><span class="pre">test_*.json</span></code>. -So test files must be copied into the pyOpenPASS directory before execution.</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pytest -<span class="w"> </span>--simulation<span class="o">=</span>SIMULATION_EXE<span class="w"> </span><span class="c1"># path to simulation executable, e.g. /openPASS/bin/opSimulation</span> -<span class="w"> </span>--mutual<span class="o">=</span>MUTUAL_RESOURCES_PATH<span class="w"> </span><span class="c1"># path to mutual config files for all runs, e.g. /openPASS/bin/examples/common</span> -<span class="w"> </span>--resources<span class="o">=</span>RESOURCES_PATH<span class="w"> </span><span class="c1"># path from where configs are retrieved - override common files if necessary</span> -<span class="w"> </span>--report-path<span class="o">=</span>REPORT_PATH<span class="w"> </span><span class="c1"># path to where the report shall be stored</span> -<span class="w"> </span>--allowed-warnings<span class="o">=</span>ALLOWED_WARNINGS_PATH<span class="w"> </span><span class="c1"># path to file which contains the list of warnings that can be ignored</span> -<span class="w"> </span>TEST_FILE<span class="w"> </span><span class="c1"># file under test, named `test_*.json`</span> -</pre></div> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>You can use additional pytest arguments, such as <code class="docutils literal notranslate"><span class="pre">-v</span></code> for verbose output, <code class="docutils literal notranslate"><span class="pre">--collect-only</span></code> for listing the available tests and so on (see <a class="reference external" href="https://docs.pytest.org">https://docs.pytest.org</a>).</p> -</div> -<p>In addition pyOpenPASS supports the following optional arguments:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>--configs-path<span class="o">=</span>INPUT<span class="w"> </span><span class="c1"># path for providing configs during testing</span> ---results-path<span class="o">=</span>OUTPUT<span class="w"> </span><span class="c1"># path for collecting test results during testing</span> ---artifacts-path<span class="o">=</span>ARTIFACTS<span class="w"> </span><span class="c1"># path for collecting test artifacts during testing</span> -</pre></div> -</div> -<p>For each specified <code class="docutils literal notranslate"><span class="pre">test_*.json</span></code> a corresponding <code class="docutils literal notranslate"><span class="pre">test_*.html</span></code> will be generated.</p> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p><img alt="win_only" src="../_images/win_only.png" /> -Depending on the names of the config file sets and test cases configured in the JSON file, the resulting collection of artifacts might conflict with a specific path length limit. -This limit can be increased by setting the Windows Registry key variable <code class="docutils literal notranslate"><span class="pre">LongPathsEnabled</span></code> to 1. -The variable can be accessed at <code class="docutils literal notranslate"><span class="pre">Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled</span></code>. -Please note that the limit cannot be disabled completely. -Resulting error messages are often misleading (e.g. <code class="docutils literal notranslate"><span class="pre">File</span> <span class="pre">not</span> <span class="pre">found</span></code> where the file actually exists or <code class="docutils literal notranslate"><span class="pre">shutil.py</span> <span class="pre">2</span></code>, etc.).</p> -</div> -</section> -<section id="parallel-execution"> -<h2>Parallel Execution<a class="headerlink" href="#parallel-execution" title="Link to this heading">ïƒ</a></h2> -<p>If <code class="docutils literal notranslate"><span class="pre">pytest-xdist</span></code> is installed, pyOpenPASS can be invoked with the addition parameter <code class="docutils literal notranslate"><span class="pre">-n</span> <span class="pre">auto</span></code> (or similar - see <a class="reference external" href="https://pypi.org/project/pytest-xdist/">https://pypi.org/project/pytest-xdist/</a>). -In this case, pyOpenPASS will execute the given tests on <code class="docutils literal notranslate"><span class="pre">n</span></code> parallel worker.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Running tests in parallel will result in the report displaying results in an arbitrary order, with only the executed tests listed (disabled tests will not be shown).</p> -</div> -</section> -<section id="test-configuration"> -<h2>Test Configuration<a class="headerlink" href="#test-configuration" title="Link to this heading">ïƒ</a></h2> -<p>Test configuration is done by the test-json file, individually for each test. -Depending on the users choice, three different tests runners are executed:</p> -<ol class="arabic simple"> -<li><p>Determinism: Check executability of configs + Determinism test (<em>1 x n</em> vs <em>n x 1</em> tests).</p></li> -<li><p>Parameterized: Check executability of configs using different parameters.</p></li> -<li><p>Query: Execute config and check for specific results in the output of the simulator, given one or more queries.</p></li> -</ol> -<p>In general, the test-json splits into two sections:</p> -<ol class="arabic simple"> -<li><p>Definition of <code class="docutils literal notranslate"><span class="pre">Configuration</span> <span class="pre">Sets</span></code></p></li> -<li><p>Definition of <code class="docutils literal notranslate"><span class="pre">Tests</span></code> using the <code class="docutils literal notranslate"><span class="pre">Configuration</span> <span class="pre">Sets</span></code> or a single <code class="docutils literal notranslate"><span class="pre">Config</span></code> directly</p></li> -</ol> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Whenever possible, pyOpenPASS re-uses the results to speed up result analysis.</p> -</div> -<div class="highlight-js notranslate"><div class="highlight"><pre><span></span><span class="p">{</span> -<span class="w"> </span><span class="s2">"config_sets"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="w"> </span><span class="s2">"Config_Set_1"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="c1">// user defined name</span> -<span class="w"> </span><span class="s2">"Config_Folder_1"</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"Config_Folder_2"</span> -<span class="w"> </span><span class="p">],</span> -<span class="w"> </span><span class="s2">"Config_Set_2"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="w"> </span><span class="s2">"Config_Folder_2"</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"Config_Folder_3"</span> -<span class="w"> </span><span class="p">],</span> -<span class="w"> </span><span class="s2">"Config_Set_3"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="w"> </span><span class="s2">"Config_Folder_4"</span> -<span class="w"> </span><span class="p">]</span> -<span class="w"> </span><span class="p">},</span> -<span class="w"> </span><span class="s2">"tests"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="w"> </span><span class="s2">"Execution and Determinism"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="w"> </span><span class="s2">"config_sets"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="w"> </span><span class="s2">"Config_Set_1"</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"Config_Set_2"</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"Config_Set_3"</span> -<span class="w"> </span><span class="p">],</span> -<span class="w"> </span><span class="s2">"determinism"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w"> </span><span class="c1">// ACTIVATES DETERMINISM</span> -<span class="w"> </span><span class="s2">"duration"</span><span class="o">:</span><span class="w"> </span><span class="mf">30</span><span class="p">,</span><span class="w"> </span><span class="c1">// how long shall be simulated</span> -<span class="w"> </span><span class="s2">"invocations"</span><span class="o">:</span><span class="w"> </span><span class="mf">3</span><span class="w"> </span><span class="c1">// compare 1x3 run with 3x1 runs</span> -<span class="w"> </span><span class="p">},</span> -<span class="w"> </span><span class="s2">"Parameterization"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="w"> </span><span class="s2">"config_sets"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="w"> </span><span class="s2">"Config_Set_2"</span> -<span class="w"> </span><span class="p">],</span> -<span class="w"> </span><span class="s2">"parameterization"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// ACTIVATES PARAMETERIZATION</span> -<span class="w"> </span><span class="s2">"file"</span><span class="o">:</span><span class="w"> </span><span class="s2">"systemConfigFmu.xml"</span><span class="p">,</span><span class="w"> </span><span class="c1">// Name of config, which shall be parameterized</span> -<span class="w"> </span><span class="s2">"xpath"</span><span class="o">:</span><span class="w"> </span><span class="s2">"//value[../id='FmuPath']"</span><span class="p">,</span><span class="w"> </span><span class="c1">// XPath, where values needs to be replaced</span> -<span class="w"> </span><span class="s2">"values"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="c1">// Values, which shall be set</span> -<span class="w"> </span><span class="s2">"resources/FMU1_StaticFMU.fmu"</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"resources/FMU2_StaticFMU.fmu"</span> -<span class="w"> </span><span class="p">],</span> -<span class="w"> </span><span class="s2">"duration"</span><span class="o">:</span><span class="w"> </span><span class="mf">10</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"invocations"</span><span class="o">:</span><span class="w"> </span><span class="mf">100</span> -<span class="w"> </span><span class="p">},</span> -<span class="w"> </span><span class="s2">"Querying"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="w"> </span><span class="s2">"config"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Config_Folder_2"</span><span class="w"> </span><span class="c1">// single config specification</span> -<span class="w"> </span><span class="p">],</span> -<span class="w"> </span><span class="s2">"queries"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="c1">// ACTIVATES QUERYING</span> -<span class="w"> </span><span class="s2">"count(AgentId | AgentId == 0 and Timestep == 10000 and VelocityEgo >= 30) == 1"</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"mean(VelocityEgo | AgentId != 0) > 30"</span> -<span class="w"> </span><span class="p">],</span> -<span class="w"> </span><span class="s2">"success_rate"</span><span class="o">:</span><span class="w"> </span><span class="mf">0.8</span><span class="p">,</span><span class="w"> </span><span class="c1">// 80% of 60 invocations needs to pass</span> -<span class="w"> </span><span class="s2">"duration"</span><span class="o">:</span><span class="w"> </span><span class="mf">10</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"invocations"</span><span class="o">:</span><span class="w"> </span><span class="mf">60</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"ram_limit"</span><span class="o">:</span><span class="w"> </span><span class="mf">512.0</span><span class="p">,</span><span class="w"> </span><span class="c1">// Optional RAM Limit in MB, measured for each invocation</span> -<span class="w"> </span><span class="s2">"description"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Optional description"</span> -<span class="w"> </span><span class="p">}</span> -<span class="w"> </span><span class="p">}</span> -<span class="w"> </span><span class="p">}</span> -<span class="p">}</span> -</pre></div> -</div> -<ul> -<li><p>If the <cite>success_rate</cite> is specified, its values must be between 0 and 1.</p></li> -<li><p>It is also possible to define a range of success (e.g. for excluding 100%) by using the following syntax:</p> -<div class="highlight-js notranslate"><div class="highlight"><pre><span></span><span class="s2">"success_rate"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="mf">0.8</span><span class="p">,</span><span class="w"> </span><span class="mf">0.99</span><span class="p">]</span><span class="w"> </span><span class="c1">// 80% to 99% need to pass</span> -</pre></div> -</div> -</li> -<li><p>If the <cite>ram_limit</cite> is specified, its values are measured in MB</p></li> -</ul> -</section> -<section id="querying-results"> -<h2>Querying Results<a class="headerlink" href="#querying-results" title="Link to this heading">ïƒ</a></h2> -<p>Internally, pyOpenPASS uses DataFrames to aggregate data. -This data is then accessed using a custom query language described below. -Before the query is executed, pyOpenPASS gathers data from the relevant simulation output folder.</p> -<p>Typically, the following files are expected:</p> -<ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>: This file is the source for events (see below for more details).</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">Cyclics_Run<run_id>.csv</span></code>: Here, <code class="docutils literal notranslate"><span class="pre"><run_id></span></code> is a placeholder for the number of the corresponding invocation. -This file contains cyclic data, such as x-position, y-position, or velocity.</p></li> -</ul> -<p>OpenPASS also allows for independent output of controllers in subfolders, where these subfolders follow the pattern <code class="docutils literal notranslate"><span class="pre">run<run_id>/entity<entity_id>/<controller></span></code>. -If pyOpenPASS discovers such subfolders, it will look recursilvy for CSV files within them. -For every CSV file, pyOpenPASS checks if the belowstanding conditions are satisfied. -If they are, the file is merged with the corresponding <cite>Cyclics_Run<runId>.csv</cite> file.</p> -<ul> -<li><p>The file must contain a column named <code class="docutils literal notranslate"><span class="pre">Timestep</span></code>.</p></li> -<li><p>Every other column must start with the corresponding entity id, matching the entity id in the subfolder name. -For example, <code class="docutils literal notranslate"><span class="pre">00:DetectedObjects</span></code>.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>If a column name follows the pattern <code class="docutils literal notranslate"><span class="pre"><id>:<Prefix>.<ColumnName></span></code> it will be shortened to <code class="docutils literal notranslate"><span class="pre"><ColumnName></span></code>.</p> -</div> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>pyOpenPASS does not take care of columns with duplicate names. -If such columns are found, duplicate names will be suffixed (see <a class="reference external" href="https://pandas.pydata.org/pandas-docs/version/1.3.1/user_guide/merging.html#database-style-dataframe-or-named-series-joining-merging">here</a> for details).</p> -</div> -</li> -</ul> -<p>When merging succeeds, columns from the additional controllers can be queried like every other column in the queries described below.</p> -<section id="basic-syntax"> -<h3>Basic Syntax<a class="headerlink" href="#basic-syntax" title="Link to this heading">ïƒ</a></h3> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">aggregate</span><span class="p">]([</span><span class="n">column</span><span class="p">]</span> <span class="o">|</span> <span class="p">[</span><span class="nb">filter</span><span class="p">])</span> <span class="p">[</span><span class="n">operator</span><span class="p">]</span> <span class="p">[</span><span class="n">value</span><span class="p">]</span> -</pre></div> -</div> -<ul> -<li><p>Aggregate: -Everything pandas supports on dataframes, such as <a class="reference external" href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.count.html?highlight=count#pandas.DataFrame.count">pandas.DataFrame.count</a>, min, max, mean</p></li> -<li><p>Column: -A column on which the aggregate should operate.</p> -<p>Columns are generally given by the simulation outputs cyclic columns, such as <code class="docutils literal notranslate"><span class="pre">PositionRoute</span></code>. -In addition the following columns are available:</p> -<ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">AgentId</span></code></p></li> -<li><p>From the tag <code class="docutils literal notranslate"><span class="pre">Agents</span></code> (see <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>):</p> -<ul> -<li><p><code class="docutils literal notranslate"><span class="pre">AgentTypeGroupName</span></code></p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">AgentTypeName</span></code></p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">VehicleModelType</span></code></p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">DriverProfileName</span></code></p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">AgentType</span></code></p></li> -</ul> -</li> -<li><p>Everything from the tag <code class="docutils literal notranslate"><span class="pre">RunStatistics</span></code> (see <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>), which is currently:</p> -<ul> -<li><p><code class="docutils literal notranslate"><span class="pre">RandomSeed</span></code></p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">VisibilityDistance</span></code></p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">StopReason</span></code></p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">StopTime</span></code></p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">EgoAccident</span></code></p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">TotalDistanceTraveled</span></code></p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">EgoDistanceTraveled</span></code></p></li> -</ul> -</li> -</ul> -</li> -<li><p>Filter: -A filter based on <a class="reference external" href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.filter.html?highlight=filter#pandas.DataFrame.filter">pandas.DataFrame.filter</a> syntax using the available columns.</p></li> -<li><p>Operator: -A comparison operator from the following list: ==, <=, >=, <, >, !=, ~= (approximate). -The approximate operator allows <code class="docutils literal notranslate"><span class="pre">1*e-6</span> <span class="pre">x</span> <span class="pre">value</span></code> as maximum deviation from value.</p></li> -<li><p>Value: -A number</p></li> -</ul> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>In seldom cases, the filter can be skipped, e.g. when securing that no agent has been spawned: <code class="docutils literal notranslate"><span class="pre">count(AgentId)</span> <span class="pre">==</span> <span class="pre">0</span></code>.</p> -</div> -<p><strong>Example</strong></p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">count</span><span class="p">(</span><span class="n">AgentId</span> <span class="o">|</span> <span class="n">PositionRoute</span> <span class="o">>=</span> <span class="mi">800</span> <span class="ow">and</span> <span class="n">Lane</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">3</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span> -</pre></div> -</div> -</section> -<section id="using-events-in-filter"> -<h3>Using Events in Filter<a class="headerlink" href="#using-events-in-filter" title="Link to this heading">ïƒ</a></h3> -<p>In order to query for a specific event, use <code class="docutils literal notranslate"><span class="pre">#(EVENT)</span></code> within the filter syntax.</p> -<p><strong>Example</strong></p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">count</span><span class="p">(</span><span class="n">AgentId</span> <span class="o">|</span> <span class="n">PositionRoute</span> <span class="o">>=</span> <span class="mi">800</span> <span class="ow">and</span> <span class="c1">#(Collision) == True) == 0</span> -</pre></div> -</div> -<section id="event-payload"> -<h4>Event Payload<a class="headerlink" href="#event-payload" title="Link to this heading">ïƒ</a></h4> -<p>Each event is associated with a set of triggering entity ids, affected entity ids, and arbitrary key/value pairs (please refer to the openPASS documentation for details). -This information is transformed into a “per agent†scope.</p> -<p>In the following the <code class="docutils literal notranslate"><span class="pre">Collision</span></code> event is taken as example.</p> -<p><strong>TriggeringEntity</strong></p> -<p>All agents, flagged as triggering become <code class="docutils literal notranslate"><span class="pre">IsTriggering</span></code></p> -<p>Query: <code class="docutils literal notranslate"><span class="pre">#(Collision):IsTriggering</span> <span class="pre">==</span> <span class="pre">True</span></code></p> -<p><strong>AffectedEntity</strong></p> -<p>All agents, flagged as affected become <code class="docutils literal notranslate"><span class="pre">IsAffected</span></code></p> -<p>Query: <code class="docutils literal notranslate"><span class="pre">#(Collision):IsAffected</span> <span class="pre">==</span> <span class="pre">True</span></code></p> -<p><strong>Key/Value Pairs</strong></p> -<p>If an event publishes additional payload with the key <code class="docutils literal notranslate"><span class="pre">XYZ</span></code>, it will can be queried by <code class="docutils literal notranslate"><span class="pre">#(EVENT):XYZ</span></code>.</p> -<p>Query: <code class="docutils literal notranslate"><span class="pre">#(Collision):WithAgent</span></code></p> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>Keys carrying the event name as prefix, such as in <code class="docutils literal notranslate"><span class="pre">#(Collision):CollisionWithAgent</span></code>, will be stripped to <code class="docutils literal notranslate"><span class="pre">Collision:WithAgent</span></code></p> -</div> -</section> -<section id="query-example"> -<h4>Query Example<a class="headerlink" href="#query-example" title="Link to this heading">ïƒ</a></h4> -<div class="line-block"> -<div class="line"><em>No agent should collide with agent 0:</em></div> -<div class="line"><code class="docutils literal notranslate"><span class="pre">count(AgentId</span> <span class="pre">|</span> <span class="pre">AgentId</span> <span class="pre">==</span> <span class="pre">0</span> <span class="pre">and</span> <span class="pre">#(Collision):WithAgent</span> <span class="pre">==</span> <span class="pre">1)</span> <span class="pre">==</span> <span class="pre">0</span></code></div> -</div> -</section> -</section> -<section id="using-openscenario-events"> -<h3>Using OpenSCENARIO Events<a class="headerlink" href="#using-openscenario-events" title="Link to this heading">ïƒ</a></h3> -<p>OpenSCENARIO events are processed in the same manner as regular events (see above).</p> -<p>This allows to query for occurrences of OpenSCENARIO events with a name specified within the following xpath: -<code class="docutils literal notranslate"><span class="pre">OpenSCENARIO/Story/Act/Sequence/Maneuver/Event/@name</span></code></p> -<p><strong>OpenSCENARIO Event Definition</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Story</span><span class="w"> </span><span class="na">name=</span><span class="s">"TheStory"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Act</span><span class="w"> </span><span class="na">name=</span><span class="s">"TheAct"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Sequence</span><span class="w"> </span><span class="na">name=</span><span class="s">"TheSequence"</span><span class="w"> </span><span class="na">numberOfExecutions=</span><span class="s">"1"</span><span class="nt">></span> -<span class="w"> </span>... -<span class="w"> </span><span class="nt"><Maneuver</span><span class="w"> </span><span class="na">name=</span><span class="s">"TheManeuver"</span><span class="nt">></span> -<span class="w"> </span>... -<span class="w"> </span><span class="cm"><!-- example name "ttc_event"--></span> -<span class="w"> </span><span class="nt"><Event</span><span class="w"> </span><span class="na">name=</span><span class="s">"ttc_event"</span><span class="w"> </span><span class="na">priority=</span><span class="s">"overwrite"</span><span class="nt">></span> -<span class="w"> </span>... -<span class="w"> </span><span class="nt"><StartConditions></span> -<span class="w"> </span><span class="nt"><ConditionGroup></span> -<span class="w"> </span><span class="nt"><Condition</span><span class="w"> </span><span class="na">name=</span><span class="s">"Conditional"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ByEntity></span> -<span class="w"> </span>... -<span class="w"> </span><span class="nt"><EntityCondition></span> -<span class="w"> </span><span class="nt"><TimeToCollision></span> -<span class="w"> </span>... -<span class="w"> </span><span class="nt"></TimeToCollision></span> -<span class="w"> </span><span class="nt"></EntityCondition></span> -<span class="w"> </span><span class="nt"></ByEntity></span> -<span class="w"> </span><span class="nt"></Condition></span> -<span class="w"> </span><span class="nt"></ConditionGroup></span> -<span class="w"> </span><span class="nt"></StartConditions></span> -<span class="w"> </span><span class="nt"></Event></span> -<span class="w"> </span>... -<span class="w"> </span><span class="nt"></Maneuver></span> -<span class="w"> </span><span class="nt"></Sequence></span> -<span class="w"> </span><span class="nt"></Act></span> -<span class="nt"></Story></span> -</pre></div> -</div> -<p><strong>Example openPASS Output</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Event</span><span class="w"> </span><span class="na">Time=</span><span class="s">"0"</span><span class="w"> </span><span class="na">Source=</span><span class="s">"OpenSCENARIO"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"TheStory/TheAct/TheSequence/TheManeuver/ttc_event"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><TriggeringEntities/></span> -<span class="w"> </span><span class="nt"><AffectedEntities></span> -<span class="w"> </span><span class="nt"><Entity</span><span class="w"> </span><span class="na">Id=</span><span class="s">"1"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></AffectedEntities></span> -<span class="w"> </span><span class="nt"><Parameters/></span> -<span class="nt"></Event></span> -</pre></div> -</div> -<p><strong>Query</strong></p> -<p><code class="docutils literal notranslate"><span class="pre">count(AgentId</span> <span class="pre">|</span> <span class="pre">#(TheStory/TheAct/TheSequence/TheManeuver/ttc_event)</span> <span class="pre">==</span> <span class="pre">True</span> <span class="pre">)</span> <span class="pre">></span> <span class="pre">0</span></code></p> -</section> -<section id="querying-transitions"> -<h3>Querying Transitions<a class="headerlink" href="#querying-transitions" title="Link to this heading">ïƒ</a></h3> -<p>Sometimes it is necessary to check, whether a transition happened, such as counting agents, passing a certain position.</p> -<p>This can be achieved by shifting individual columns by <code class="docutils literal notranslate"><span class="pre">N</span></code> time steps.</p> -<p><strong>Time Shift Syntax</strong></p> -<p><code class="docutils literal notranslate"><span class="pre">Column-Shift</span></code> => <code class="docutils literal notranslate"><span class="pre">PositionRoute-1</span></code> means PositionRoute at one time step earlier</p> -<p><strong>Example Use Case</strong></p> -<p>Counting agents passing <code class="docutils literal notranslate"><span class="pre">PositionRoute</span> <span class="pre">==</span> <span class="pre">350</span></code> on <code class="docutils literal notranslate"><span class="pre">LaneId</span> <span class="pre">==</span> <span class="pre">-1</span></code></p> -<p><strong>Query</strong></p> -<p><code class="docutils literal notranslate"><span class="pre">count(AgentId</span> <span class="pre">|</span> <span class="pre">LaneId</span> <span class="pre">==</span> <span class="pre">-1</span> <span class="pre">and</span> <span class="pre">PositionRoute-1</span> <span class="pre"><</span> <span class="pre">350</span> <span class="pre">and</span> <span class="pre">PositionRoute</span> <span class="pre">>=</span> <span class="pre">350</span> <span class="pre">)</span> <span class="pre">></span> <span class="pre">0</span></code></p> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>In seldom cases, a result column happens to have a name like <code class="docutils literal notranslate"><span class="pre">Name-N</span></code> where <code class="docutils literal notranslate"><span class="pre">N</span></code> is an integer. -Querying this column would automatically apply time shifting (default behavior) leading to a parsing error. -In such cases, escape the column name with single quotes (e.g. <code class="docutils literal notranslate"><span class="pre">'Name-1'</span></code>).</p> -</div> -</section> -<section id="querying-spawning-time"> -<h3>Querying Spawning Time<a class="headerlink" href="#querying-spawning-time" title="Link to this heading">ïƒ</a></h3> -<p>Queries can be restricted to the spawning time:</p> -<p><strong>Query</strong></p> -<p><code class="docutils literal notranslate"><span class="pre">count(AgentId</span> <span class="pre">|</span> <span class="pre">Timestep</span> <span class="pre">==</span> <span class="pre">{first}</span> <span class="pre">and</span> <span class="pre">Velocity</span> <span class="pre"><</span> <span class="pre">30)</span> <span class="pre">==</span> <span class="pre">0</span></code></p> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p><code class="docutils literal notranslate"><span class="pre">Timestep</span> <span class="pre">==</span> <span class="pre">{first}</span></code> must be the first parameter in the filter and can only succeeded by <code class="docutils literal notranslate"><span class="pre">and</span></code>.</p> -</div> -</section> -<section id="explicit-datatypes"> -<h3>Explicit Datatypes<a class="headerlink" href="#explicit-datatypes" title="Link to this heading">ïƒ</a></h3> -<p>pyOpenPASS uses Pandas DataFrames internally. -Pandas will try to detect the datatype of the individual cyclic columns automatically. -This won’t fit the user’s intention in some cases, such as when the column holds a semicolon separated list of integers but every list contains just one element. -In such cases it is impossible to distinguish between integers and strings based on the data.</p> -<p>For this reason, datatypes can be specified explicitly along with a query:</p> -<div class="highlight-js notranslate"><div class="highlight"><pre><span></span><span class="s2">"queries"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">],</span> -<span class="s2">"datatypes"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="w"> </span><span class="s2">"Sensor0_DetectedAgents"</span><span class="o">:</span><span class="w"> </span><span class="s2">"str"</span><span class="w"> </span><span class="c1">// string with "missing value" support</span> -<span class="p">}</span> -</pre></div> -</div> -</section> -</section> -<section id="dev-notes"> -<h2>Dev Notes<a class="headerlink" href="#dev-notes" title="Link to this heading">ïƒ</a></h2> -<p>If you want to execute/debug pyOpenPASS in VS-Code, you can add a configuration, similar to the one shown below, to the <code class="docutils literal notranslate"><span class="pre">launch.json</span></code> after opening pyOpenPASS as VS-Code project:</p> -<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="nt">"configurations"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span> -<span class="p">{</span> -<span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pytest-openpass"</span><span class="p">,</span> -<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"python"</span><span class="p">,</span> -<span class="w"> </span><span class="nt">"module"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pytest"</span><span class="p">,</span> -<span class="w"> </span><span class="nt">"args"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span> -<span class="w"> </span><span class="s2">"--simulation=/openPASS/bin/core/opSimulation"</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"--mutual=/openPASS/bin/core/examples/OSS/Common/"</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"--resources=/openPASS/bin/core/examples/OSS/Configurations/"</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"--report-path=/openPASS/reports"</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"--allowed-warnings=/repo/sim/tests/endToEndTests/allowed_end_to_end_warnings.txt"</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"test_end_to_end.json"</span><span class="p">,</span> -<span class="w"> </span><span class="s2">"-v"</span><span class="p">],</span> -<span class="w"> </span><span class="nt">"request"</span><span class="p">:</span><span class="w"> </span><span class="s2">"launch"</span><span class="p">,</span> -<span class="w"> </span><span class="nt">"console"</span><span class="p">:</span><span class="w"> </span><span class="s2">"integratedTerminal"</span> -<span class="p">}]</span> -</pre></div> -</div> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="simulator/world_osi.html" class="btn btn-neutral float-left" title="World_OSI" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="../developer_information/10_ide_support.html" class="btn btn-neutral float-right" title="IDE Support" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>EndToEnd Test Framework — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="IDE Support" href="../developer_information/10_ide_support.html" /> + <link rel="prev" title="World_OSI" href="simulator/world_osi.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">EndToEnd Test Framework</a><ul> +<li class="toctree-l2"><a class="reference internal" href="#prerequisites">Prerequisites</a></li> +<li class="toctree-l2"><a class="reference internal" href="#execution">Execution</a></li> +<li class="toctree-l2"><a class="reference internal" href="#parallel-execution">Parallel Execution</a></li> +<li class="toctree-l2"><a class="reference internal" href="#test-configuration">Test Configuration</a></li> +<li class="toctree-l2"><a class="reference internal" href="#querying-results">Querying Results</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#basic-syntax">Basic Syntax</a></li> +<li class="toctree-l3"><a class="reference internal" href="#using-events-in-filter">Using Events in Filter</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#event-payload">Event Payload</a></li> +<li class="toctree-l4"><a class="reference internal" href="#query-example">Query Example</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#using-openscenario-events">Using OpenSCENARIO Events</a></li> +<li class="toctree-l3"><a class="reference internal" href="#querying-transitions">Querying Transitions</a></li> +<li class="toctree-l3"><a class="reference internal" href="#querying-spawning-time">Querying Spawning Time</a></li> +<li class="toctree-l3"><a class="reference internal" href="#explicit-datatypes">Explicit Datatypes</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="#dev-notes">Dev Notes</a></li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">EndToEnd Test Framework</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/advanced_topics/30_testing.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="endtoend-test-framework"> +<span id="testing-endtoend"></span><h1>EndToEnd Test Framework<a class="headerlink" href="#endtoend-test-framework" title="Link to this heading">ïƒ</a></h1> +<p><strong>pyOpenPASS</strong></p> +<p>This tool acts as configurable executor for complete sets of configs for the openPASS simulation. +The test framework is located at <code class="docutils literal notranslate"><span class="pre">sim/tests/endToEndTests/pyOpenPASS</span></code>.</p> +<section id="prerequisites"> +<h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Link to this heading">ïƒ</a></h2> +<p>The test framework is based on Python and some additional Python modules. +Installation of the required modules can be accomplished using <code class="docutils literal notranslate"><span class="pre">pip</span></code>. +Please refer to the file <code class="docutils literal notranslate"><span class="pre">requirements.txt</span></code> located in the source code repository at <code class="docutils literal notranslate"><span class="pre">sim/tests/endToEndTests/pyOpenPASS</span></code> for a list of dependencies. +See <a class="reference internal" href="../installation_guide/30_install_openpass.html#download-and-install-openpass"><span class="std std-ref">Installing openPASS</span></a> for instructions on repository checkout.</p> +<p>The requirements file can be directly passed to <code class="docutils literal notranslate"><span class="pre">pip</span></code> for installation:</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">r</span> <span class="n">requirements</span><span class="o">.</span><span class="n">txt</span> +</pre></div> +</div> +<p>(executed from <code class="docutils literal notranslate"><span class="pre">sim/tests/endToEndTests/pyOpenPASS</span></code>)</p> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p><img alt="win_only" src="../_images/win_only.png" /> +<code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span></code> will try to fetch precompiled packages by default. +If it is unable to locate a binary package for the current environment, packages will be compiled from source. +This step fails for the <code class="docutils literal notranslate"><span class="pre">numpy</span></code> package when being built from the MSYS2 environment. +Thus, it is recommended to set up a native Windows Python environment and perform the installation there. +To force the usage of a specific Python environment, the variable <code class="docutils literal notranslate"><span class="pre">Python3_EXECUTABLE</span></code> can be set to the indended Python interpreter executable during cmake configuration (see <a class="reference internal" href="../installation_guide/30_install_openpass.html#download-and-install-openpass"><span class="std std-ref">Installing openPASS</span></a>).</p> +</div> +</section> +<section id="execution"> +<h2>Execution<a class="headerlink" href="#execution" title="Link to this heading">ïƒ</a></h2> +<p>As pyOpenPASS is a pytest plugin (and is not yet a standalone-plugin) it will be automatically executed, when pytest finds its entry-point <code class="docutils literal notranslate"><span class="pre">conftest.py</span></code> (= local-pytest-plugin) next to files named <code class="docutils literal notranslate"><span class="pre">test_*.json</span></code>. +So test files must be copied into the pyOpenPASS directory before execution.</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pytest +<span class="w"> </span>--simulation<span class="o">=</span>SIMULATION_EXE<span class="w"> </span><span class="c1"># path to simulation executable, e.g. /openPASS/bin/opSimulation</span> +<span class="w"> </span>--mutual<span class="o">=</span>MUTUAL_RESOURCES_PATH<span class="w"> </span><span class="c1"># path to mutual config files for all runs, e.g. /openPASS/bin/examples/common</span> +<span class="w"> </span>--resources<span class="o">=</span>RESOURCES_PATH<span class="w"> </span><span class="c1"># path from where configs are retrieved - override common files if necessary</span> +<span class="w"> </span>--report-path<span class="o">=</span>REPORT_PATH<span class="w"> </span><span class="c1"># path to where the report shall be stored</span> +<span class="w"> </span>--allowed-warnings<span class="o">=</span>ALLOWED_WARNINGS_PATH<span class="w"> </span><span class="c1"># path to file which contains the list of warnings that can be ignored</span> +<span class="w"> </span>TEST_FILE<span class="w"> </span><span class="c1"># file under test, named `test_*.json`</span> +</pre></div> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>You can use additional pytest arguments, such as <code class="docutils literal notranslate"><span class="pre">-v</span></code> for verbose output, <code class="docutils literal notranslate"><span class="pre">--collect-only</span></code> for listing the available tests and so on (see <a class="reference external" href="https://docs.pytest.org">https://docs.pytest.org</a>).</p> +</div> +<p>In addition pyOpenPASS supports the following optional arguments:</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>--configs-path<span class="o">=</span>INPUT<span class="w"> </span><span class="c1"># path for providing configs during testing</span> +--results-path<span class="o">=</span>OUTPUT<span class="w"> </span><span class="c1"># path for collecting test results during testing</span> +--artifacts-path<span class="o">=</span>ARTIFACTS<span class="w"> </span><span class="c1"># path for collecting test artifacts during testing</span> +</pre></div> +</div> +<p>For each specified <code class="docutils literal notranslate"><span class="pre">test_*.json</span></code> a corresponding <code class="docutils literal notranslate"><span class="pre">test_*.html</span></code> will be generated.</p> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p><img alt="win_only" src="../_images/win_only.png" /> +Depending on the names of the config file sets and test cases configured in the JSON file, the resulting collection of artifacts might conflict with a specific path length limit. +This limit can be increased by setting the Windows Registry key variable <code class="docutils literal notranslate"><span class="pre">LongPathsEnabled</span></code> to 1. +The variable can be accessed at <code class="docutils literal notranslate"><span class="pre">Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled</span></code>. +Please note that the limit cannot be disabled completely. +Resulting error messages are often misleading (e.g. <code class="docutils literal notranslate"><span class="pre">File</span> <span class="pre">not</span> <span class="pre">found</span></code> where the file actually exists or <code class="docutils literal notranslate"><span class="pre">shutil.py</span> <span class="pre">2</span></code>, etc.).</p> +</div> +</section> +<section id="parallel-execution"> +<h2>Parallel Execution<a class="headerlink" href="#parallel-execution" title="Link to this heading">ïƒ</a></h2> +<p>If <code class="docutils literal notranslate"><span class="pre">pytest-xdist</span></code> is installed, pyOpenPASS can be invoked with the addition parameter <code class="docutils literal notranslate"><span class="pre">-n</span> <span class="pre">auto</span></code> (or similar - see <a class="reference external" href="https://pypi.org/project/pytest-xdist/">https://pypi.org/project/pytest-xdist/</a>). +In this case, pyOpenPASS will execute the given tests on <code class="docutils literal notranslate"><span class="pre">n</span></code> parallel worker.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Running tests in parallel will result in the report displaying results in an arbitrary order, with only the executed tests listed (disabled tests will not be shown).</p> +</div> +</section> +<section id="test-configuration"> +<h2>Test Configuration<a class="headerlink" href="#test-configuration" title="Link to this heading">ïƒ</a></h2> +<p>Test configuration is done by the test-json file, individually for each test. +Depending on the users choice, three different tests runners are executed:</p> +<ol class="arabic simple"> +<li><p>Determinism: Check executability of configs + Determinism test (<em>1 x n</em> vs <em>n x 1</em> tests).</p></li> +<li><p>Parameterized: Check executability of configs using different parameters.</p></li> +<li><p>Query: Execute config and check for specific results in the output of the simulator, given one or more queries.</p></li> +</ol> +<p>In general, the test-json splits into two sections:</p> +<ol class="arabic simple"> +<li><p>Definition of <code class="docutils literal notranslate"><span class="pre">Configuration</span> <span class="pre">Sets</span></code></p></li> +<li><p>Definition of <code class="docutils literal notranslate"><span class="pre">Tests</span></code> using the <code class="docutils literal notranslate"><span class="pre">Configuration</span> <span class="pre">Sets</span></code> or a single <code class="docutils literal notranslate"><span class="pre">Config</span></code> directly</p></li> +</ol> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Whenever possible, pyOpenPASS re-uses the results to speed up result analysis.</p> +</div> +<div class="highlight-js notranslate"><div class="highlight"><pre><span></span><span class="p">{</span> +<span class="w"> </span><span class="s2">"config_sets"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="s2">"Config_Set_1"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="c1">// user defined name</span> +<span class="w"> </span><span class="s2">"Config_Folder_1"</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"Config_Folder_2"</span> +<span class="w"> </span><span class="p">],</span> +<span class="w"> </span><span class="s2">"Config_Set_2"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="w"> </span><span class="s2">"Config_Folder_2"</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"Config_Folder_3"</span> +<span class="w"> </span><span class="p">],</span> +<span class="w"> </span><span class="s2">"Config_Set_3"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="w"> </span><span class="s2">"Config_Folder_4"</span> +<span class="w"> </span><span class="p">]</span> +<span class="w"> </span><span class="p">},</span> +<span class="w"> </span><span class="s2">"tests"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="s2">"Execution and Determinism"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="s2">"config_sets"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="w"> </span><span class="s2">"Config_Set_1"</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"Config_Set_2"</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"Config_Set_3"</span> +<span class="w"> </span><span class="p">],</span> +<span class="w"> </span><span class="s2">"determinism"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span><span class="w"> </span><span class="c1">// ACTIVATES DETERMINISM</span> +<span class="w"> </span><span class="s2">"duration"</span><span class="o">:</span><span class="w"> </span><span class="mf">30</span><span class="p">,</span><span class="w"> </span><span class="c1">// how long shall be simulated</span> +<span class="w"> </span><span class="s2">"invocations"</span><span class="o">:</span><span class="w"> </span><span class="mf">3</span><span class="w"> </span><span class="c1">// compare 1x3 run with 3x1 runs</span> +<span class="w"> </span><span class="p">},</span> +<span class="w"> </span><span class="s2">"Parameterization"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="s2">"config_sets"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="w"> </span><span class="s2">"Config_Set_2"</span> +<span class="w"> </span><span class="p">],</span> +<span class="w"> </span><span class="s2">"parameterization"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// ACTIVATES PARAMETERIZATION</span> +<span class="w"> </span><span class="s2">"file"</span><span class="o">:</span><span class="w"> </span><span class="s2">"systemConfigFmu.xml"</span><span class="p">,</span><span class="w"> </span><span class="c1">// Name of config, which shall be parameterized</span> +<span class="w"> </span><span class="s2">"xpath"</span><span class="o">:</span><span class="w"> </span><span class="s2">"//value[../id='FmuPath']"</span><span class="p">,</span><span class="w"> </span><span class="c1">// XPath, where values needs to be replaced</span> +<span class="w"> </span><span class="s2">"values"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="c1">// Values, which shall be set</span> +<span class="w"> </span><span class="s2">"resources/FMU1_StaticFMU.fmu"</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"resources/FMU2_StaticFMU.fmu"</span> +<span class="w"> </span><span class="p">],</span> +<span class="w"> </span><span class="s2">"duration"</span><span class="o">:</span><span class="w"> </span><span class="mf">10</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"invocations"</span><span class="o">:</span><span class="w"> </span><span class="mf">100</span> +<span class="w"> </span><span class="p">},</span> +<span class="w"> </span><span class="s2">"Querying"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="s2">"config"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Config_Folder_2"</span><span class="w"> </span><span class="c1">// single config specification</span> +<span class="w"> </span><span class="p">],</span> +<span class="w"> </span><span class="s2">"queries"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="c1">// ACTIVATES QUERYING</span> +<span class="w"> </span><span class="s2">"count(AgentId | AgentId == 0 and Timestep == 10000 and VelocityEgo >= 30) == 1"</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"mean(VelocityEgo | AgentId != 0) > 30"</span> +<span class="w"> </span><span class="p">],</span> +<span class="w"> </span><span class="s2">"success_rate"</span><span class="o">:</span><span class="w"> </span><span class="mf">0.8</span><span class="p">,</span><span class="w"> </span><span class="c1">// 80% of 60 invocations needs to pass</span> +<span class="w"> </span><span class="s2">"duration"</span><span class="o">:</span><span class="w"> </span><span class="mf">10</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"invocations"</span><span class="o">:</span><span class="w"> </span><span class="mf">60</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"ram_limit"</span><span class="o">:</span><span class="w"> </span><span class="mf">512.0</span><span class="p">,</span><span class="w"> </span><span class="c1">// Optional RAM Limit in MB, measured for each invocation</span> +<span class="w"> </span><span class="s2">"description"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Optional description"</span> +<span class="w"> </span><span class="p">}</span> +<span class="w"> </span><span class="p">}</span> +<span class="w"> </span><span class="p">}</span> +<span class="p">}</span> +</pre></div> +</div> +<ul> +<li><p>If the <cite>success_rate</cite> is specified, its values must be between 0 and 1.</p></li> +<li><p>It is also possible to define a range of success (e.g. for excluding 100%) by using the following syntax:</p> +<div class="highlight-js notranslate"><div class="highlight"><pre><span></span><span class="s2">"success_rate"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="mf">0.8</span><span class="p">,</span><span class="w"> </span><span class="mf">0.99</span><span class="p">]</span><span class="w"> </span><span class="c1">// 80% to 99% need to pass</span> +</pre></div> +</div> +</li> +<li><p>If the <cite>ram_limit</cite> is specified, its values are measured in MB</p></li> +</ul> +</section> +<section id="querying-results"> +<h2>Querying Results<a class="headerlink" href="#querying-results" title="Link to this heading">ïƒ</a></h2> +<p>Internally, pyOpenPASS uses DataFrames to aggregate data. +This data is then accessed using a custom query language described below. +Before the query is executed, pyOpenPASS gathers data from the relevant simulation output folder.</p> +<p>Typically, the following files are expected:</p> +<ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>: This file is the source for events (see below for more details).</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">Cyclics_Run<run_id>.csv</span></code>: Here, <code class="docutils literal notranslate"><span class="pre"><run_id></span></code> is a placeholder for the number of the corresponding invocation. +This file contains cyclic data, such as x-position, y-position, or velocity.</p></li> +</ul> +<p>OpenPASS also allows for independent output of controllers in subfolders, where these subfolders follow the pattern <code class="docutils literal notranslate"><span class="pre">run<run_id>/entity<entity_id>/<controller></span></code>. +If pyOpenPASS discovers such subfolders, it will look recursilvy for CSV files within them. +For every CSV file, pyOpenPASS checks if the belowstanding conditions are satisfied. +If they are, the file is merged with the corresponding <cite>Cyclics_Run<runId>.csv</cite> file.</p> +<ul> +<li><p>The file must contain a column named <code class="docutils literal notranslate"><span class="pre">Timestep</span></code>.</p></li> +<li><p>Every other column must start with the corresponding entity id, matching the entity id in the subfolder name. +For example, <code class="docutils literal notranslate"><span class="pre">00:DetectedObjects</span></code>.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>If a column name follows the pattern <code class="docutils literal notranslate"><span class="pre"><id>:<Prefix>.<ColumnName></span></code> it will be shortened to <code class="docutils literal notranslate"><span class="pre"><ColumnName></span></code>.</p> +</div> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>pyOpenPASS does not take care of columns with duplicate names. +If such columns are found, duplicate names will be suffixed (see <a class="reference external" href="https://pandas.pydata.org/pandas-docs/version/2.2.2/user_guide/merging.html#database-style-dataframe-or-named-series-joining-merging">here</a> for details).</p> +</div> +</li> +</ul> +<p>When merging succeeds, columns from the additional controllers can be queried like every other column in the queries described below.</p> +<section id="basic-syntax"> +<h3>Basic Syntax<a class="headerlink" href="#basic-syntax" title="Link to this heading">ïƒ</a></h3> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="n">aggregate</span><span class="p">]([</span><span class="n">column</span><span class="p">]</span> <span class="o">|</span> <span class="p">[</span><span class="nb">filter</span><span class="p">])</span> <span class="p">[</span><span class="n">operator</span><span class="p">]</span> <span class="p">[</span><span class="n">value</span><span class="p">]</span> +</pre></div> +</div> +<ul> +<li><p>Aggregate: +Everything pandas supports on dataframes, such as <a class="reference external" href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.count.html?highlight=count#pandas.DataFrame.count">pandas.DataFrame.count</a>, min, max, mean</p></li> +<li><p>Column: +A column on which the aggregate should operate.</p> +<p>Columns are generally given by the simulation outputs cyclic columns, such as <code class="docutils literal notranslate"><span class="pre">PositionRoute</span></code>. +In addition the following columns are available:</p> +<ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">AgentId</span></code></p></li> +<li><p>From the tag <code class="docutils literal notranslate"><span class="pre">Agents</span></code> (see <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>):</p> +<ul> +<li><p><code class="docutils literal notranslate"><span class="pre">AgentTypeGroupName</span></code></p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">AgentTypeName</span></code></p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">VehicleModelType</span></code></p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">DriverProfileName</span></code></p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">AgentType</span></code></p></li> +</ul> +</li> +</ul> +</li> +<li><p>Filter: +A filter based on <a class="reference external" href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.filter.html?highlight=filter#pandas.DataFrame.filter">pandas.DataFrame.filter</a> syntax using the available columns.</p></li> +<li><p>Operator: +A comparison operator from the following list: ==, <=, >=, <, >, !=, ~= (approximate). +The approximate operator allows <code class="docutils literal notranslate"><span class="pre">1*e-6</span> <span class="pre">x</span> <span class="pre">value</span></code> as maximum deviation from value.</p></li> +<li><p>Value: +A number</p></li> +</ul> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>In seldom cases, the filter can be skipped, e.g. when securing that no agent has been spawned: <code class="docutils literal notranslate"><span class="pre">count(AgentId)</span> <span class="pre">==</span> <span class="pre">0</span></code>.</p> +</div> +<p><strong>Example</strong></p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">count</span><span class="p">(</span><span class="n">AgentId</span> <span class="o">|</span> <span class="n">PositionRoute</span> <span class="o">>=</span> <span class="mi">800</span> <span class="ow">and</span> <span class="n">Lane</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">3</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span> +</pre></div> +</div> +</section> +<section id="using-events-in-filter"> +<h3>Using Events in Filter<a class="headerlink" href="#using-events-in-filter" title="Link to this heading">ïƒ</a></h3> +<p>In order to query for a specific event, use <code class="docutils literal notranslate"><span class="pre">#(EVENT)</span></code> within the filter syntax.</p> +<p><strong>Example</strong></p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">count</span><span class="p">(</span><span class="n">AgentId</span> <span class="o">|</span> <span class="n">PositionRoute</span> <span class="o">>=</span> <span class="mi">800</span> <span class="ow">and</span> <span class="c1">#(Collision) == True) == 0</span> +</pre></div> +</div> +<section id="event-payload"> +<h4>Event Payload<a class="headerlink" href="#event-payload" title="Link to this heading">ïƒ</a></h4> +<p>Each event is associated with a set of triggering entity ids, affected entity ids, and arbitrary key/value pairs (please refer to the openPASS documentation for details). +This information is transformed into a “per agent†scope.</p> +<p>In the following the <code class="docutils literal notranslate"><span class="pre">Collision</span></code> event is taken as example.</p> +<p><strong>TriggeringEntity</strong></p> +<p>All agents, flagged as triggering become <code class="docutils literal notranslate"><span class="pre">IsTriggering</span></code></p> +<p>Query: <code class="docutils literal notranslate"><span class="pre">#(Collision):IsTriggering</span> <span class="pre">==</span> <span class="pre">True</span></code></p> +<p><strong>AffectedEntity</strong></p> +<p>All agents, flagged as affected become <code class="docutils literal notranslate"><span class="pre">IsAffected</span></code></p> +<p>Query: <code class="docutils literal notranslate"><span class="pre">#(Collision):IsAffected</span> <span class="pre">==</span> <span class="pre">True</span></code></p> +<p><strong>Key/Value Pairs</strong></p> +<p>If an event publishes additional payload with the key <code class="docutils literal notranslate"><span class="pre">XYZ</span></code>, it will can be queried by <code class="docutils literal notranslate"><span class="pre">#(EVENT):XYZ</span></code>.</p> +<p>Query: <code class="docutils literal notranslate"><span class="pre">#(Collision):WithAgent</span></code></p> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>Keys carrying the event name as prefix, such as in <code class="docutils literal notranslate"><span class="pre">#(Collision):CollisionWithAgent</span></code>, will be stripped to <code class="docutils literal notranslate"><span class="pre">Collision:WithAgent</span></code></p> +</div> +</section> +<section id="query-example"> +<h4>Query Example<a class="headerlink" href="#query-example" title="Link to this heading">ïƒ</a></h4> +<div class="line-block"> +<div class="line"><em>No agent should collide with agent 0:</em></div> +<div class="line"><code class="docutils literal notranslate"><span class="pre">count(AgentId</span> <span class="pre">|</span> <span class="pre">AgentId</span> <span class="pre">==</span> <span class="pre">0</span> <span class="pre">and</span> <span class="pre">#(Collision):WithAgent</span> <span class="pre">==</span> <span class="pre">1)</span> <span class="pre">==</span> <span class="pre">0</span></code></div> +</div> +</section> +</section> +<section id="using-openscenario-events"> +<h3>Using OpenSCENARIO Events<a class="headerlink" href="#using-openscenario-events" title="Link to this heading">ïƒ</a></h3> +<p>OpenSCENARIO events are processed in the same manner as regular events (see above).</p> +<p>This allows to query for occurrences of OpenSCENARIO events with a name specified within the following xpath: +<code class="docutils literal notranslate"><span class="pre">OpenSCENARIO/Story/Act/Sequence/Maneuver/Event/@name</span></code></p> +<p><strong>OpenSCENARIO Event Definition</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Story</span><span class="w"> </span><span class="na">name=</span><span class="s">"TheStory"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Act</span><span class="w"> </span><span class="na">name=</span><span class="s">"TheAct"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Sequence</span><span class="w"> </span><span class="na">name=</span><span class="s">"TheSequence"</span><span class="w"> </span><span class="na">numberOfExecutions=</span><span class="s">"1"</span><span class="nt">></span> +<span class="w"> </span>... +<span class="w"> </span><span class="nt"><Maneuver</span><span class="w"> </span><span class="na">name=</span><span class="s">"TheManeuver"</span><span class="nt">></span> +<span class="w"> </span>... +<span class="w"> </span><span class="cm"><!-- example name "ttc_event"--></span> +<span class="w"> </span><span class="nt"><Event</span><span class="w"> </span><span class="na">name=</span><span class="s">"ttc_event"</span><span class="w"> </span><span class="na">priority=</span><span class="s">"overwrite"</span><span class="nt">></span> +<span class="w"> </span>... +<span class="w"> </span><span class="nt"><StartConditions></span> +<span class="w"> </span><span class="nt"><ConditionGroup></span> +<span class="w"> </span><span class="nt"><Condition</span><span class="w"> </span><span class="na">name=</span><span class="s">"Conditional"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ByEntity></span> +<span class="w"> </span>... +<span class="w"> </span><span class="nt"><EntityCondition></span> +<span class="w"> </span><span class="nt"><TimeToCollision></span> +<span class="w"> </span>... +<span class="w"> </span><span class="nt"></TimeToCollision></span> +<span class="w"> </span><span class="nt"></EntityCondition></span> +<span class="w"> </span><span class="nt"></ByEntity></span> +<span class="w"> </span><span class="nt"></Condition></span> +<span class="w"> </span><span class="nt"></ConditionGroup></span> +<span class="w"> </span><span class="nt"></StartConditions></span> +<span class="w"> </span><span class="nt"></Event></span> +<span class="w"> </span>... +<span class="w"> </span><span class="nt"></Maneuver></span> +<span class="w"> </span><span class="nt"></Sequence></span> +<span class="w"> </span><span class="nt"></Act></span> +<span class="nt"></Story></span> +</pre></div> +</div> +<p><strong>Example openPASS Output</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Event</span><span class="w"> </span><span class="na">Time=</span><span class="s">"0"</span><span class="w"> </span><span class="na">Source=</span><span class="s">"OpenSCENARIO"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"TheStory/TheAct/TheSequence/TheManeuver/ttc_event"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><TriggeringEntities/></span> +<span class="w"> </span><span class="nt"><AffectedEntities></span> +<span class="w"> </span><span class="nt"><Entity</span><span class="w"> </span><span class="na">Id=</span><span class="s">"1"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></AffectedEntities></span> +<span class="w"> </span><span class="nt"><Parameters/></span> +<span class="nt"></Event></span> +</pre></div> +</div> +<p><strong>Query</strong></p> +<p><code class="docutils literal notranslate"><span class="pre">count(AgentId</span> <span class="pre">|</span> <span class="pre">#(TheStory/TheAct/TheSequence/TheManeuver/ttc_event)</span> <span class="pre">==</span> <span class="pre">True</span> <span class="pre">)</span> <span class="pre">></span> <span class="pre">0</span></code></p> +</section> +<section id="querying-transitions"> +<h3>Querying Transitions<a class="headerlink" href="#querying-transitions" title="Link to this heading">ïƒ</a></h3> +<p>Sometimes it is necessary to check, whether a transition happened, such as counting agents, passing a certain position.</p> +<p>This can be achieved by shifting individual columns by <code class="docutils literal notranslate"><span class="pre">N</span></code> time steps.</p> +<p><strong>Time Shift Syntax</strong></p> +<p><code class="docutils literal notranslate"><span class="pre">Column-Shift</span></code> => <code class="docutils literal notranslate"><span class="pre">PositionRoute-1</span></code> means PositionRoute at one time step earlier</p> +<p><strong>Example Use Case</strong></p> +<p>Counting agents passing <code class="docutils literal notranslate"><span class="pre">PositionRoute</span> <span class="pre">==</span> <span class="pre">350</span></code> on <code class="docutils literal notranslate"><span class="pre">LaneId</span> <span class="pre">==</span> <span class="pre">-1</span></code></p> +<p><strong>Query</strong></p> +<p><code class="docutils literal notranslate"><span class="pre">count(AgentId</span> <span class="pre">|</span> <span class="pre">LaneId</span> <span class="pre">==</span> <span class="pre">-1</span> <span class="pre">and</span> <span class="pre">PositionRoute-1</span> <span class="pre"><</span> <span class="pre">350</span> <span class="pre">and</span> <span class="pre">PositionRoute</span> <span class="pre">>=</span> <span class="pre">350</span> <span class="pre">)</span> <span class="pre">></span> <span class="pre">0</span></code></p> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>In seldom cases, a result column happens to have a name like <code class="docutils literal notranslate"><span class="pre">Name-N</span></code> where <code class="docutils literal notranslate"><span class="pre">N</span></code> is an integer. +Querying this column would automatically apply time shifting (default behavior) leading to a parsing error. +In such cases, escape the column name with single quotes (e.g. <code class="docutils literal notranslate"><span class="pre">'Name-1'</span></code>).</p> +</div> +</section> +<section id="querying-spawning-time"> +<h3>Querying Spawning Time<a class="headerlink" href="#querying-spawning-time" title="Link to this heading">ïƒ</a></h3> +<p>Queries can be restricted to the spawning time:</p> +<p><strong>Query</strong></p> +<p><code class="docutils literal notranslate"><span class="pre">count(AgentId</span> <span class="pre">|</span> <span class="pre">Timestep</span> <span class="pre">==</span> <span class="pre">{first}</span> <span class="pre">and</span> <span class="pre">Velocity</span> <span class="pre"><</span> <span class="pre">30)</span> <span class="pre">==</span> <span class="pre">0</span></code></p> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p><code class="docutils literal notranslate"><span class="pre">Timestep</span> <span class="pre">==</span> <span class="pre">{first}</span></code> must be the first parameter in the filter and can only succeeded by <code class="docutils literal notranslate"><span class="pre">and</span></code>.</p> +</div> +</section> +<section id="explicit-datatypes"> +<h3>Explicit Datatypes<a class="headerlink" href="#explicit-datatypes" title="Link to this heading">ïƒ</a></h3> +<p>pyOpenPASS uses Pandas DataFrames internally. +Pandas will try to detect the datatype of the individual cyclic columns automatically. +This won’t fit the user’s intention in some cases, such as when the column holds a semicolon separated list of integers but every list contains just one element. +In such cases it is impossible to distinguish between integers and strings based on the data.</p> +<p>For this reason, datatypes can be specified explicitly along with a query:</p> +<div class="highlight-js notranslate"><div class="highlight"><pre><span></span><span class="s2">"queries"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">],</span> +<span class="s2">"datatypes"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="s2">"Sensor0_DetectedAgents"</span><span class="o">:</span><span class="w"> </span><span class="s2">"str"</span><span class="w"> </span><span class="c1">// string with "missing value" support</span> +<span class="p">}</span> +</pre></div> +</div> +</section> +</section> +<section id="dev-notes"> +<h2>Dev Notes<a class="headerlink" href="#dev-notes" title="Link to this heading">ïƒ</a></h2> +<p>If you want to execute/debug pyOpenPASS in VS-Code, you can add a configuration, similar to the one shown below, to the <code class="docutils literal notranslate"><span class="pre">launch.json</span></code> after opening pyOpenPASS as VS-Code project:</p> +<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="nt">"configurations"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span> +<span class="p">{</span> +<span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pytest-openpass"</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"type"</span><span class="p">:</span><span class="w"> </span><span class="s2">"python"</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"module"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pytest"</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"args"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span> +<span class="w"> </span><span class="s2">"--simulation=/openPASS/bin/core/opSimulation"</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"--mutual=/openPASS/bin/core/examples/OSS/Common/"</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"--resources=/openPASS/bin/core/examples/OSS/Configurations/"</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"--report-path=/openPASS/reports"</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"--allowed-warnings=/repo/sim/tests/endToEndTests/allowed_end_to_end_warnings.txt"</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"test_end_to_end.json"</span><span class="p">,</span> +<span class="w"> </span><span class="s2">"-v"</span><span class="p">],</span> +<span class="w"> </span><span class="nt">"request"</span><span class="p">:</span><span class="w"> </span><span class="s2">"launch"</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"console"</span><span class="p">:</span><span class="w"> </span><span class="s2">"integratedTerminal"</span> +<span class="p">}]</span> +</pre></div> +</div> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="simulator/world_osi.html" class="btn btn-neutral float-left" title="World_OSI" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../developer_information/10_ide_support.html" class="btn btn-neutral float-right" title="IDE Support" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/advanced_topics/simulator/agent_components.html b/content/html/advanced_topics/simulator/agent_components.html index d4074ab53451b6272a3430a7f6d55808fe2dae7b..dcfa581a13ce5b5fb54645d5d02b683de29811c1 100644 --- a/content/html/advanced_topics/simulator/agent_components.html +++ b/content/html/advanced_topics/simulator/agent_components.html @@ -1,965 +1,966 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Agent Components — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Coordinate Systems" href="coordinate_systems.html" /> - <link rel="prev" title="Simulator" href="../20_simulator_advanced.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Agent Components</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#action-longitudinaldriver">Action_LongitudinalDriver</a></li> -<li class="toctree-l3"><a class="reference internal" href="#action-secondarydriver">Action_SecondaryDriver</a></li> -<li class="toctree-l3"><a class="reference internal" href="#agentupdater">AgentUpdater</a></li> -<li class="toctree-l3"><a class="reference internal" href="#algorithm-lateral">Algorithm_Lateral</a></li> -<li class="toctree-l3"><a class="reference internal" href="#algorithm-longitudinal">Algorithm_Longitudinal</a></li> -<li class="toctree-l3"><a class="reference internal" href="#algorithmcar2xsender">AlgorithmCar2XSender</a></li> -<li class="toctree-l3"><a class="reference internal" href="#dynamics-collision">Dynamics_Collision</a></li> -<li class="toctree-l3"><a class="reference internal" href="#dynamics-scenario">Dynamics_Scenario</a></li> -<li class="toctree-l3"><a class="reference internal" href="#dynamics-regulardriving">Dynamics_RegularDriving</a></li> -<li class="toctree-l3"><a class="reference internal" href="#limiteraccelerationvehiclecomponents">LimiterAccelerationVehicleComponents</a></li> -<li class="toctree-l3"><a class="reference internal" href="#openscenarioactions">OpenScenarioActions</a></li> -<li class="toctree-l3"><a class="reference internal" href="#parameters-vehicle">Parameters_Vehicle</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#vehicle-model-related-parameters">Vehicle model related parameters</a></li> -<li class="toctree-l4"><a class="reference internal" href="#powertrain-related-parameters">Powertrain related parameters</a></li> -<li class="toctree-l4"><a class="reference internal" href="#steering-related-parameters">Steering related parameters</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#sensor-driver">Sensor_Driver</a></li> -<li class="toctree-l3"><a class="reference internal" href="#sensor-osi">Sensor_OSI</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#sensorgeometric2d">SensorGeometric2D</a></li> -<li class="toctree-l4"><a class="reference internal" href="#function">Function</a></li> -<li class="toctree-l4"><a class="reference internal" href="#cases">Cases</a></li> -<li class="toctree-l4"><a class="reference internal" href="#visual-obstruction">Visual Obstruction</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#sensorfusionosi">SensorFusionOSI</a></li> -<li class="toctree-l3"><a class="reference internal" href="#signalprioritizer">SignalPrioritizer</a></li> -<li class="toctree-l3"><a class="reference internal" href="#componentcontroller">ComponentController</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#overview">Overview</a></li> -<li class="toctree-l4"><a class="reference internal" href="#state-handling-inside-vehicle-component">State handling inside Vehicle Component</a></li> -<li class="toctree-l4"><a class="reference internal" href="#used-signals">Used signals</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> -<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> -<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> -<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> - <li class="breadcrumb-item active">Agent Components</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/advanced_topics/simulator/agent_components.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="agent-components"> -<span id="agentcomponents"></span><h1>Agent Components<a class="headerlink" href="#agent-components" title="Link to this heading">ïƒ</a></h1> -<p>An agent in openPASS is composed of multiple modules, which are connected by corresponding signals. -As shown in the next figure, the modules can be roughly divided into the groups drivers, vehicle components, algorithms, dynamic modules, and prioritizers. -Thereby, modules can consist of several submodules, such as sensor (reading from an interface) and action (writing to an interface).</p> -<figure class="align-default" id="id2"> -<img alt="../../_images/DynamicsModules.png" src="../../_images/DynamicsModules.png" /> -<figcaption> -<p><span class="caption-text">Modules for longitudinal and lateral dynamics</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>By statistic means, based on corresponding probabilities defined in the <a class="reference internal" href="../../user_guide/configs/profilescatalog.html#profilescatalog"><span class="std std-ref">ProfilesCatalog</span></a>, each individual agent is composed from a superset of all possible (valid) combinations, which is defined by the <a class="reference internal" href="../../user_guide/configs/systemconfigblueprint.html#systemconfigblueprint"><span class="std std-ref">SystemConfigBlueprint</span></a>. -This config defines all available framework modules and agent modules and connects them by corresponding channels, which in turn have a specific signal type.</p> -<p>The next figure gives an exhaustive overview over the current superset:</p> -<figure class="align-default" id="id3"> -<span id="component-channel-communication"></span><img alt="../../_images/ComponentsChannelCommunicationDiagram.png" src="../../_images/ComponentsChannelCommunicationDiagram.png" /> -<figcaption> -<p><span class="caption-text">Components and channel communication</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p><a class="reference download internal" download="" href="../../_downloads/a4a21311d2dff77fb2513fe86367853b/ComponentsChannelCommunicationDiagram.drawio"><code class="xref download docutils literal notranslate"><span class="pre">./draw.io/ComponentsChannelCommunicationDiagram.drawio</span></code></a></p> -<p>Modules that can be parametrized by the user are explained in the <a class="reference internal" href="../../user_guide/sim_user_guide/20_components.html#simuserguide-components"><span class="std std-ref">Simulation User Guide</span></a>. -Therefor the following section only contains the components not listed in the user guide.</p> -<section id="action-longitudinaldriver"> -<h2>Action_LongitudinalDriver<a class="headerlink" href="#action-longitudinaldriver" title="Link to this heading">ïƒ</a></h2> -<p>Updates the agents pedal positions and gear. -The input for this module is prepared by the AlgorithmLongitudinal Module.</p> -</section> -<section id="action-secondarydriver"> -<h2>Action_SecondaryDriver<a class="headerlink" href="#action-secondarydriver" title="Link to this heading">ïƒ</a></h2> -<p>Updates the agents braking light, indicator, horn and all light switches (headlight, high beam, flasher). -The input for this module is prepared by the driver module.</p> -<p><strong>Overview of the module’s functionalities</strong></p> -<p>Action_SecondaryDriver gathers the secondary driving tasks and transfers them to output signals. Three graded driving tasks are defined and exampled as follows:</p> -<p><strong>Primary driving tasks:</strong> direct control of vehicle movements, like steering, pedal operation, shifting, etc.</p> -<p><strong>Secondary driving tasks:</strong> indirect control of vehicle movements, but supporting and complementing driving actions, like activation of indicator, horn, light, etc.</p> -<p><strong>Tertiary driving tasks:</strong> all the other activities, which are not related to vehicle control, like radio operation, etc.</p> -<p>Table list of the input paramemter:</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Variable</p></th> -<th class="head"><p>Description</p></th> -<th class="head"><p>Value</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>in_indicatorState</p></td> -<td><p>State of the indicator</p></td> -<td><p>left, center/off, right, warn</p></td> -</tr> -<tr class="row-odd"><td><p>in_hornSwitch</p></td> -<td><p>Horn activation</p></td> -<td><p>true/false</p></td> -</tr> -<tr class="row-even"><td><p>in_headLightSwitch</p></td> -<td><p>Light activation</p></td> -<td><p>true/false</p></td> -</tr> -<tr class="row-odd"><td><p>in_highBeamLightSwitch</p></td> -<td><p>High beam light activation</p></td> -<td><p>true/false</p></td> -</tr> -<tr class="row-even"><td><p>in_flasherSwitch</p></td> -<td><p>Flasher activation</p></td> -<td><p>true/false</p></td> -</tr> -</tbody> -</table> -</section> -<section id="agentupdater"> -<h2>AgentUpdater<a class="headerlink" href="#agentupdater" title="Link to this heading">ïƒ</a></h2> -<p>The AgentUpdater executes all Set-Methods of the agent dynamics after the DynamicsPrioritizer. This includes position, velocity, acceleration and rotation.</p> -</section> -<section id="algorithm-lateral"> -<h2>Algorithm_Lateral<a class="headerlink" href="#algorithm-lateral" title="Link to this heading">ïƒ</a></h2> -<p>This module converts the lateral input of the driver module into a steering wheel angle.</p> -<p>See <a class="reference internal" href="../../user_guide/sim_user_guide/components/algorithm_lateral.html#algorithm-lateral"><span class="std std-ref">Algorithm_Lateral</span></a>.</p> -</section> -<section id="algorithm-longitudinal"> -<h2>Algorithm_Longitudinal<a class="headerlink" href="#algorithm-longitudinal" title="Link to this heading">ïƒ</a></h2> -<p>This module converts the acceleration input of the driver module into pedal positions and gear.</p> -<p>See <a class="reference internal" href="../../user_guide/sim_user_guide/components/algorithm_longitudinal.html#algorithm-longitudinal"><span class="std std-ref">Algorithm_Longitudinal</span></a>.</p> -</section> -<section id="algorithmcar2xsender"> -<h2>AlgorithmCar2XSender<a class="headerlink" href="#algorithmcar2xsender" title="Link to this heading">ïƒ</a></h2> -<p>This module publishes the below mentioned parameters in each timestep via the RadioInterface provided by the World.</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Parameter</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>SignalStrength</p></td> -<td><p>Double</p></td> -<td><p>W</p></td> -<td><p>Singal strength of the Car2XSender</p></td> -</tr> -<tr class="row-odd"><td><p>SendPositionXEnabled</p></td> -<td><p>Boolean</p></td> -<td></td> -<td><p>If true, the x-coordinate of the agent is sent</p></td> -</tr> -<tr class="row-even"><td><p>SendPositionYEnabled</p></td> -<td><p>Boolean</p></td> -<td></td> -<td><p>If true, the y-coordinate of the agent is sent</p></td> -</tr> -<tr class="row-odd"><td><p>SendVelocityEnabled</p></td> -<td><p>Boolean</p></td> -<td></td> -<td><p>If true, the velocity of the agent is sent</p></td> -</tr> -<tr class="row-even"><td><p>SendAccelerationEnabled</p></td> -<td><p>Boolean</p></td> -<td></td> -<td><p>If true, the acceleration of the agent is sent</p></td> -</tr> -<tr class="row-odd"><td><p>SendYawEnabled</p></td> -<td><p>Boolean</p></td> -<td></td> -<td><p>If true, the yaw angle of the agent is sent</p></td> -</tr> -</tbody> -</table> -</section> -<section id="dynamics-collision"> -<h2>Dynamics_Collision<a class="headerlink" href="#dynamics-collision" title="Link to this heading">ïƒ</a></h2> -<p>If the number of collision partners of the agent is bigger than in the previous time step, the DynamicsCollision module calculates the collision. -Currently the collision is implemented fully inelastic, i.e. all agents will have the same velocity after the collision, while the momentum is conserved. -After the collision the agents slow down with a fixed deceleration until fully stopped.</p> -</section> -<section id="dynamics-scenario"> -<h2>Dynamics_Scenario<a class="headerlink" href="#dynamics-scenario" title="Link to this heading">ïƒ</a></h2> -<p>See <a class="reference internal" href="../../user_guide/sim_user_guide/components/dynamics_scenario.html#dynamics-scenario"><span class="std std-ref">Dynamics_Scenario</span></a>.</p> -</section> -<section id="dynamics-regulardriving"> -<h2>Dynamics_RegularDriving<a class="headerlink" href="#dynamics-regulardriving" title="Link to this heading">ïƒ</a></h2> -<p>The module takes care that the motion of the agent fit to the physical limitations, such as friction or maximum possible acceleration based on the current gear. -This module uses both the world friction and the vehicle model parameter friction. -Thereby it calculates the dynamics of the agents in every time step. -The currently covered dynamics are <em>Acceleration</em>, <em>Velocity</em>, and consequently <em>Position</em>, <em>Yaw angle</em> and <em>Yaw rate</em>. -The input for this module is the steering wheel angle and the new acceleration of the vehicle.</p> -<p>See <a class="reference internal" href="../../user_guide/sim_user_guide/components/dynamics_regular_driving.html#dynamics-regular-driving"><span class="std std-ref">Dynamics_RegularDriving</span></a>.</p> -</section> -<section id="limiteraccelerationvehiclecomponents"> -<h2>LimiterAccelerationVehicleComponents<a class="headerlink" href="#limiteraccelerationvehiclecomponents" title="Link to this heading">ïƒ</a></h2> -<p>This module limits the AccelerationSignal from the PrioritizerAccelerationVehicleComponents to the constraints given by the vehicle. The DynamicsTrajectoryFollower can then use this signal to calculate a trajectory.</p> -<p>The limit is calculated by <img class="math" src="../../_images/math/b8e905e7f040e6ca0fbde1ee281a2e9e6aedd42c.png" alt="a_{\text{lim}} = \frac {F_{\text{wheel}} - F_{\text{roll}} - F_{\text{air}}} {m_{\text{veh}}}"/>, where the symbols meanings are:</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Symbol</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p><img class="math" src="../../_images/math/dd0e45b188dfaf5d28adc454675a19893741bc0a.png" alt="a_{\text{lim}}"/></p></td> -<td><p>Resulting acceleration limit [m/s²]</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../_images/math/8c8c50e079ddcffe6c37e396fda0def610aec805.png" alt="F_{\text{wheel}}"/></p></td> -<td><p>Force at wheel (provided by drivetrain) [N]</p></td> -</tr> -<tr class="row-even"><td><p><img class="math" src="../../_images/math/4a145fae91306b362ee66953323a41d79fe3b613.png" alt="F_{\text{roll}}"/></p></td> -<td><p>Force resulting from rolling resistance [N]</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../_images/math/0522178ee32098e5415d0f7841ccc877c72d437b.png" alt="F_{\text{air}}"/></p></td> -<td><p>Force resulting from air drag [N]</p></td> -</tr> -<tr class="row-even"><td><p><img class="math" src="../../_images/math/1b9bc4cf466a822e0b8b1dc14b2787c6777cd1e8.png" alt="m_{\text{veh}}"/></p></td> -<td><p>Mass of the vehicle [kg]</p></td> -</tr> -</tbody> -</table> -<p>The components are calculated as follows:</p> -<p><strong>Driving force</strong></p> -<p><img class="math" src="../../_images/math/3b016a9e92ffb9f0909c19ff956ccc459864df7d.png" alt="F_{\text{wheel}} = \frac {T_{\text{engine}} \cdot r_{\text{axle}}} {r_{\text{wheel}}}"/></p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Symbol</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p><img class="math" src="../../_images/math/692e2731d37983a19fd2b39c8101cf15d882ff35.png" alt="T_{\text{engine}}"/></p></td> -<td><p>Resulting torque from drivetrain at current velocity (assuming best gearing selected) [Nm]</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../_images/math/c424381a86be77f896401b0158f6d5634461dd46.png" alt="r_{\text{axle}}"/></p></td> -<td><p>Axle transmission ratio [1]</p></td> -</tr> -<tr class="row-even"><td><p><img class="math" src="../../_images/math/a019586eb6dacb7b6496d07fefdbb7cc2395329c.png" alt="r_{\text{wheel}}"/></p></td> -<td><p>Static radius of the wheels [m]</p></td> -</tr> -</tbody> -</table> -<p>The engine torque <img class="math" src="../../_images/math/692e2731d37983a19fd2b39c8101cf15d882ff35.png" alt="T_{\text{engine}}"/> is calculated by a simple model, where the torque scales proportional with the current engine speed between 1350 and 5000 rpm, up to maximum engine torque. -From minimum engine speed up to 1350 rpm the torque scales proportional with the engine speed up to half the maximum torque. -From 5000 rpm up to maximum engine speed, the torque scales with 5000 / maxEngineSpeed, up to maximum torque.</p> -<p><strong>Rolling resistance</strong></p> -<p><img class="math" src="../../_images/math/d39bed6c7ca56cec556eaa950eb8054adbb6cf47.png" alt="F_{\text{roll}} = m_{\text{veh}} \cdot c_{\text{fric}} \cdot g"/></p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Symbol</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p><img class="math" src="../../_images/math/1b9bc4cf466a822e0b8b1dc14b2787c6777cd1e8.png" alt="m_{\text{veh}}"/></p></td> -<td><p>Mass of the vehicle [kg]</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../_images/math/44252e11753151d0fa1d037d8714c6f9a338302b.png" alt="c_{\text{fric}}"/></p></td> -<td><p>Rolling friction coefficient (constant 0.015) [1]</p></td> -</tr> -</tbody> -</table> -<p><strong>Air drag</strong></p> -<p><img class="math" src="../../_images/math/47d2f130adc5dfa8b9c3ae6852ad32b265775aa8.png" alt="F_{\text{air}} = \frac {\rho_{\text{air}}} {2} \cdot A_{\text{front}} \cdot c_w \cdot v^2"/></p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Symbol</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p><img class="math" src="../../_images/math/ec29cdf2a0665b368b2c84668db684adce27d0f6.png" alt="\rho_{\text{air}}"/></p></td> -<td><p>Density of air [kg/m³]</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../_images/math/25da9109e1ebaa46fe7b79f67874d66957079266.png" alt="A_{\text{front}}"/></p></td> -<td><p>Vehicle front surface area [m²]</p></td> -</tr> -<tr class="row-even"><td><p><img class="math" src="../../_images/math/7ebeba54263779b2dc506f0fad06feb2089eee73.png" alt="c_w"/></p></td> -<td><p>Drag coefficient [1]</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../_images/math/02d98909b5d6acd6a7ff927d4d42790bdd407d58.png" alt="v"/></p></td> -<td><p>Vehicle’s current velocity [m/s]</p></td> -</tr> -</tbody> -</table> -</section> -<section id="openscenarioactions"> -<h2>OpenScenarioActions<a class="headerlink" href="#openscenarioactions" title="Link to this heading">ïƒ</a></h2> -<p>As defined by <a class="reference external" href="https://www.asam.net/standards/detail/openscenario/">OpenSCENARIO</a>, OpenScenarioActions is the relaying module for:</p> -<ul class="simple"> -<li><p>Trajectory-actions</p></li> -<li><p>LaneChange-actions</p></li> -<li><p>UserDefined-actions.</p></li> -</ul> -<p>If a</p> -<ul class="simple"> -<li><p>TrajectoryManipulator</p></li> -<li><p>LaneChangeManipulator</p></li> -</ul> -<p>or a user defined manipulator</p> -<p>raises such an event for the specified agent, the module forwards it as signal to all interested module of the corresponding agent. The modules can than react on the signals content without time delay.</p> -</section> -<section id="parameters-vehicle"> -<span id="id1"></span><h2>Parameters_Vehicle<a class="headerlink" href="#parameters-vehicle" title="Link to this heading">ïƒ</a></h2> -<p>The ParametersVehicle module forwards the VehicleModelParameters to all other modules that need them via the ParametersVehicleSignal.</p> -<p>This section includes all vehicle system related parameters, powertrain system related parameters and steering system related parameters. -Relevant parameters are presented in the following three tables with the corresponding explanations.</p> -<section id="vehicle-model-related-parameters"> -<h3>Vehicle model related parameters<a class="headerlink" href="#vehicle-model-related-parameters" title="Link to this heading">ïƒ</a></h3> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Variable</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>width</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Maximum width of the vehicle</p></td> -</tr> -<tr class="row-odd"><td><p>length</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Maximum length of the vehicle</p></td> -</tr> -<tr class="row-even"><td><p>height</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Maximum height of the vehicle</p></td> -</tr> -<tr class="row-odd"><td><p>wheelbase</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Wheelbase of the vehicle</p></td> -</tr> -<tr class="row-even"><td><p>trackwidth</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Trackwidth of the vehicle</p></td> -</tr> -<tr class="row-odd"><td><p>distanceCOGtoLeadingEdge</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Distance between the COG and the front bumper</p></td> -</tr> -<tr class="row-even"><td><p>distanceCOGtoFrontAxle</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Distance between the COG and the front axle</p></td> -</tr> -<tr class="row-odd"><td><p>heightCOG</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Height of the center of gravity above ground</p></td> -</tr> -<tr class="row-even"><td><p>weight</p></td> -<td><p>Double</p></td> -<td><p>kg</p></td> -<td><p>Overall mass of the vehicle</p></td> -</tr> -<tr class="row-odd"><td><p>momentInertiaRoll</p></td> -<td><p>Double</p></td> -<td><p>kgm²</p></td> -<td><p>Moment of inertia along the vehicle’s longitudinal axis</p></td> -</tr> -<tr class="row-even"><td><p>momentInertiaPitch</p></td> -<td><p>Double</p></td> -<td><p>kgm²</p></td> -<td><p>Moment of inertia along the vehicle’s lateral axis</p></td> -</tr> -<tr class="row-odd"><td><p>momentInertiaYaw</p></td> -<td><p>Double</p></td> -<td><p>kgm²</p></td> -<td><p>Moment of inertia along the vehicle’s vertical axis</p></td> -</tr> -<tr class="row-even"><td><p>frontSurface</p></td> -<td><p>Double</p></td> -<td><p>m²</p></td> -<td><p>Projected front surface of the vehicle</p></td> -</tr> -<tr class="row-odd"><td><p>airDragCoefficient</p></td> -<td><p>Double</p></td> -<td></td> -<td><p>Air drag coefficient of the vehicle</p></td> -</tr> -</tbody> -</table> -</section> -<section id="powertrain-related-parameters"> -<h3>Powertrain related parameters<a class="headerlink" href="#powertrain-related-parameters" title="Link to this heading">ïƒ</a></h3> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Variable</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>minimumEngineSpeed</p></td> -<td><p>Double</p></td> -<td><p>1/min</p></td> -<td><p>Idle speed of the engine</p></td> -</tr> -<tr class="row-odd"><td><p>maximumEngineSpeed</p></td> -<td><p>Double</p></td> -<td><p>1/min</p></td> -<td><p>Maximum engine speed</p></td> -</tr> -<tr class="row-even"><td><p>minimumEngineTorque</p></td> -<td><p>Double</p></td> -<td><p>Nm</p></td> -<td><p>Minimum torque of the engine</p></td> -</tr> -<tr class="row-odd"><td><p>maximumEngineTorque</p></td> -<td><p>Double</p></td> -<td><p>Nm</p></td> -<td><p>Maximum torque of the engine</p></td> -</tr> -<tr class="row-even"><td><p>numberOfGears</p></td> -<td><p>Integer</p></td> -<td></td> -<td><p>Number of gears in the gearbox</p></td> -</tr> -<tr class="row-odd"><td><p>axleRatio</p></td> -<td><p>Double</p></td> -<td></td> -<td><p>Ratio of the axle gear</p></td> -</tr> -<tr class="row-even"><td><p>decelerationFromPowertrainDrag</p></td> -<td><p>Double</p></td> -<td><p>m/s²</p></td> -<td><p>Deceleration caused by the overall powertrain drag torque</p></td> -</tr> -</tbody> -</table> -</section> -<section id="steering-related-parameters"> -<h3>Steering related parameters<a class="headerlink" href="#steering-related-parameters" title="Link to this heading">ïƒ</a></h3> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Variable</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>steeringRatio</p></td> -<td><p>Double</p></td> -<td></td> -<td><p>Ratio of the steering gear</p></td> -</tr> -<tr class="row-odd"><td><p>maximumSteeringWheelAngleAmplitude</p></td> -<td><p>Double</p></td> -<td><p>degree</p></td> -<td><p>Maximum amplitude of the steering wheel angle</p></td> -</tr> -</tbody> -</table> -</section> -</section> -<section id="sensor-driver"> -<h2>Sensor_Driver<a class="headerlink" href="#sensor-driver" title="Link to this heading">ïƒ</a></h2> -<p>The Sensor_Driver performs queries on the AgentInterface to gather information about the own agent and its surroundings. -These are forwarded to the driver modules and the Algorithm modules, which use them for their calculations.</p> -<p>See <a class="reference internal" href="../../user_guide/sim_user_guide/components/sensor_driver.html#sensor-driver"><span class="std std-ref">Sensor_Driver</span></a>.</p> -</section> -<section id="sensor-osi"> -<h2>Sensor_OSI<a class="headerlink" href="#sensor-osi" title="Link to this heading">ïƒ</a></h2> -<p>This module is a representation of various sensors and uses OSI for its input and output. -Currently, two types of sensors (SensorGeometric2D and ReceiverCar2X) are available.</p> -<section id="sensorgeometric2d"> -<h3>SensorGeometric2D<a class="headerlink" href="#sensorgeometric2d" title="Link to this heading">ïƒ</a></h3> -<p>The SensorGeometric2D detects all objects in a sector with specified range and opening angle. -The input of the sensor is a OSI SensorView generated by the OSI World and its output is a OSI SensorData structure.</p> -<p>For generation of the SensorView, a SensorViewConfiguration has to be provided by the sensor to the OSI World. See image for a visualization of the -dataflow.</p> -<figure class="align-default" id="id4"> -<img alt="../../_images/SensorView_Dataflow.png" src="../../_images/SensorView_Dataflow.png" /> -<figcaption> -<p><span class="caption-text">OSI SensorView dataflow</span><a class="headerlink" href="#id4" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>From OSI development perspective, the OSI World would have to send back a SensorViewConfiguration to the sensor, with the contents describing the -actual configuration of the SensorView (since the World is maybe notable to provide the requested information). -As we have full control over the simulation environment, this back-channel is skipped and SensorView according to the sensor’S SensorView configuration -will always be provided.</p> -<p>To test whether an object is inside our sector we check -1. if it is inside the circle around the sensor with radius the detection range and -2. if it intersects a suitable polygon</p> -<p>Depending on the opening-angle the polygon in 2) has either four (angle < 180°) or five corners (angle >= 180°).</p> -<figure class="align-default" id="id5"> -<img alt="../../_images/sensor2d_kite_polygon.svg" src="../../_images/sensor2d_kite_polygon.svg" /><figcaption> -<p><span class="caption-text">four-corner kite polygon for angle lower than 180°</span><a class="headerlink" href="#id5" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Object</p></th> -<th class="head"><p>intersects circle</p></th> -<th class="head"><p>intersects polygon</p></th> -<th class="head"><p>detected</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>A</p></td> -<td><p>true</p></td> -<td><p>false</p></td> -<td><p>false</p></td> -</tr> -<tr class="row-odd"><td><p>B</p></td> -<td><p>true</p></td> -<td><p>true</p></td> -<td><p>true</p></td> -</tr> -<tr class="row-even"><td><p>C</p></td> -<td><p>false</p></td> -<td><p>true</p></td> -<td><p>false</p></td> -</tr> -<tr class="row-odd"><td><p>D</p></td> -<td><p>false</p></td> -<td><p>false</p></td> -<td><p>false</p></td> -</tr> -<tr class="row-even"><td><p>E</p></td> -<td><p>true</p></td> -<td><p>true</p></td> -<td><p>true</p></td> -</tr> -</tbody> -</table> -<figure class="align-default" id="id6"> -<img alt="../../_images/sensor2d_five_corner_polygon.svg" src="../../_images/sensor2d_five_corner_polygon.svg" /><figcaption> -<p><span class="caption-text">five-corner polygon for angle greater or equal 180° and greater 360°</span><a class="headerlink" href="#id6" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Object</p></th> -<th class="head"><p>intersects circle</p></th> -<th class="head"><p>intersects polygon</p></th> -<th class="head"><p>detected</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>A</p></td> -<td><p>false</p></td> -<td><p>true</p></td> -<td><p>false</p></td> -</tr> -<tr class="row-odd"><td><p>B</p></td> -<td><p>true</p></td> -<td><p>true</p></td> -<td><p>true</p></td> -</tr> -<tr class="row-even"><td><p>C</p></td> -<td><p>true</p></td> -<td><p>true</p></td> -<td><p>true</p></td> -</tr> -<tr class="row-odd"><td><p>D</p></td> -<td><p>true</p></td> -<td><p>false</p></td> -<td><p>false</p></td> -</tr> -<tr class="row-even"><td><p>E</p></td> -<td><p>false</p></td> -<td><p>false</p></td> -<td><p>false</p></td> -</tr> -</tbody> -</table> -<p>For convex BBoxes the above will give correct detection results.</p> -<p>Both polygons are constructed from corner-points consisting out of the intersection between the opening-angle boundaries at maximum detection range and their corresponding tangents.</p> -</section> -<section id="function"> -<h3>Function<a class="headerlink" href="#function" title="Link to this heading">ïƒ</a></h3> -<ol class="arabic simple"> -<li><p>Construct the polygon based on the opening-angle</p></li> -<li><p>Check if detection-field (polygon) intersects with any BBox (object-detection)</p></li> -<li><p>Calculate the distance between sensor and object</p></li> -<li><p>if (dist <= range && isIntersecting) -> object is in circular sector (object validation)</p></li> -</ol> -</section> -<section id="cases"> -<h3>Cases<a class="headerlink" href="#cases" title="Link to this heading">ïƒ</a></h3> -<ul class="simple"> -<li><p>For angles < 1.0 * pi a four-corner (kite) polygon can be constructed out of two radiuses and two tangents.</p></li> -<li><p>For angles > = 1.0 * pi and < 2.0 * pi a five-corner polygon can be constructed of two radiuses an three tangents.</p></li> -<li><p>For opening-angle of exactly 2.0 * pi the distance information suffices. No polygon is needed.</p></li> -</ul> -</section> -<section id="visual-obstruction"> -<h3>Visual Obstruction<a class="headerlink" href="#visual-obstruction" title="Link to this heading">ïƒ</a></h3> -<p>Objects in front of others block the sensors line of sight. -If an object is large enough it might visually obstruct others. -To check if one or multiple objects in combination “shadow†other objects the flag <code class="docutils literal notranslate"><span class="pre">EnableVisualObstruction</span></code> can be set. -Also the minimum required percentage of the visible area of an object to be detected can be specified. -The implemented algorithm uses the concept of shadow-casting, where the sensor cone is assumed to be the light source and the resulting shadow is calculated for each object. -If an object is shadowed too much, it is removed from the list of detected objects.</p> -<p>Shadow casting is calculated as follows:</p> -<ol class="arabic simple"> -<li><p>Approximate detection field as circular sector.</p></li> -<li><p>Calculate the casted shadow of each object inside the detection field.</p></li> -<li><p>Remove bounding box of object from shadow, so that it can be detected.</p></li> -<li><p>Remove the casted shadow from the detection field.</p></li> -<li><p>For each object, check if remaining area is inside the remaining polygon.</p></li> -<li><p>Remove objects, if relation <code class="docutils literal notranslate"><span class="pre">covered</span> <span class="pre">object</span> <span class="pre">area/total</span> <span class="pre">object</span> <span class="pre">area</span></code> is smaller than a parameterizable threshold.</p></li> -</ol> -<p><strong>Example</strong></p> -<p>Assume that the vehicle ahead is fully captured by the following vehicle’s sensor cone. -The outer points of the bounding box define the cone of the shadow.</p> -<figure class="align-default" id="id7"> -<img alt="../../_images/shadow_casting_step01.svg" src="../../_images/shadow_casting_step01.svg" /><figcaption> -<p><span class="caption-text">Vehicle within sensor range</span><a class="headerlink" href="#id7" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>For calculation of the shadow polygon, these boundary vectors needs to be extended w.r.t. detection range.</p> -<p>In order to calculate the shadow polygon, the bounding vectors needs to be scaled with regard to the detection area. -Note that extending only to the edges of the detection area would produce too small a shadow.</p> -<figure class="align-default" id="id8"> -<img alt="../../_images/shadow_casting_step02.svg" src="../../_images/shadow_casting_step02.svg" /><figcaption> -<p><span class="caption-text">Too small shadow with missing area in red</span><a class="headerlink" href="#id8" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>To avoid numerical scaling problems related to the length of the bounding vectors, the shadow is not stretched to a fixed size. -Instead, the internal algorithm overestimates the size of the shadow, with the detection range as a guaranteed lower limit.</p> -<figure class="align-default" id="id9"> -<img alt="../../_images/shadow_casting_step03.svg" src="../../_images/shadow_casting_step03.svg" /><figcaption> -<p><span class="caption-text">Overestimated shadow</span><a class="headerlink" href="#id9" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>For this guarantee, the actual detection area must be approximated along the edge of the ideal circle (rather than by a tangential approximation). -With regard to typical object sizes and detection areas, the error can be considered negligible.</p> -<figure class="align-default" id="id10"> -<img alt="../../_images/shadow_casting_step04.svg" src="../../_images/shadow_casting_step04.svg" /><figcaption> -<p><span class="caption-text">Approximation of the sensor cone</span><a class="headerlink" href="#id10" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>Next, the object’s bounding box is removed from the shadow.</p> -<figure class="align-default" id="id11"> -<img alt="../../_images/shadow_casting_step05.svg" src="../../_images/shadow_casting_step05.svg" /><figcaption> -<p><span class="caption-text">Approximated sensor cone and shadow with removed bounding box</span><a class="headerlink" href="#id11" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>Finally, the shadow is subtracted from the sensor cone.</p> -<figure class="align-default" id="id12"> -<img alt="../../_images/shadow_casting_step06.svg" src="../../_images/shadow_casting_step06.svg" /><figcaption> -<p><span class="caption-text">Sensor cone with removed shadow</span><a class="headerlink" href="#id12" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>The process is repeated for each object in the detection area.</p> -<figure class="align-default" id="id13"> -<img alt="../../_images/shadow_casting_step07.svg" src="../../_images/shadow_casting_step07.svg" /><figcaption> -<p><span class="caption-text">Shadow of partially occluded vehicle</span><a class="headerlink" href="#id13" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<figure class="align-default" id="id14"> -<img alt="../../_images/shadow_casting_step08.svg" src="../../_images/shadow_casting_step08.svg" /><figcaption> -<p><span class="caption-text">Sensor cone with removed shadow of partially occluded vehicle</span><a class="headerlink" href="#id14" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>Note that the order of shadow calculation and subtraction is irrelevant.</p> -</section> -</section> -<section id="sensorfusionosi"> -<h2>SensorFusionOSI<a class="headerlink" href="#sensorfusionosi" title="Link to this heading">ïƒ</a></h2> -<p>The SensorFusionOSI module allows unsorted aggregation of any data provided by sensors. All sampled detected objects can then be broadcasted to connected ADAS.</p> -<p>It collects all SensorDataSignals and merges them into a single SensorDataSignal.</p> -</section> -<section id="signalprioritizer"> -<span id="agentcomponents-signalprioritizer"></span><h2>SignalPrioritizer<a class="headerlink" href="#signalprioritizer" title="Link to this heading">ïƒ</a></h2> -<p>All channels can only have one source. -If one module can have the same input type from multiple sources a prioritizer module is needed in between. -All sources then get an output channel to the prioritizer module and the prioritizer gets an output to the module, which uses this signal. -If more than an component sends an active signal during the same timestep, the prioritizer forwards only the signal from the input channel with the highest priority. -These priorities are set as parameters in the systemconfigblueprint.xml, where the key corresponds the the id of the input channel and the value is the priority (higher value is prioritized). -In the following example the channel with id 102 has the highest priority (3) and the channel with id 100 has the lowest priority (1).</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><component></span> -<span class="w"> </span><span class="nt"><id></span>PrioritizerName<span class="nt"></id></span> -<span class="w"> </span><span class="nt"><schedule></span> -<span class="w"> </span><span class="nt"><priority></span>150<span class="nt"></priority></span> -<span class="w"> </span><span class="nt"><offset></span>0<span class="nt"></offset></span> -<span class="w"> </span><span class="nt"><cycle></span>100<span class="nt"></cycle></span> -<span class="w"> </span><span class="nt"><response></span>0<span class="nt"></response></span> -<span class="w"> </span><span class="nt"></schedule></span> -<span class="w"> </span><span class="nt"><library></span>SignalPrioritizer<span class="nt"></library></span> -<span class="w"> </span><span class="nt"><parameters></span> -<span class="w"> </span><span class="nt"><parameter></span> -<span class="w"> </span><span class="nt"><id></span>100<span class="nt"></id></span> -<span class="w"> </span><span class="nt"><type></span>int<span class="nt"></type></span> -<span class="w"> </span><span class="nt"><unit/></span> -<span class="w"> </span><span class="nt"><value></span>1<span class="nt"></value></span> -<span class="w"> </span><span class="nt"></parameter></span> -<span class="w"> </span><span class="nt"><parameter></span> -<span class="w"> </span><span class="nt"><id></span>101<span class="nt"></id></span> -<span class="w"> </span><span class="nt"><type></span>int<span class="nt"></type></span> -<span class="w"> </span><span class="nt"><unit/></span> -<span class="w"> </span><span class="nt"><value></span>2<span class="nt"></value></span> -<span class="w"> </span><span class="nt"></parameter></span> -<span class="w"> </span><span class="nt"><parameter></span> -<span class="w"> </span><span class="nt"><id></span>102<span class="nt"></id></span> -<span class="w"> </span><span class="nt"><type></span>int<span class="nt"></type></span> -<span class="w"> </span><span class="nt"><unit/></span> -<span class="w"> </span><span class="nt"><value></span>3<span class="nt"></value></span> -<span class="w"> </span><span class="nt"></parameter></span> -<span class="w"> </span><span class="nt"></parameters></span> -<span class="nt"></component></span> -</pre></div> -</div> -<p>One prioritizer module can only handle signals of the same type and the signal class must be derived from ComponentStateSignal. -If there is no signal in one time step, then the signal of the previous time step is hold.</p> -<p><strong>Existing prioritizer modules</strong></p> -<ul class="simple"> -<li><p>PrioritizerAccelerationVehicleComponents</p></li> -<li><p>PrioritizerSteeringVehicleComponents</p></li> -<li><p>PrioritizerTurningIndicator</p></li> -<li><p>PrioritizerLongitudinal</p></li> -<li><p>PrioritizerSteering</p></li> -<li><p>PrioritizerDynamics</p></li> -</ul> -</section> -<section id="componentcontroller"> -<span id="agentcomponents-componentcontroller"></span><h2>ComponentController<a class="headerlink" href="#componentcontroller" title="Link to this heading">ïƒ</a></h2> -<section id="overview"> -<h3>Overview<a class="headerlink" href="#overview" title="Link to this heading">ïƒ</a></h3> -<p>The ComponentController (CC) is used to configure and handle dependencies between other vehicle components.</p> -<p>Example use cases could be:</p> -<ul class="simple"> -<li><p>Cruise control:</p> -<ul> -<li><p>driver requesting higher acceleration than cruise control overrides the latter</p></li> -<li><p>driver braking deactivates cruise control</p></li> -</ul> -</li> -<li><p>Lane keeping assistant:</p> -<ul> -<li><p>cannot be activated by driver, if emergency braking is currently active</p></li> -<li><p>stays active, when emergency braking occurs (i. e. by other ADAS)</p></li> -</ul> -</li> -</ul> -<p>The responsibilies of the CC are:</p> -<ul class="simple"> -<li><p>Handling of all dependencies between <em>VehicleComponents</em> in case a component wants to activate</p></li> -<li><p>Make information about driver, <em>TrajectoryFollower</em> and other <em>VehicleComponents</em> available to each other</p></li> -<li><p>Determine the highest allowed activation state of a component and notify the affected component about this state</p></li> -</ul> -<p>To achieve this tasks, each component is assigned a maximum allowed state in each time step. This state is of type ComponentState, -which defines <em>Disabled</em>, <em>Armed</em> or <em>Active</em> as allowed states. -Drivers can be in a state of either <em>Active</em> or <em>Passive</em>.</p> -</section> -<section id="state-handling-inside-vehicle-component"> -<h3>State handling inside Vehicle Component<a class="headerlink" href="#state-handling-inside-vehicle-component" title="Link to this heading">ïƒ</a></h3> -<p>Within a vehicle component, the information flow should be implemented as follows:</p> -<ol class="arabic simple"> -<li><p>The vehicle component retrieves the information of other components and the current maximum allowed state from the CC. -Other components include drivers, trajectory followers and all other vehicle components connected to the CC.</p></li> -<li><p>Based on that information the vehicle component determines its current desired state.</p></li> -<li><p>The desired state is sent to the CC.</p></li> -</ol> -<p>The CC handles all the dependencies between different components and determines the maximum allowed state for each component based -on the configuration of the CC.</p> -</section> -<section id="used-signals"> -<h3>Used signals<a class="headerlink" href="#used-signals" title="Link to this heading">ïƒ</a></h3> -<p>The CC communicates with the controlled components via framework signals.</p> -<p>Inputs to the ComponentController:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Source</p></th> -<th class="head"><p>Contents</p></th> -<th class="head"><p>Signal</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>TrajectoryFollower</p></td> -<td><p>Current state</p></td> -<td><p>ComponentStateSignal</p></td> -</tr> -<tr class="row-odd"><td><p>Driver</p></td> -<td><p>Current state, pedal activity</p></td> -<td><p>DriverStateSignal</p></td> -</tr> -<tr class="row-even"><td><p>VehicleComponent</p></td> -<td><p>Current state, desired state, generic ADAS parameters</p></td> -<td><p>VehicleCompToCompCtrlSignal</p></td> -</tr> -</tbody> -</table> -<p>Output to other components:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Destination</p></th> -<th class="head"><p>Contents</p></th> -<th class="head"><p>Signal</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>TrajectoryFollower</p></td> -<td><p>Current max. reachable state</p></td> -<td><p>ComponentStateSignal</p></td> -</tr> -<tr class="row-odd"><td><p>Driver</p></td> -<td><p>List of all ADAS with names, stati and types</p></td> -<td><p>AdasStateSignal</p></td> -</tr> -<tr class="row-even"><td><p>VehicleComponent</p></td> -<td><p>Current max. reachable state, list of all ADAS with names, stati and types</p></td> -<td><p>CompCtrlToVehicleCompSignal</p></td> -</tr> -</tbody> -</table> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../20_simulator_advanced.html" class="btn btn-neutral float-left" title="Simulator" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="coordinate_systems.html" class="btn btn-neutral float-right" title="Coordinate Systems" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Agent Components — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Coordinate Systems" href="coordinate_systems.html" /> + <link rel="prev" title="Simulator" href="../20_simulator_advanced.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Agent Components</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#action-longitudinaldriver">Action_LongitudinalDriver</a></li> +<li class="toctree-l3"><a class="reference internal" href="#action-secondarydriver">Action_SecondaryDriver</a></li> +<li class="toctree-l3"><a class="reference internal" href="#agentupdater">AgentUpdater</a></li> +<li class="toctree-l3"><a class="reference internal" href="#algorithm-lateral">Algorithm_Lateral</a></li> +<li class="toctree-l3"><a class="reference internal" href="#algorithm-longitudinal">Algorithm_Longitudinal</a></li> +<li class="toctree-l3"><a class="reference internal" href="#algorithmcar2xsender">AlgorithmCar2XSender</a></li> +<li class="toctree-l3"><a class="reference internal" href="#dynamics-collision">Dynamics_Collision</a></li> +<li class="toctree-l3"><a class="reference internal" href="#dynamics-scenario">Dynamics_Scenario</a></li> +<li class="toctree-l3"><a class="reference internal" href="#dynamics-regulardriving">Dynamics_RegularDriving</a></li> +<li class="toctree-l3"><a class="reference internal" href="#limiteraccelerationvehiclecomponents">LimiterAccelerationVehicleComponents</a></li> +<li class="toctree-l3"><a class="reference internal" href="#openscenarioactions">OpenScenarioActions</a></li> +<li class="toctree-l3"><a class="reference internal" href="#parameters-vehicle">Parameters_Vehicle</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#vehicle-model-related-parameters">Vehicle model related parameters</a></li> +<li class="toctree-l4"><a class="reference internal" href="#powertrain-related-parameters">Powertrain related parameters</a></li> +<li class="toctree-l4"><a class="reference internal" href="#steering-related-parameters">Steering related parameters</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#sensor-driver">Sensor_Driver</a></li> +<li class="toctree-l3"><a class="reference internal" href="#sensor-osi">Sensor_OSI</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#sensorgeometric2d">SensorGeometric2D</a></li> +<li class="toctree-l4"><a class="reference internal" href="#function">Function</a></li> +<li class="toctree-l4"><a class="reference internal" href="#cases">Cases</a></li> +<li class="toctree-l4"><a class="reference internal" href="#visual-obstruction">Visual Obstruction</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#sensorfusionosi">SensorFusionOSI</a></li> +<li class="toctree-l3"><a class="reference internal" href="#signalprioritizer">SignalPrioritizer</a></li> +<li class="toctree-l3"><a class="reference internal" href="#componentcontroller">ComponentController</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#overview">Overview</a></li> +<li class="toctree-l4"><a class="reference internal" href="#state-handling-inside-vehicle-component">State handling inside Vehicle Component</a></li> +<li class="toctree-l4"><a class="reference internal" href="#used-signals">Used signals</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> +<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> +<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> +<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> + <li class="breadcrumb-item active">Agent Components</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/advanced_topics/simulator/agent_components.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="agent-components"> +<span id="agentcomponents"></span><h1>Agent Components<a class="headerlink" href="#agent-components" title="Link to this heading">ïƒ</a></h1> +<p>An agent in openPASS is composed of multiple modules, which are connected by corresponding signals. +As shown in the next figure, the modules can be roughly divided into the groups drivers, vehicle components, algorithms, dynamic modules, and prioritizers. +Thereby, modules can consist of several submodules, such as sensor (reading from an interface) and action (writing to an interface).</p> +<figure class="align-default" id="id2"> +<img alt="../../_images/DynamicsModules.png" src="../../_images/DynamicsModules.png" /> +<figcaption> +<p><span class="caption-text">Modules for longitudinal and lateral dynamics</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>By statistic means, based on corresponding probabilities defined in the <a class="reference internal" href="../../user_guide/configs/profilescatalog.html#profilescatalog"><span class="std std-ref">ProfilesCatalog</span></a>, each individual agent is composed from a superset of all possible (valid) combinations, which is defined by the <a class="reference internal" href="../../user_guide/configs/systemconfigblueprint.html#systemconfigblueprint"><span class="std std-ref">SystemConfigBlueprint</span></a>. +This config defines all available framework modules and agent modules and connects them by corresponding channels, which in turn have a specific signal type.</p> +<p>The next figure gives an exhaustive overview over the current superset:</p> +<figure class="align-default" id="id3"> +<span id="component-channel-communication"></span><img alt="../../_images/ComponentsChannelCommunicationDiagram.png" src="../../_images/ComponentsChannelCommunicationDiagram.png" /> +<figcaption> +<p><span class="caption-text">Components and channel communication</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p><a class="reference download internal" download="" href="../../_downloads/a4a21311d2dff77fb2513fe86367853b/ComponentsChannelCommunicationDiagram.drawio"><code class="xref download docutils literal notranslate"><span class="pre">./draw.io/ComponentsChannelCommunicationDiagram.drawio</span></code></a></p> +<p>Modules that can be parametrized by the user are explained in the <a class="reference internal" href="../../user_guide/sim_user_guide/20_components.html#simuserguide-components"><span class="std std-ref">Simulation User Guide</span></a>. +Therefor the following section only contains the components not listed in the user guide.</p> +<section id="action-longitudinaldriver"> +<h2>Action_LongitudinalDriver<a class="headerlink" href="#action-longitudinaldriver" title="Link to this heading">ïƒ</a></h2> +<p>Updates the agents pedal positions and gear. +The input for this module is prepared by the AlgorithmLongitudinal Module.</p> +</section> +<section id="action-secondarydriver"> +<h2>Action_SecondaryDriver<a class="headerlink" href="#action-secondarydriver" title="Link to this heading">ïƒ</a></h2> +<p>Updates the agents braking light, indicator, horn and all light switches (headlight, high beam, flasher). +The input for this module is prepared by the driver module.</p> +<p><strong>Overview of the module’s functionalities</strong></p> +<p>Action_SecondaryDriver gathers the secondary driving tasks and transfers them to output signals. Three graded driving tasks are defined and exampled as follows:</p> +<p><strong>Primary driving tasks:</strong> direct control of vehicle movements, like steering, pedal operation, shifting, etc.</p> +<p><strong>Secondary driving tasks:</strong> indirect control of vehicle movements, but supporting and complementing driving actions, like activation of indicator, horn, light, etc.</p> +<p><strong>Tertiary driving tasks:</strong> all the other activities, which are not related to vehicle control, like radio operation, etc.</p> +<p>Table list of the input paramemter:</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Variable</p></th> +<th class="head"><p>Description</p></th> +<th class="head"><p>Value</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>in_indicatorState</p></td> +<td><p>State of the indicator</p></td> +<td><p>left, center/off, right, warn</p></td> +</tr> +<tr class="row-odd"><td><p>in_hornSwitch</p></td> +<td><p>Horn activation</p></td> +<td><p>true/false</p></td> +</tr> +<tr class="row-even"><td><p>in_headLightSwitch</p></td> +<td><p>Light activation</p></td> +<td><p>true/false</p></td> +</tr> +<tr class="row-odd"><td><p>in_highBeamLightSwitch</p></td> +<td><p>High beam light activation</p></td> +<td><p>true/false</p></td> +</tr> +<tr class="row-even"><td><p>in_flasherSwitch</p></td> +<td><p>Flasher activation</p></td> +<td><p>true/false</p></td> +</tr> +</tbody> +</table> +</section> +<section id="agentupdater"> +<h2>AgentUpdater<a class="headerlink" href="#agentupdater" title="Link to this heading">ïƒ</a></h2> +<p>The AgentUpdater executes all Set-Methods of the agent dynamics after the DynamicsPrioritizer. This includes position, velocity, acceleration and rotation.</p> +</section> +<section id="algorithm-lateral"> +<h2>Algorithm_Lateral<a class="headerlink" href="#algorithm-lateral" title="Link to this heading">ïƒ</a></h2> +<p>This module converts the lateral input of the driver module into a steering wheel angle.</p> +<p>See <a class="reference internal" href="../../user_guide/sim_user_guide/components/algorithm_lateral.html#algorithm-lateral"><span class="std std-ref">Algorithm_Lateral</span></a>.</p> +</section> +<section id="algorithm-longitudinal"> +<h2>Algorithm_Longitudinal<a class="headerlink" href="#algorithm-longitudinal" title="Link to this heading">ïƒ</a></h2> +<p>This module converts the acceleration input of the driver module into pedal positions and gear.</p> +<p>See <a class="reference internal" href="../../user_guide/sim_user_guide/components/algorithm_longitudinal.html#algorithm-longitudinal"><span class="std std-ref">Algorithm_Longitudinal</span></a>.</p> +</section> +<section id="algorithmcar2xsender"> +<h2>AlgorithmCar2XSender<a class="headerlink" href="#algorithmcar2xsender" title="Link to this heading">ïƒ</a></h2> +<p>This module publishes the below mentioned parameters in each timestep via the RadioInterface provided by the World.</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Parameter</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>SignalStrength</p></td> +<td><p>Double</p></td> +<td><p>W</p></td> +<td><p>Singal strength of the Car2XSender</p></td> +</tr> +<tr class="row-odd"><td><p>SendPositionXEnabled</p></td> +<td><p>Boolean</p></td> +<td></td> +<td><p>If true, the x-coordinate of the agent is sent</p></td> +</tr> +<tr class="row-even"><td><p>SendPositionYEnabled</p></td> +<td><p>Boolean</p></td> +<td></td> +<td><p>If true, the y-coordinate of the agent is sent</p></td> +</tr> +<tr class="row-odd"><td><p>SendVelocityEnabled</p></td> +<td><p>Boolean</p></td> +<td></td> +<td><p>If true, the velocity of the agent is sent</p></td> +</tr> +<tr class="row-even"><td><p>SendAccelerationEnabled</p></td> +<td><p>Boolean</p></td> +<td></td> +<td><p>If true, the acceleration of the agent is sent</p></td> +</tr> +<tr class="row-odd"><td><p>SendYawEnabled</p></td> +<td><p>Boolean</p></td> +<td></td> +<td><p>If true, the yaw angle of the agent is sent</p></td> +</tr> +</tbody> +</table> +</section> +<section id="dynamics-collision"> +<h2>Dynamics_Collision<a class="headerlink" href="#dynamics-collision" title="Link to this heading">ïƒ</a></h2> +<p>If the number of collision partners of the agent is bigger than in the previous time step, the DynamicsCollision module calculates the collision. +Currently the collision is implemented fully inelastic, i.e. all agents will have the same velocity after the collision, while the momentum is conserved. +After the collision the agents slow down with a fixed deceleration until fully stopped.</p> +</section> +<section id="dynamics-scenario"> +<h2>Dynamics_Scenario<a class="headerlink" href="#dynamics-scenario" title="Link to this heading">ïƒ</a></h2> +<p>See <a class="reference internal" href="../../user_guide/sim_user_guide/components/dynamics_scenario.html#dynamics-scenario"><span class="std std-ref">Dynamics_Scenario</span></a>.</p> +</section> +<section id="dynamics-regulardriving"> +<h2>Dynamics_RegularDriving<a class="headerlink" href="#dynamics-regulardriving" title="Link to this heading">ïƒ</a></h2> +<p>The module takes care that the motion of the agent fit to the physical limitations, such as friction or maximum possible acceleration based on the current gear. +This module uses both the world friction and the vehicle model parameter friction. +Thereby it calculates the dynamics of the agents in every time step. +The currently covered dynamics are <em>Acceleration</em>, <em>Velocity</em>, and consequently <em>Position</em>, <em>Yaw angle</em> and <em>Yaw rate</em>. +The input for this module is the steering wheel angle and the new acceleration of the vehicle.</p> +<p>See <a class="reference internal" href="../../user_guide/sim_user_guide/components/dynamics_regular_driving.html#dynamics-regular-driving"><span class="std std-ref">Dynamics_RegularDriving</span></a>.</p> +</section> +<section id="limiteraccelerationvehiclecomponents"> +<h2>LimiterAccelerationVehicleComponents<a class="headerlink" href="#limiteraccelerationvehiclecomponents" title="Link to this heading">ïƒ</a></h2> +<p>This module limits the AccelerationSignal from the PrioritizerAccelerationVehicleComponents to the constraints given by the vehicle. The DynamicsTrajectoryFollower can then use this signal to calculate a trajectory.</p> +<p>The limit is calculated by <img class="math" src="../../_images/math/b8e905e7f040e6ca0fbde1ee281a2e9e6aedd42c.png" alt="a_{\text{lim}} = \frac {F_{\text{wheel}} - F_{\text{roll}} - F_{\text{air}}} {m_{\text{veh}}}"/>, where the symbols meanings are:</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Symbol</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p><img class="math" src="../../_images/math/dd0e45b188dfaf5d28adc454675a19893741bc0a.png" alt="a_{\text{lim}}"/></p></td> +<td><p>Resulting acceleration limit [m/s²]</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../_images/math/8c8c50e079ddcffe6c37e396fda0def610aec805.png" alt="F_{\text{wheel}}"/></p></td> +<td><p>Force at wheel (provided by drivetrain) [N]</p></td> +</tr> +<tr class="row-even"><td><p><img class="math" src="../../_images/math/4a145fae91306b362ee66953323a41d79fe3b613.png" alt="F_{\text{roll}}"/></p></td> +<td><p>Force resulting from rolling resistance [N]</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../_images/math/0522178ee32098e5415d0f7841ccc877c72d437b.png" alt="F_{\text{air}}"/></p></td> +<td><p>Force resulting from air drag [N]</p></td> +</tr> +<tr class="row-even"><td><p><img class="math" src="../../_images/math/1b9bc4cf466a822e0b8b1dc14b2787c6777cd1e8.png" alt="m_{\text{veh}}"/></p></td> +<td><p>Mass of the vehicle [kg]</p></td> +</tr> +</tbody> +</table> +<p>The components are calculated as follows:</p> +<p><strong>Driving force</strong></p> +<p><img class="math" src="../../_images/math/3b016a9e92ffb9f0909c19ff956ccc459864df7d.png" alt="F_{\text{wheel}} = \frac {T_{\text{engine}} \cdot r_{\text{axle}}} {r_{\text{wheel}}}"/></p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Symbol</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p><img class="math" src="../../_images/math/692e2731d37983a19fd2b39c8101cf15d882ff35.png" alt="T_{\text{engine}}"/></p></td> +<td><p>Resulting torque from drivetrain at current velocity (assuming best gearing selected) [Nm]</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../_images/math/c424381a86be77f896401b0158f6d5634461dd46.png" alt="r_{\text{axle}}"/></p></td> +<td><p>Axle transmission ratio [1]</p></td> +</tr> +<tr class="row-even"><td><p><img class="math" src="../../_images/math/a019586eb6dacb7b6496d07fefdbb7cc2395329c.png" alt="r_{\text{wheel}}"/></p></td> +<td><p>Static radius of the wheels [m]</p></td> +</tr> +</tbody> +</table> +<p>The engine torque <img class="math" src="../../_images/math/692e2731d37983a19fd2b39c8101cf15d882ff35.png" alt="T_{\text{engine}}"/> is calculated by a simple model, where the torque scales proportional with the current engine speed between 1350 and 5000 rpm, up to maximum engine torque. +From minimum engine speed up to 1350 rpm the torque scales proportional with the engine speed up to half the maximum torque. +From 5000 rpm up to maximum engine speed, the torque scales with 5000 / maxEngineSpeed, up to maximum torque.</p> +<p><strong>Rolling resistance</strong></p> +<p><img class="math" src="../../_images/math/d39bed6c7ca56cec556eaa950eb8054adbb6cf47.png" alt="F_{\text{roll}} = m_{\text{veh}} \cdot c_{\text{fric}} \cdot g"/></p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Symbol</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p><img class="math" src="../../_images/math/1b9bc4cf466a822e0b8b1dc14b2787c6777cd1e8.png" alt="m_{\text{veh}}"/></p></td> +<td><p>Mass of the vehicle [kg]</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../_images/math/44252e11753151d0fa1d037d8714c6f9a338302b.png" alt="c_{\text{fric}}"/></p></td> +<td><p>Rolling friction coefficient (constant 0.015) [1]</p></td> +</tr> +</tbody> +</table> +<p><strong>Air drag</strong></p> +<p><img class="math" src="../../_images/math/47d2f130adc5dfa8b9c3ae6852ad32b265775aa8.png" alt="F_{\text{air}} = \frac {\rho_{\text{air}}} {2} \cdot A_{\text{front}} \cdot c_w \cdot v^2"/></p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Symbol</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p><img class="math" src="../../_images/math/ec29cdf2a0665b368b2c84668db684adce27d0f6.png" alt="\rho_{\text{air}}"/></p></td> +<td><p>Density of air [kg/m³]</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../_images/math/25da9109e1ebaa46fe7b79f67874d66957079266.png" alt="A_{\text{front}}"/></p></td> +<td><p>Vehicle front surface area [m²]</p></td> +</tr> +<tr class="row-even"><td><p><img class="math" src="../../_images/math/7ebeba54263779b2dc506f0fad06feb2089eee73.png" alt="c_w"/></p></td> +<td><p>Drag coefficient [1]</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../_images/math/02d98909b5d6acd6a7ff927d4d42790bdd407d58.png" alt="v"/></p></td> +<td><p>Vehicle’s current velocity [m/s]</p></td> +</tr> +</tbody> +</table> +</section> +<section id="openscenarioactions"> +<h2>OpenScenarioActions<a class="headerlink" href="#openscenarioactions" title="Link to this heading">ïƒ</a></h2> +<p>As defined by <a class="reference external" href="https://www.asam.net/standards/detail/openscenario/">OpenSCENARIO</a>, OpenScenarioActions is the relaying module for:</p> +<ul class="simple"> +<li><p>Trajectory-actions</p></li> +<li><p>LaneChange-actions</p></li> +<li><p>UserDefined-actions.</p></li> +</ul> +<p>If a</p> +<ul class="simple"> +<li><p>TrajectoryManipulator</p></li> +<li><p>LaneChangeManipulator</p></li> +</ul> +<p>or a user defined manipulator</p> +<p>raises such an event for the specified agent, the module forwards it as signal to all interested module of the corresponding agent. The modules can than react on the signals content without time delay.</p> +</section> +<section id="parameters-vehicle"> +<span id="id1"></span><h2>Parameters_Vehicle<a class="headerlink" href="#parameters-vehicle" title="Link to this heading">ïƒ</a></h2> +<p>The ParametersVehicle module forwards the VehicleModelParameters to all other modules that need them via the ParametersVehicleSignal.</p> +<p>This section includes all vehicle system related parameters, powertrain system related parameters and steering system related parameters. +Relevant parameters are presented in the following three tables with the corresponding explanations.</p> +<section id="vehicle-model-related-parameters"> +<h3>Vehicle model related parameters<a class="headerlink" href="#vehicle-model-related-parameters" title="Link to this heading">ïƒ</a></h3> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Variable</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>width</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Maximum width of the vehicle</p></td> +</tr> +<tr class="row-odd"><td><p>length</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Maximum length of the vehicle</p></td> +</tr> +<tr class="row-even"><td><p>height</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Maximum height of the vehicle</p></td> +</tr> +<tr class="row-odd"><td><p>wheelbase</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Wheelbase of the vehicle</p></td> +</tr> +<tr class="row-even"><td><p>trackwidth</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Trackwidth of the vehicle</p></td> +</tr> +<tr class="row-odd"><td><p>distanceCOGtoLeadingEdge</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Distance between the COG and the front bumper</p></td> +</tr> +<tr class="row-even"><td><p>distanceCOGtoFrontAxle</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Distance between the COG and the front axle</p></td> +</tr> +<tr class="row-odd"><td><p>heightCOG</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Height of the center of gravity above ground</p></td> +</tr> +<tr class="row-even"><td><p>weight</p></td> +<td><p>Double</p></td> +<td><p>kg</p></td> +<td><p>Overall mass of the vehicle</p></td> +</tr> +<tr class="row-odd"><td><p>momentInertiaRoll</p></td> +<td><p>Double</p></td> +<td><p>kgm²</p></td> +<td><p>Moment of inertia along the vehicle’s longitudinal axis</p></td> +</tr> +<tr class="row-even"><td><p>momentInertiaPitch</p></td> +<td><p>Double</p></td> +<td><p>kgm²</p></td> +<td><p>Moment of inertia along the vehicle’s lateral axis</p></td> +</tr> +<tr class="row-odd"><td><p>momentInertiaYaw</p></td> +<td><p>Double</p></td> +<td><p>kgm²</p></td> +<td><p>Moment of inertia along the vehicle’s vertical axis</p></td> +</tr> +<tr class="row-even"><td><p>frontSurface</p></td> +<td><p>Double</p></td> +<td><p>m²</p></td> +<td><p>Projected front surface of the vehicle</p></td> +</tr> +<tr class="row-odd"><td><p>airDragCoefficient</p></td> +<td><p>Double</p></td> +<td></td> +<td><p>Air drag coefficient of the vehicle</p></td> +</tr> +</tbody> +</table> +</section> +<section id="powertrain-related-parameters"> +<h3>Powertrain related parameters<a class="headerlink" href="#powertrain-related-parameters" title="Link to this heading">ïƒ</a></h3> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Variable</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>minimumEngineSpeed</p></td> +<td><p>Double</p></td> +<td><p>1/min</p></td> +<td><p>Idle speed of the engine</p></td> +</tr> +<tr class="row-odd"><td><p>maximumEngineSpeed</p></td> +<td><p>Double</p></td> +<td><p>1/min</p></td> +<td><p>Maximum engine speed</p></td> +</tr> +<tr class="row-even"><td><p>minimumEngineTorque</p></td> +<td><p>Double</p></td> +<td><p>Nm</p></td> +<td><p>Minimum torque of the engine</p></td> +</tr> +<tr class="row-odd"><td><p>maximumEngineTorque</p></td> +<td><p>Double</p></td> +<td><p>Nm</p></td> +<td><p>Maximum torque of the engine</p></td> +</tr> +<tr class="row-even"><td><p>numberOfGears</p></td> +<td><p>Integer</p></td> +<td></td> +<td><p>Number of gears in the gearbox</p></td> +</tr> +<tr class="row-odd"><td><p>axleRatio</p></td> +<td><p>Double</p></td> +<td></td> +<td><p>Ratio of the axle gear</p></td> +</tr> +<tr class="row-even"><td><p>decelerationFromPowertrainDrag</p></td> +<td><p>Double</p></td> +<td><p>m/s²</p></td> +<td><p>Deceleration caused by the overall powertrain drag torque</p></td> +</tr> +</tbody> +</table> +</section> +<section id="steering-related-parameters"> +<h3>Steering related parameters<a class="headerlink" href="#steering-related-parameters" title="Link to this heading">ïƒ</a></h3> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Variable</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>steeringRatio</p></td> +<td><p>Double</p></td> +<td></td> +<td><p>Ratio of the steering gear</p></td> +</tr> +<tr class="row-odd"><td><p>maximumSteeringWheelAngleAmplitude</p></td> +<td><p>Double</p></td> +<td><p>degree</p></td> +<td><p>Maximum amplitude of the steering wheel angle</p></td> +</tr> +</tbody> +</table> +</section> +</section> +<section id="sensor-driver"> +<h2>Sensor_Driver<a class="headerlink" href="#sensor-driver" title="Link to this heading">ïƒ</a></h2> +<p>The Sensor_Driver performs queries on the AgentInterface to gather information about the own agent and its surroundings. +These are forwarded to the driver modules and the Algorithm modules, which use them for their calculations.</p> +<p>See <a class="reference internal" href="../../user_guide/sim_user_guide/components/sensor_driver.html#sensor-driver"><span class="std std-ref">Sensor_Driver</span></a>.</p> +</section> +<section id="sensor-osi"> +<h2>Sensor_OSI<a class="headerlink" href="#sensor-osi" title="Link to this heading">ïƒ</a></h2> +<p>This module is a representation of various sensors and uses OSI for its input and output. +Currently, two types of sensors (SensorGeometric2D and ReceiverCar2X) are available.</p> +<section id="sensorgeometric2d"> +<h3>SensorGeometric2D<a class="headerlink" href="#sensorgeometric2d" title="Link to this heading">ïƒ</a></h3> +<p>The SensorGeometric2D detects all objects in a sector with specified range and opening angle. +The input of the sensor is a OSI SensorView generated by the OSI World and its output is a OSI SensorData structure.</p> +<p>For generation of the SensorView, a SensorViewConfiguration has to be provided by the sensor to the OSI World. See image for a visualization of the +dataflow.</p> +<figure class="align-default" id="id4"> +<img alt="../../_images/SensorView_Dataflow.png" src="../../_images/SensorView_Dataflow.png" /> +<figcaption> +<p><span class="caption-text">OSI SensorView dataflow</span><a class="headerlink" href="#id4" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>From OSI development perspective, the OSI World would have to send back a SensorViewConfiguration to the sensor, with the contents describing the +actual configuration of the SensorView (since the World is maybe notable to provide the requested information). +As we have full control over the simulation environment, this back-channel is skipped and SensorView according to the sensor’S SensorView configuration +will always be provided.</p> +<p>To test whether an object is inside our sector we check +1. if it is inside the circle around the sensor with radius the detection range and +2. if it intersects a suitable polygon</p> +<p>Depending on the opening-angle the polygon in 2) has either four (angle < 180°) or five corners (angle >= 180°).</p> +<figure class="align-default" id="id5"> +<img alt="../../_images/sensor2d_kite_polygon.svg" src="../../_images/sensor2d_kite_polygon.svg" /><figcaption> +<p><span class="caption-text">four-corner kite polygon for angle lower than 180°</span><a class="headerlink" href="#id5" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Object</p></th> +<th class="head"><p>intersects circle</p></th> +<th class="head"><p>intersects polygon</p></th> +<th class="head"><p>detected</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>A</p></td> +<td><p>true</p></td> +<td><p>false</p></td> +<td><p>false</p></td> +</tr> +<tr class="row-odd"><td><p>B</p></td> +<td><p>true</p></td> +<td><p>true</p></td> +<td><p>true</p></td> +</tr> +<tr class="row-even"><td><p>C</p></td> +<td><p>false</p></td> +<td><p>true</p></td> +<td><p>false</p></td> +</tr> +<tr class="row-odd"><td><p>D</p></td> +<td><p>false</p></td> +<td><p>false</p></td> +<td><p>false</p></td> +</tr> +<tr class="row-even"><td><p>E</p></td> +<td><p>true</p></td> +<td><p>true</p></td> +<td><p>true</p></td> +</tr> +</tbody> +</table> +<figure class="align-default" id="id6"> +<img alt="../../_images/sensor2d_five_corner_polygon.svg" src="../../_images/sensor2d_five_corner_polygon.svg" /><figcaption> +<p><span class="caption-text">five-corner polygon for angle greater or equal 180° and greater 360°</span><a class="headerlink" href="#id6" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Object</p></th> +<th class="head"><p>intersects circle</p></th> +<th class="head"><p>intersects polygon</p></th> +<th class="head"><p>detected</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>A</p></td> +<td><p>false</p></td> +<td><p>true</p></td> +<td><p>false</p></td> +</tr> +<tr class="row-odd"><td><p>B</p></td> +<td><p>true</p></td> +<td><p>true</p></td> +<td><p>true</p></td> +</tr> +<tr class="row-even"><td><p>C</p></td> +<td><p>true</p></td> +<td><p>true</p></td> +<td><p>true</p></td> +</tr> +<tr class="row-odd"><td><p>D</p></td> +<td><p>true</p></td> +<td><p>false</p></td> +<td><p>false</p></td> +</tr> +<tr class="row-even"><td><p>E</p></td> +<td><p>false</p></td> +<td><p>false</p></td> +<td><p>false</p></td> +</tr> +</tbody> +</table> +<p>For convex BBoxes the above will give correct detection results.</p> +<p>Both polygons are constructed from corner-points consisting out of the intersection between the opening-angle boundaries at maximum detection range and their corresponding tangents.</p> +</section> +<section id="function"> +<h3>Function<a class="headerlink" href="#function" title="Link to this heading">ïƒ</a></h3> +<ol class="arabic simple"> +<li><p>Construct the polygon based on the opening-angle</p></li> +<li><p>Check if detection-field (polygon) intersects with any BBox (object-detection)</p></li> +<li><p>Calculate the distance between sensor and object</p></li> +<li><p>if (dist <= range && isIntersecting) -> object is in circular sector (object validation)</p></li> +</ol> +</section> +<section id="cases"> +<h3>Cases<a class="headerlink" href="#cases" title="Link to this heading">ïƒ</a></h3> +<ul class="simple"> +<li><p>For angles < 1.0 * pi a four-corner (kite) polygon can be constructed out of two radiuses and two tangents.</p></li> +<li><p>For angles > = 1.0 * pi and < 2.0 * pi a five-corner polygon can be constructed of two radiuses an three tangents.</p></li> +<li><p>For opening-angle of exactly 2.0 * pi the distance information suffices. No polygon is needed.</p></li> +</ul> +</section> +<section id="visual-obstruction"> +<h3>Visual Obstruction<a class="headerlink" href="#visual-obstruction" title="Link to this heading">ïƒ</a></h3> +<p>Objects in front of others block the sensors line of sight. +If an object is large enough it might visually obstruct others. +To check if one or multiple objects in combination “shadow†other objects the flag <code class="docutils literal notranslate"><span class="pre">EnableVisualObstruction</span></code> can be set. +Also the minimum required percentage of the visible area of an object to be detected can be specified. +The implemented algorithm uses the concept of shadow-casting, where the sensor cone is assumed to be the light source and the resulting shadow is calculated for each object. +If an object is shadowed too much, it is removed from the list of detected objects.</p> +<p>Shadow casting is calculated as follows:</p> +<ol class="arabic simple"> +<li><p>Approximate detection field as circular sector.</p></li> +<li><p>Calculate the casted shadow of each object inside the detection field.</p></li> +<li><p>Remove bounding box of object from shadow, so that it can be detected.</p></li> +<li><p>Remove the casted shadow from the detection field.</p></li> +<li><p>For each object, check if remaining area is inside the remaining polygon.</p></li> +<li><p>Remove objects, if relation <code class="docutils literal notranslate"><span class="pre">covered</span> <span class="pre">object</span> <span class="pre">area/total</span> <span class="pre">object</span> <span class="pre">area</span></code> is smaller than a parameterizable threshold.</p></li> +</ol> +<p><strong>Example</strong></p> +<p>Assume that the vehicle ahead is fully captured by the following vehicle’s sensor cone. +The outer points of the bounding box define the cone of the shadow.</p> +<figure class="align-default" id="id7"> +<img alt="../../_images/shadow_casting_step01.svg" src="../../_images/shadow_casting_step01.svg" /><figcaption> +<p><span class="caption-text">Vehicle within sensor range</span><a class="headerlink" href="#id7" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>For calculation of the shadow polygon, these boundary vectors needs to be extended w.r.t. detection range.</p> +<p>In order to calculate the shadow polygon, the bounding vectors needs to be scaled with regard to the detection area. +Note that extending only to the edges of the detection area would produce too small a shadow.</p> +<figure class="align-default" id="id8"> +<img alt="../../_images/shadow_casting_step02.svg" src="../../_images/shadow_casting_step02.svg" /><figcaption> +<p><span class="caption-text">Too small shadow with missing area in red</span><a class="headerlink" href="#id8" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>To avoid numerical scaling problems related to the length of the bounding vectors, the shadow is not stretched to a fixed size. +Instead, the internal algorithm overestimates the size of the shadow, with the detection range as a guaranteed lower limit.</p> +<figure class="align-default" id="id9"> +<img alt="../../_images/shadow_casting_step03.svg" src="../../_images/shadow_casting_step03.svg" /><figcaption> +<p><span class="caption-text">Overestimated shadow</span><a class="headerlink" href="#id9" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>For this guarantee, the actual detection area must be approximated along the edge of the ideal circle (rather than by a tangential approximation). +With regard to typical object sizes and detection areas, the error can be considered negligible.</p> +<figure class="align-default" id="id10"> +<img alt="../../_images/shadow_casting_step04.svg" src="../../_images/shadow_casting_step04.svg" /><figcaption> +<p><span class="caption-text">Approximation of the sensor cone</span><a class="headerlink" href="#id10" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>Next, the object’s bounding box is removed from the shadow.</p> +<figure class="align-default" id="id11"> +<img alt="../../_images/shadow_casting_step05.svg" src="../../_images/shadow_casting_step05.svg" /><figcaption> +<p><span class="caption-text">Approximated sensor cone and shadow with removed bounding box</span><a class="headerlink" href="#id11" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>Finally, the shadow is subtracted from the sensor cone.</p> +<figure class="align-default" id="id12"> +<img alt="../../_images/shadow_casting_step06.svg" src="../../_images/shadow_casting_step06.svg" /><figcaption> +<p><span class="caption-text">Sensor cone with removed shadow</span><a class="headerlink" href="#id12" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>The process is repeated for each object in the detection area.</p> +<figure class="align-default" id="id13"> +<img alt="../../_images/shadow_casting_step07.svg" src="../../_images/shadow_casting_step07.svg" /><figcaption> +<p><span class="caption-text">Shadow of partially occluded vehicle</span><a class="headerlink" href="#id13" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<figure class="align-default" id="id14"> +<img alt="../../_images/shadow_casting_step08.svg" src="../../_images/shadow_casting_step08.svg" /><figcaption> +<p><span class="caption-text">Sensor cone with removed shadow of partially occluded vehicle</span><a class="headerlink" href="#id14" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>Note that the order of shadow calculation and subtraction is irrelevant.</p> +</section> +</section> +<section id="sensorfusionosi"> +<h2>SensorFusionOSI<a class="headerlink" href="#sensorfusionosi" title="Link to this heading">ïƒ</a></h2> +<p>The SensorFusionOSI module allows unsorted aggregation of any data provided by sensors. All sampled detected objects can then be broadcasted to connected ADAS.</p> +<p>It collects all SensorDataSignals and merges them into a single SensorDataSignal.</p> +</section> +<section id="signalprioritizer"> +<span id="agentcomponents-signalprioritizer"></span><h2>SignalPrioritizer<a class="headerlink" href="#signalprioritizer" title="Link to this heading">ïƒ</a></h2> +<p>All channels can only have one source. +If one module can have the same input type from multiple sources a prioritizer module is needed in between. +All sources then get an output channel to the prioritizer module and the prioritizer gets an output to the module, which uses this signal. +If more than an component sends an active signal during the same timestep, the prioritizer forwards only the signal from the input channel with the highest priority. +These priorities are set as parameters in the systemconfigblueprint.xml, where the key corresponds the the id of the input channel and the value is the priority (higher value is prioritized). +In the following example the channel with id 102 has the highest priority (3) and the channel with id 100 has the lowest priority (1).</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><component></span> +<span class="w"> </span><span class="nt"><id></span>PrioritizerName<span class="nt"></id></span> +<span class="w"> </span><span class="nt"><schedule></span> +<span class="w"> </span><span class="nt"><priority></span>150<span class="nt"></priority></span> +<span class="w"> </span><span class="nt"><offset></span>0<span class="nt"></offset></span> +<span class="w"> </span><span class="nt"><cycle></span>100<span class="nt"></cycle></span> +<span class="w"> </span><span class="nt"><response></span>0<span class="nt"></response></span> +<span class="w"> </span><span class="nt"></schedule></span> +<span class="w"> </span><span class="nt"><library></span>SignalPrioritizer<span class="nt"></library></span> +<span class="w"> </span><span class="nt"><parameters></span> +<span class="w"> </span><span class="nt"><parameter></span> +<span class="w"> </span><span class="nt"><id></span>100<span class="nt"></id></span> +<span class="w"> </span><span class="nt"><type></span>int<span class="nt"></type></span> +<span class="w"> </span><span class="nt"><unit/></span> +<span class="w"> </span><span class="nt"><value></span>1<span class="nt"></value></span> +<span class="w"> </span><span class="nt"></parameter></span> +<span class="w"> </span><span class="nt"><parameter></span> +<span class="w"> </span><span class="nt"><id></span>101<span class="nt"></id></span> +<span class="w"> </span><span class="nt"><type></span>int<span class="nt"></type></span> +<span class="w"> </span><span class="nt"><unit/></span> +<span class="w"> </span><span class="nt"><value></span>2<span class="nt"></value></span> +<span class="w"> </span><span class="nt"></parameter></span> +<span class="w"> </span><span class="nt"><parameter></span> +<span class="w"> </span><span class="nt"><id></span>102<span class="nt"></id></span> +<span class="w"> </span><span class="nt"><type></span>int<span class="nt"></type></span> +<span class="w"> </span><span class="nt"><unit/></span> +<span class="w"> </span><span class="nt"><value></span>3<span class="nt"></value></span> +<span class="w"> </span><span class="nt"></parameter></span> +<span class="w"> </span><span class="nt"></parameters></span> +<span class="nt"></component></span> +</pre></div> +</div> +<p>One prioritizer module can only handle signals of the same type and the signal class must be derived from ComponentStateSignal. +If there is no signal in one time step, then the signal of the previous time step is hold.</p> +<p><strong>Existing prioritizer modules</strong></p> +<ul class="simple"> +<li><p>PrioritizerAccelerationVehicleComponents</p></li> +<li><p>PrioritizerSteeringVehicleComponents</p></li> +<li><p>PrioritizerTurningIndicator</p></li> +<li><p>PrioritizerLongitudinal</p></li> +<li><p>PrioritizerSteering</p></li> +<li><p>PrioritizerDynamics</p></li> +</ul> +</section> +<section id="componentcontroller"> +<span id="agentcomponents-componentcontroller"></span><h2>ComponentController<a class="headerlink" href="#componentcontroller" title="Link to this heading">ïƒ</a></h2> +<section id="overview"> +<h3>Overview<a class="headerlink" href="#overview" title="Link to this heading">ïƒ</a></h3> +<p>The ComponentController (CC) is used to configure and handle dependencies between other vehicle components.</p> +<p>Example use cases could be:</p> +<ul class="simple"> +<li><p>Cruise control:</p> +<ul> +<li><p>driver requesting higher acceleration than cruise control overrides the latter</p></li> +<li><p>driver braking deactivates cruise control</p></li> +</ul> +</li> +<li><p>Lane keeping assistant:</p> +<ul> +<li><p>cannot be activated by driver, if emergency braking is currently active</p></li> +<li><p>stays active, when emergency braking occurs (i. e. by other ADAS)</p></li> +</ul> +</li> +</ul> +<p>The responsibilies of the CC are:</p> +<ul class="simple"> +<li><p>Handling of all dependencies between <em>VehicleComponents</em> in case a component wants to activate</p></li> +<li><p>Make information about driver, <em>TrajectoryFollower</em> and other <em>VehicleComponents</em> available to each other</p></li> +<li><p>Determine the highest allowed activation state of a component and notify the affected component about this state</p></li> +</ul> +<p>To achieve this tasks, each component is assigned a maximum allowed state in each time step. This state is of type ComponentState, +which defines <em>Disabled</em>, <em>Armed</em> or <em>Active</em> as allowed states. +Drivers can be in a state of either <em>Active</em> or <em>Passive</em>.</p> +</section> +<section id="state-handling-inside-vehicle-component"> +<h3>State handling inside Vehicle Component<a class="headerlink" href="#state-handling-inside-vehicle-component" title="Link to this heading">ïƒ</a></h3> +<p>Within a vehicle component, the information flow should be implemented as follows:</p> +<ol class="arabic simple"> +<li><p>The vehicle component retrieves the information of other components and the current maximum allowed state from the CC. +Other components include drivers, trajectory followers and all other vehicle components connected to the CC.</p></li> +<li><p>Based on that information the vehicle component determines its current desired state.</p></li> +<li><p>The desired state is sent to the CC.</p></li> +</ol> +<p>The CC handles all the dependencies between different components and determines the maximum allowed state for each component based +on the configuration of the CC.</p> +</section> +<section id="used-signals"> +<h3>Used signals<a class="headerlink" href="#used-signals" title="Link to this heading">ïƒ</a></h3> +<p>The CC communicates with the controlled components via framework signals.</p> +<p>Inputs to the ComponentController:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Source</p></th> +<th class="head"><p>Contents</p></th> +<th class="head"><p>Signal</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>TrajectoryFollower</p></td> +<td><p>Current state</p></td> +<td><p>ComponentStateSignal</p></td> +</tr> +<tr class="row-odd"><td><p>Driver</p></td> +<td><p>Current state, pedal activity</p></td> +<td><p>DriverStateSignal</p></td> +</tr> +<tr class="row-even"><td><p>VehicleComponent</p></td> +<td><p>Current state, desired state, generic ADAS parameters</p></td> +<td><p>VehicleCompToCompCtrlSignal</p></td> +</tr> +</tbody> +</table> +<p>Output to other components:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Destination</p></th> +<th class="head"><p>Contents</p></th> +<th class="head"><p>Signal</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>TrajectoryFollower</p></td> +<td><p>Current max. reachable state</p></td> +<td><p>ComponentStateSignal</p></td> +</tr> +<tr class="row-odd"><td><p>Driver</p></td> +<td><p>List of all ADAS with names, stati and types</p></td> +<td><p>AdasStateSignal</p></td> +</tr> +<tr class="row-even"><td><p>VehicleComponent</p></td> +<td><p>Current max. reachable state, list of all ADAS with names, stati and types</p></td> +<td><p>CompCtrlToVehicleCompSignal</p></td> +</tr> +</tbody> +</table> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../20_simulator_advanced.html" class="btn btn-neutral float-left" title="Simulator" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="coordinate_systems.html" class="btn btn-neutral float-right" title="Coordinate Systems" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/advanced_topics/simulator/coordinate_systems.html b/content/html/advanced_topics/simulator/coordinate_systems.html index f4e838a85653860e5fd74f142bdc8bffbfb417b4..8129fede50e43d18a0b6c7e19d8459797725f027 100644 --- a/content/html/advanced_topics/simulator/coordinate_systems.html +++ b/content/html/advanced_topics/simulator/coordinate_systems.html @@ -1,261 +1,262 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Coordinate Systems — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="EventDetector" href="event_detector.html" /> - <link rel="prev" title="Agent Components" href="agent_components.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Coordinate Systems</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#world-coordinate-system">World Coordinate System</a></li> -<li class="toctree-l3"><a class="reference internal" href="#road-coordinate-system">Road Coordinate System</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#agent-coordinate-system">Agent Coordinate System</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#sensor-coordinate-system">Sensor Coordinate System</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#conversions-between-sensordata-coordinate-systems">Conversions between SensorData coordinate systems</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> -<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> -<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> - <li class="breadcrumb-item active">Coordinate Systems</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/advanced_topics/simulator/coordinate_systems.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="coordinate-systems"> -<span id="coordinatesystems"></span><h1>Coordinate Systems<a class="headerlink" href="#coordinate-systems" title="Link to this heading">ïƒ</a></h1> -<p><strong>openPASS</strong> uses three different coordinate systems. -All systems rotate counterclockwise and use radian.</p> -<section id="world-coordinate-system"> -<span id="coordinatesystems-world"></span><h2>World Coordinate System<a class="headerlink" href="#world-coordinate-system" title="Link to this heading">ïƒ</a></h2> -<p>The world coordinate system is absolute. -It is the parent coordinate system and all other systems are relative to the world coordinate system. -This system consists of <em>x</em>, <em>y</em> and <em>z</em> (<em>z</em> is currently unused).</p> -<figure class="align-default" id="id1"> -<img alt="../../_images/WorldCoordinateSystem.svg" src="../../_images/WorldCoordinateSystem.svg" /><figcaption> -<p><span class="caption-text">World Coordinate System</span><a class="headerlink" href="#id1" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -</section> -<section id="road-coordinate-system"> -<span id="coordinatesystems-road"></span><h2>Road Coordinate System<a class="headerlink" href="#road-coordinate-system" title="Link to this heading">ïƒ</a></h2> -<p>The road coordinate system is relative to the position of the road in the world coordinate system. -It consists of <em>s</em> and <em>t</em> coordinates, where <em>s</em> describes the longitudinal position along the road. -At the beginning of the road <em>s</em> = 0, increasing with the downstream direction of the road. -The coordinate <em>t</em> describes the lateral position relative to the center of the road, where <em>t</em> > 0 indicates left side and <em>t</em> < 0 right side of the road with respect to the road direction.</p> -<figure class="align-default" id="id2"> -<img alt="../../_images/RoadCoordinateSystem.svg" src="../../_images/RoadCoordinateSystem.svg" /><figcaption> -<p><span class="caption-text">Road Coordinate System</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<section id="agent-coordinate-system"> -<span id="coordinatesystems-agent"></span><h3>Agent Coordinate System<a class="headerlink" href="#agent-coordinate-system" title="Link to this heading">ïƒ</a></h3> -<p>The agent coordinate system is relative to the position of the agent in the world coordinate system. -It uses longitudinal, lateral and height (height currently unused). -The system originates at the <em>reference point</em>, which is located at the center of the rear axle. -The longitudinal axis is parallel to the length of the car and the lateral axis is parallel to the width of the car</p> -<figure class="align-default" id="id3"> -<img alt="../../_images/AgentCoordinateSystem.svg" src="../../_images/AgentCoordinateSystem.svg" /><figcaption> -<p><span class="caption-text">Agent Coordinate System</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -</section> -</section> -<section id="sensor-coordinate-system"> -<span id="coordinatesystems-sensor"></span><h2>Sensor Coordinate System<a class="headerlink" href="#sensor-coordinate-system" title="Link to this heading">ïƒ</a></h2> -<p>Each sensor has its own coordinate system whose origin is the mounting position of the sensor. -The <em>x</em> axis points in the direction of the sensor as defined by the mounting orientation. -All values in the OSI SensorData generated by a sensor are in its sensor coordinate system. -Vectorial values such as velocity and acceleration are relative to the own vehicle’s velocity and acceleration at the sensor position.</p> -<section id="conversions-between-sensordata-coordinate-systems"> -<span id="coordinatesystems-sensor-transformation"></span><h3>Conversions between SensorData coordinate systems<a class="headerlink" href="#conversions-between-sensordata-coordinate-systems" title="Link to this heading">ïƒ</a></h3> -<p>Since all values in the SensorData are relative to the sensor the following conversions are needed.</p> -<p>In the Sensor_OSI where the SensorData is written, data for other objects is calculated according to these steps:</p> -<ol class="arabic simple"> -<li><p>Get position, velocity and acceleration from the SensorView in world coordinates</p></li> -<li><dl class="simple"> -<dt>For the position:</dt><dd><ol class="arabic simple"> -<li><p>Translation by the sensor position (in world coordinates, inverse)</p></li> -<li><p>Rotation by the sensor orientation (in world coordinates, inverse)</p></li> -</ol> -</dd> -</dl> -</li> -<li><dl class="simple"> -<dt>For the velocity and acceleration (vectorial):</dt><dd><ol class="arabic simple"> -<li><p>Subtract own velocity / acceleration at sensor position</p></li> -<li><p>Rotation by the sensor orientation (in world coordinates, inverse)</p></li> -</ol> -</dd> -</dl> -</li> -</ol> -<p>ADAS using SensorData may need to convert the values back to the agent coordinate system. -The SensorFusion_Errorless also converts the merged SensorData to agent coordinate and sets the mounting position to the agents reference point. -This calculation follows the following steps:</p> -<ol class="arabic simple"> -<li><p>Get position, velocity and acceleration from the SensorData in sensor coordinates</p></li> -<li><dl class="simple"> -<dt>For the position:</dt><dd><ol class="arabic simple"> -<li><p>Rotation by the sensor orientation (mounting position in agent coordinates)</p></li> -<li><p>Translation by the sensor position (mounting position in agent coordinates)</p></li> -</ol> -</dd> -</dl> -</li> -<li><dl class="simple"> -<dt>For the velocity and acceleration (vectorial):</dt><dd><ol class="arabic simple"> -<li><p>Calculate the difference between the ego velocity / acceleration at the sensor position to the reference point (in world coordinates)</p></li> -<li><p>Rotation of this difference by the inverse agent orientation</p></li> -<li><p>Rotation of objects’ velocity / acceleration by the sensor orientation (mounting position in agent coordinates)</p></li> -<li><p>Add results of the two previous steps</p></li> -</ol> -</dd> -</dl> -</li> -</ol> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="agent_components.html" class="btn btn-neutral float-left" title="Agent Components" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="event_detector.html" class="btn btn-neutral float-right" title="EventDetector" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Coordinate Systems — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="EventDetector" href="event_detector.html" /> + <link rel="prev" title="Agent Components" href="agent_components.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Coordinate Systems</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#world-coordinate-system">World Coordinate System</a></li> +<li class="toctree-l3"><a class="reference internal" href="#road-coordinate-system">Road Coordinate System</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#agent-coordinate-system">Agent Coordinate System</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#sensor-coordinate-system">Sensor Coordinate System</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#conversions-between-sensordata-coordinate-systems">Conversions between SensorData coordinate systems</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> +<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> +<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> + <li class="breadcrumb-item active">Coordinate Systems</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/advanced_topics/simulator/coordinate_systems.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="coordinate-systems"> +<span id="coordinatesystems"></span><h1>Coordinate Systems<a class="headerlink" href="#coordinate-systems" title="Link to this heading">ïƒ</a></h1> +<p><strong>openPASS</strong> uses three different coordinate systems. +All systems rotate counterclockwise and use radian.</p> +<section id="world-coordinate-system"> +<span id="coordinatesystems-world"></span><h2>World Coordinate System<a class="headerlink" href="#world-coordinate-system" title="Link to this heading">ïƒ</a></h2> +<p>The world coordinate system is absolute. +It is the parent coordinate system and all other systems are relative to the world coordinate system. +This system consists of <em>x</em>, <em>y</em> and <em>z</em> (<em>z</em> is currently unused).</p> +<figure class="align-default" id="id1"> +<img alt="../../_images/WorldCoordinateSystem.svg" src="../../_images/WorldCoordinateSystem.svg" /><figcaption> +<p><span class="caption-text">World Coordinate System</span><a class="headerlink" href="#id1" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +</section> +<section id="road-coordinate-system"> +<span id="coordinatesystems-road"></span><h2>Road Coordinate System<a class="headerlink" href="#road-coordinate-system" title="Link to this heading">ïƒ</a></h2> +<p>The road coordinate system is relative to the position of the road in the world coordinate system. +It consists of <em>s</em> and <em>t</em> coordinates, where <em>s</em> describes the longitudinal position along the road. +At the beginning of the road <em>s</em> = 0, increasing with the downstream direction of the road. +The coordinate <em>t</em> describes the lateral position relative to the center of the road, where <em>t</em> > 0 indicates left side and <em>t</em> < 0 right side of the road with respect to the road direction.</p> +<figure class="align-default" id="id2"> +<img alt="../../_images/RoadCoordinateSystem.svg" src="../../_images/RoadCoordinateSystem.svg" /><figcaption> +<p><span class="caption-text">Road Coordinate System</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<section id="agent-coordinate-system"> +<span id="coordinatesystems-agent"></span><h3>Agent Coordinate System<a class="headerlink" href="#agent-coordinate-system" title="Link to this heading">ïƒ</a></h3> +<p>The agent coordinate system is relative to the position of the agent in the world coordinate system. +It uses longitudinal, lateral and height (height currently unused). +The system originates at the <em>reference point</em>, which is located at the center of the rear axle. +The longitudinal axis is parallel to the length of the car and the lateral axis is parallel to the width of the car</p> +<figure class="align-default" id="id3"> +<img alt="../../_images/AgentCoordinateSystem.svg" src="../../_images/AgentCoordinateSystem.svg" /><figcaption> +<p><span class="caption-text">Agent Coordinate System</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +</section> +</section> +<section id="sensor-coordinate-system"> +<span id="coordinatesystems-sensor"></span><h2>Sensor Coordinate System<a class="headerlink" href="#sensor-coordinate-system" title="Link to this heading">ïƒ</a></h2> +<p>Each sensor has its own coordinate system whose origin is the mounting position of the sensor. +The <em>x</em> axis points in the direction of the sensor as defined by the mounting orientation. +All values in the OSI SensorData generated by a sensor are in its sensor coordinate system. +Vectorial values such as velocity and acceleration are relative to the own vehicle’s velocity and acceleration at the sensor position.</p> +<section id="conversions-between-sensordata-coordinate-systems"> +<span id="coordinatesystems-sensor-transformation"></span><h3>Conversions between SensorData coordinate systems<a class="headerlink" href="#conversions-between-sensordata-coordinate-systems" title="Link to this heading">ïƒ</a></h3> +<p>Since all values in the SensorData are relative to the sensor the following conversions are needed.</p> +<p>In the Sensor_OSI where the SensorData is written, data for other objects is calculated according to these steps:</p> +<ol class="arabic simple"> +<li><p>Get position, velocity and acceleration from the SensorView in world coordinates</p></li> +<li><dl class="simple"> +<dt>For the position:</dt><dd><ol class="arabic simple"> +<li><p>Translation by the sensor position (in world coordinates, inverse)</p></li> +<li><p>Rotation by the sensor orientation (in world coordinates, inverse)</p></li> +</ol> +</dd> +</dl> +</li> +<li><dl class="simple"> +<dt>For the velocity and acceleration (vectorial):</dt><dd><ol class="arabic simple"> +<li><p>Subtract own velocity / acceleration at sensor position</p></li> +<li><p>Rotation by the sensor orientation (in world coordinates, inverse)</p></li> +</ol> +</dd> +</dl> +</li> +</ol> +<p>ADAS using SensorData may need to convert the values back to the agent coordinate system. +The SensorFusion_Errorless also converts the merged SensorData to agent coordinate and sets the mounting position to the agents reference point. +This calculation follows the following steps:</p> +<ol class="arabic simple"> +<li><p>Get position, velocity and acceleration from the SensorData in sensor coordinates</p></li> +<li><dl class="simple"> +<dt>For the position:</dt><dd><ol class="arabic simple"> +<li><p>Rotation by the sensor orientation (mounting position in agent coordinates)</p></li> +<li><p>Translation by the sensor position (mounting position in agent coordinates)</p></li> +</ol> +</dd> +</dl> +</li> +<li><dl class="simple"> +<dt>For the velocity and acceleration (vectorial):</dt><dd><ol class="arabic simple"> +<li><p>Calculate the difference between the ego velocity / acceleration at the sensor position to the reference point (in world coordinates)</p></li> +<li><p>Rotation of this difference by the inverse agent orientation</p></li> +<li><p>Rotation of objects’ velocity / acceleration by the sensor orientation (mounting position in agent coordinates)</p></li> +<li><p>Add results of the two previous steps</p></li> +</ol> +</dd> +</dl> +</li> +</ol> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="agent_components.html" class="btn btn-neutral float-left" title="Agent Components" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="event_detector.html" class="btn btn-neutral float-right" title="EventDetector" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/advanced_topics/simulator/event_detector.html b/content/html/advanced_topics/simulator/event_detector.html index 0b013aed5db9cd7449042cdaf9bdc24be045118c..f2799dc06e2489c0c02215e614912dad699313e4 100644 --- a/content/html/advanced_topics/simulator/event_detector.html +++ b/content/html/advanced_topics/simulator/event_detector.html @@ -1,254 +1,255 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>EventDetector — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Mapping of OpenSCENARIO Actions" href="scenario_actions.html" /> - <link rel="prev" title="Coordinate Systems" href="coordinate_systems.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> -<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">EventDetector</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#collisiondetector">CollisionDetector</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> -<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> -<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> - <li class="breadcrumb-item active">EventDetector</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/advanced_topics/simulator/event_detector.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="eventdetector"> -<span id="id1"></span><h1>EventDetector<a class="headerlink" href="#eventdetector" title="Link to this heading">ïƒ</a></h1> -<p>EventDetectors are executed at the beginning of each timestep. -A detector uses its access to the world and the framework to detect specific events. -After detection, the event is usually forwarded to the EventNetwork.</p> -<p>There are multiple EventDetectors available, all of them sharing a common interface.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Each instance of an EventDetector can have its own cycle time.</p> -</div> -<section id="collisiondetector"> -<span id="eventdetector-collisiondetector"></span><h2>CollisionDetector<a class="headerlink" href="#collisiondetector" title="Link to this heading">ïƒ</a></h2> -<p>The CollisionDetector checks whether a collision has occurred. -Moving and stationary objects are taken into account. -Objects are considered as collided, if their two-dimensional bounding boxes intersect.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The calculation of the bounding box itself considers a potential inclination by the roll angle of an object (projection onto the xy-plane).</p> -</div> -<p>In case of a collision, a CollisionEvent containing the participating object Ids is created. -This type of event is picked up by the CollisionManipulator, which updates the state of the collided objects accordingly.</p> -<p>The geometric parameters of the crash configuration in terms of collision angles are determined according to Wagstrom et. al. (<a class="reference external" href="https://www-esv.nhtsa.dot.gov/Proceedings/26/26ESV-000177.pdf">https://www-esv.nhtsa.dot.gov/Proceedings/26/26ESV-000177.pdf</a>). In addition, collision velocities are stored.</p> -<figure class="align-default"> -<img alt="../../_images/crash_config.svg" src="../../_images/crash_config.svg" /></figure> -<p>Furthermore, the CollisionDetector contains an impact evaluation which estimates based on momentum the changes in velocities due to the collision, considering vehicle mass ratio and initial crash configuration, e.h. <cite>VelocityChange</cite>. The impact model behind these calculations was developed and tested with full-overlap vehicle-to-vehicle collisions.</p> -<p>The concept was described in detail at ESAR 2016 in Kolk et. al. (<a class="reference external" href="https://bast.opus.hbz-nrw.de/opus45-bast/frontdoor/deliver/index/docId/1825/file/F117_21.pdf">https://bast.opus.hbz-nrw.de/opus45-bast/frontdoor/deliver/index/docId/1825/file/F117_21.pdf</a>).</p> -<p>The parameters stored for each collision are listed in detail in the table below.</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Parameter</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>CollisionVelocity</p></td> -<td><p>velocity of host prior to the collision</p></td> -</tr> -<tr class="row-odd"><td><p>CollisionWithAgent</p></td> -<td><p>true (1) / false (0) if collision occured with another agent</p></td> -</tr> -<tr class="row-even"><td><p>HCPA</p></td> -<td><p>host collision point angle in degree</p></td> -</tr> -<tr class="row-odd"><td><p>HCPAo</p></td> -<td><p>normalized HCPA</p></td> -</tr> -<tr class="row-even"><td><p>OCPA</p></td> -<td><p>opponent collision point angle</p></td> -</tr> -<tr class="row-odd"><td><p>OCPAo</p></td> -<td><p>normalized OCPA</p></td> -</tr> -<tr class="row-even"><td><p>OYA</p></td> -<td><p>opponent yaw angle</p></td> -</tr> -<tr class="row-odd"><td><p>OpponentCollisionVelocity</p></td> -<td><p>velocity of opponent prior to the collision</p></td> -</tr> -<tr class="row-even"><td><p>OpponentPointOfContactLocalX</p></td> -<td><p>X-coordinate of opponent point of contact in local coordinate system</p></td> -</tr> -<tr class="row-odd"><td><p>OpponentPointOfContactLocalY</p></td> -<td><p>Y-coordinate of opponent point of contact in local coordinate system</p></td> -</tr> -<tr class="row-even"><td><p>OpponentVelocity</p></td> -<td><p>velocity of opponent after the collision</p></td> -</tr> -<tr class="row-odd"><td><p>OpponentVelocityChange</p></td> -<td><p>velocity change of opponent due to collision</p></td> -</tr> -<tr class="row-even"><td><p>OpponentVelocityDirection</p></td> -<td><p>velocity direction</p></td> -</tr> -<tr class="row-odd"><td><p>OpponentYawVelocity</p></td> -<td><p>opponent yaw velocity</p></td> -</tr> -<tr class="row-even"><td><p>PointOfContactLocalX</p></td> -<td><p>X-coordinate of point of contact in local coordinate system</p></td> -</tr> -<tr class="row-odd"><td><p>PointOfContactLocalY</p></td> -<td><p>Y-coordinate of opponent point of contact in local coordinate system</p></td> -</tr> -<tr class="row-even"><td><p>Velocity</p></td> -<td><p>velocity of host after the collision</p></td> -</tr> -<tr class="row-odd"><td><p>VelocityChange</p></td> -<td><p>velocity change of host due to collision</p></td> -</tr> -</tbody> -</table> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Both geometric interpretation and impact calculation only work for collisions between two car agents. A more general application is work in progress.</p> -</div> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="coordinate_systems.html" class="btn btn-neutral float-left" title="Coordinate Systems" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="scenario_actions.html" class="btn btn-neutral float-right" title="Mapping of OpenSCENARIO Actions" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>EventDetector — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Mapping of OpenSCENARIO Actions" href="scenario_actions.html" /> + <link rel="prev" title="Coordinate Systems" href="coordinate_systems.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> +<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">EventDetector</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#collisiondetector">CollisionDetector</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> +<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> +<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> + <li class="breadcrumb-item active">EventDetector</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/advanced_topics/simulator/event_detector.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="eventdetector"> +<span id="id1"></span><h1>EventDetector<a class="headerlink" href="#eventdetector" title="Link to this heading">ïƒ</a></h1> +<p>EventDetectors are executed at the beginning of each timestep. +A detector uses its access to the world and the framework to detect specific events. +After detection, the event is usually forwarded to the EventNetwork.</p> +<p>There are multiple EventDetectors available, all of them sharing a common interface.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Each instance of an EventDetector can have its own cycle time.</p> +</div> +<section id="collisiondetector"> +<span id="eventdetector-collisiondetector"></span><h2>CollisionDetector<a class="headerlink" href="#collisiondetector" title="Link to this heading">ïƒ</a></h2> +<p>The CollisionDetector checks whether a collision has occurred. +Moving and stationary objects are taken into account. +Objects are considered as collided, if their two-dimensional bounding boxes intersect.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The calculation of the bounding box itself considers a potential inclination by the roll angle of an object (projection onto the xy-plane).</p> +</div> +<p>In case of a collision, a CollisionEvent containing the participating object Ids is created. +This type of event is picked up by the CollisionManipulator, which updates the state of the collided objects accordingly.</p> +<p>The geometric parameters of the crash configuration in terms of collision angles are determined according to Wagstrom et. al. (<a class="reference external" href="https://www-esv.nhtsa.dot.gov/Proceedings/26/26ESV-000177.pdf">https://www-esv.nhtsa.dot.gov/Proceedings/26/26ESV-000177.pdf</a>). In addition, collision velocities are stored.</p> +<figure class="align-default"> +<img alt="../../_images/crash_config.svg" src="../../_images/crash_config.svg" /></figure> +<p>Furthermore, the CollisionDetector contains an impact evaluation which estimates based on momentum the changes in velocities due to the collision, considering vehicle mass ratio and initial crash configuration, e.h. <cite>VelocityChange</cite>. The impact model behind these calculations was developed and tested with full-overlap vehicle-to-vehicle collisions.</p> +<p>The concept was described in detail at ESAR 2016 in Kolk et. al. (<a class="reference external" href="https://bast.opus.hbz-nrw.de/opus45-bast/frontdoor/deliver/index/docId/1825/file/F117_21.pdf">https://bast.opus.hbz-nrw.de/opus45-bast/frontdoor/deliver/index/docId/1825/file/F117_21.pdf</a>).</p> +<p>The parameters stored for each collision are listed in detail in the table below.</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Parameter</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>CollisionVelocity</p></td> +<td><p>velocity of host prior to the collision</p></td> +</tr> +<tr class="row-odd"><td><p>CollisionWithAgent</p></td> +<td><p>true (1) / false (0) if collision occured with another agent</p></td> +</tr> +<tr class="row-even"><td><p>HCPA</p></td> +<td><p>host collision point angle in degree</p></td> +</tr> +<tr class="row-odd"><td><p>HCPAo</p></td> +<td><p>normalized HCPA</p></td> +</tr> +<tr class="row-even"><td><p>OCPA</p></td> +<td><p>opponent collision point angle</p></td> +</tr> +<tr class="row-odd"><td><p>OCPAo</p></td> +<td><p>normalized OCPA</p></td> +</tr> +<tr class="row-even"><td><p>OYA</p></td> +<td><p>opponent yaw angle</p></td> +</tr> +<tr class="row-odd"><td><p>OpponentCollisionVelocity</p></td> +<td><p>velocity of opponent prior to the collision</p></td> +</tr> +<tr class="row-even"><td><p>OpponentPointOfContactLocalX</p></td> +<td><p>X-coordinate of opponent point of contact in local coordinate system</p></td> +</tr> +<tr class="row-odd"><td><p>OpponentPointOfContactLocalY</p></td> +<td><p>Y-coordinate of opponent point of contact in local coordinate system</p></td> +</tr> +<tr class="row-even"><td><p>OpponentVelocity</p></td> +<td><p>velocity of opponent after the collision</p></td> +</tr> +<tr class="row-odd"><td><p>OpponentVelocityChange</p></td> +<td><p>velocity change of opponent due to collision</p></td> +</tr> +<tr class="row-even"><td><p>OpponentVelocityDirection</p></td> +<td><p>velocity direction</p></td> +</tr> +<tr class="row-odd"><td><p>OpponentYawVelocity</p></td> +<td><p>opponent yaw velocity</p></td> +</tr> +<tr class="row-even"><td><p>PointOfContactLocalX</p></td> +<td><p>X-coordinate of point of contact in local coordinate system</p></td> +</tr> +<tr class="row-odd"><td><p>PointOfContactLocalY</p></td> +<td><p>Y-coordinate of opponent point of contact in local coordinate system</p></td> +</tr> +<tr class="row-even"><td><p>Velocity</p></td> +<td><p>velocity of host after the collision</p></td> +</tr> +<tr class="row-odd"><td><p>VelocityChange</p></td> +<td><p>velocity change of host due to collision</p></td> +</tr> +</tbody> +</table> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Both geometric interpretation and impact calculation only work for collisions between two car agents. A more general application is work in progress.</p> +</div> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="coordinate_systems.html" class="btn btn-neutral float-left" title="Coordinate Systems" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="scenario_actions.html" class="btn btn-neutral float-right" title="Mapping of OpenSCENARIO Actions" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/advanced_topics/simulator/scenario_actions.html b/content/html/advanced_topics/simulator/scenario_actions.html index b1f62e7e8c67bd2b305a455674fbf2b3f18a10f5..3e986f666ed5bdcf5dcee940e1ef20aa59bcccde 100644 --- a/content/html/advanced_topics/simulator/scenario_actions.html +++ b/content/html/advanced_topics/simulator/scenario_actions.html @@ -1,537 +1,596 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Mapping of OpenSCENARIO Actions — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Simulation" href="simulation.html" /> - <link rel="prev" title="EventDetector" href="event_detector.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> -<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> -<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Mapping of OpenSCENARIO Actions</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#acquirepositionaction">AcquirePositionAction</a></li> -<li class="toctree-l3"><a class="reference internal" href="#assignrouteaction">AssignRouteAction</a></li> -<li class="toctree-l3"><a class="reference internal" href="#customcommandaction">CustomCommandAction</a></li> -<li class="toctree-l3"><a class="reference internal" href="#followtrajectoryaction">FollowTrajectoryAction</a></li> -<li class="toctree-l3"><a class="reference internal" href="#lanechangeaction">LaneChangeAction</a></li> -<li class="toctree-l3"><a class="reference internal" href="#speedaction">SpeedAction</a></li> -<li class="toctree-l3"><a class="reference internal" href="#teleportaction">TeleportAction</a></li> -<li class="toctree-l3"><a class="reference internal" href="#trafficsignalaction">TrafficSignalAction</a></li> -<li class="toctree-l3"><a class="reference internal" href="#trafficsignalstateaction">TrafficSignalStateAction</a></li> -<li class="toctree-l3"><a class="reference internal" href="#trafficsinkaction">TrafficSinkAction</a></li> -<li class="toctree-l3"><a class="reference internal" href="#visibilityaction">VisibilityAction</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> -<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> -<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> - <li class="breadcrumb-item active">Mapping of OpenSCENARIO Actions</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/advanced_topics/simulator/scenario_actions.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="mapping-of-openscenario-actions"> -<span id="mapping-scenario-actions"></span><h1>Mapping of OpenSCENARIO Actions<a class="headerlink" href="#mapping-of-openscenario-actions" title="Link to this heading">ïƒ</a></h1> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Layer/Component</p></th> -<th class="head"><p>API/Datatype</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OpenScenarioEngine</p></td> -<td><p>mantle_api</p></td> -</tr> -<tr class="row-odd"><td><p>opSimualtion</p></td> -<td><p>openPASS</p></td> -</tr> -<tr class="row-even"><td><p>FMU Interface</p></td> -<td><p>osi3</p></td> -</tr> -</tbody> -</table> -<section id="acquirepositionaction"> -<h2>AcquirePositionAction<a class="headerlink" href="#acquirepositionaction" title="Link to this heading">ïƒ</a></h2> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> -<th class="head"><p>Used Methods/Classes/API</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OpenSCENARIO</p></td> -<td><p><strong>AcquirePositionAction</strong></p></td> -</tr> -<tr class="row-odd"><td><p>mantle_api</p></td> -<td><p>Entity::AssignRoute(UniqueId, RouteDefinition) -Entity::GetPosition() -GeometryHelper::TranslateGlobalPositionLocally()</p></td> -</tr> -<tr class="row-even"><td rowspan="2"><p>openPASS</p></td> -<td><p>SpawnParameter -AgentInterface::GetPositionX() -AgentInterface::GetPositionY() -AgentInterface::GetYaw()</p></td> -</tr> -<tr class="row-odd"><td><p>RouteSamplerInterface::CalculateRouteFromWaypoints(std::vector<mantle_api::RouteWaypoint>) -EgoAgentInterface::SetRoadGraph(RoadGraph, RoadGraphVertex, RoadGraphVertex)</p></td> -</tr> -<tr class="row-even"><td><p>osi3</p></td> -<td><p>x – not implemented</p></td> -</tr> -</tbody> -</table> -</section> -<section id="assignrouteaction"> -<h2>AssignRouteAction<a class="headerlink" href="#assignrouteaction" title="Link to this heading">ïƒ</a></h2> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> -<th class="head"><p>Used Methods/Classes/API</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OpenSCENARIO</p></td> -<td><p><strong>AssignRouteAction</strong></p></td> -</tr> -<tr class="row-odd"><td><p>mantle_api</p></td> -<td><p>Entity::AssignRoute(UniqueId, RouteDefinition)</p></td> -</tr> -<tr class="row-even"><td><p>openPASS</p></td> -<td><p>RouteSamplerInterface::CalculateRouteFromWaypoints(std::vector<mantle_api::RouteWaypoint>) -EgoAgentInterface::SetRoadGraph(RoadGraph, RoadGraphVertex, RoadGraphVertex)</p></td> -</tr> -<tr class="row-odd"><td><p>osi3</p></td> -<td><p>x – not relevant</p></td> -</tr> -</tbody> -</table> -</section> -<section id="customcommandaction"> -<h2>CustomCommandAction<a class="headerlink" href="#customcommandaction" title="Link to this heading">ïƒ</a></h2> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> -<th class="head"><p>Used Methods/Classes/API</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OpenSCENARIO</p></td> -<td><p><strong>CustomCommandAction</strong></p></td> -</tr> -<tr class="row-odd"><td><p>mantle_api</p></td> -<td><p>ExecuteCustomCommand(actors, type, command)</p></td> -</tr> -<tr class="row-even"><td><p>openPASS</p></td> -<td><p>AddCustomCommand(command) -GetCustomCommands() -ComponentControllerImplementation::Trigger(time) -TrajectoryFollowerCommonBase::Trigger(time)</p></td> -</tr> -<tr class="row-odd"><td><p>osi3</p></td> -<td><p>osi3::TrafficAction::CustomAction -TrafficAction::mutable_custom_action() -TrafficAction_CustomAction::set_command(command)</p></td> -</tr> -</tbody> -</table> -</section> -<section id="followtrajectoryaction"> -<h2>FollowTrajectoryAction<a class="headerlink" href="#followtrajectoryaction" title="Link to this heading">ïƒ</a></h2> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> -<th class="head"><p>Used Methods/Classes/API</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OpenSCENARIO</p></td> -<td><p><strong>FollowTrajectoryAction</strong></p></td> -</tr> -<tr class="row-odd"><td><p>mantle_api</p></td> -<td><p>UpdateControlStrategies(FollowTrajectoryControlStrategy) -HasControlStrategyGoalBeenReached(ControlStrategyType::kFollowTrajectory) -GeometryHelper::TranslateGlobalPositionLocally(PolyLine) -MovementDomain::kBoth</p></td> -</tr> -<tr class="row-even"><td><p>openPASS</p></td> -<td><p>SetStrategies(MovementDomain::kBoth, ControlStrategyType::kFollowTrajectory) -Algorithm_Routecontrol_Implementation::ReadWayPointData() -DynamicsScenarioImplementation::ReadWayPointData() -TrajectoryFollowerImplementation::Trigger(time) -FmuHelper::AddTrafficCommandActionFromOpenScenarioTrajectory(TrafficCommand::add_action(), Trajectory)</p></td> -</tr> -<tr class="row-odd"><td rowspan="2"><p>osi3</p></td> -<td><p><strong>osi3::TrafficAction::FollowTrajectoryAction</strong></p> -<p>TrafficAction::mutable_follow_trajectory_action() -TrafficAction_FollowTrajectoryAction::add_trajectory_point()</p> -</td> -</tr> -<tr class="row-even"><td><p><strong>osi3::TrafficAction::FollowPathAction</strong></p> -<p>TrafficAction::mutable_follow_path_action() -TrafficAction_FollowPathAction::add_path_point()</p> -</td> -</tr> -</tbody> -</table> -</section> -<section id="lanechangeaction"> -<h2>LaneChangeAction<a class="headerlink" href="#lanechangeaction" title="Link to this heading">ïƒ</a></h2> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> -<th class="head"><p>Used Methods/Classes/API</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td rowspan="3"><p>OpenSCENARIO</p></td> -<td><p><strong>LaneChangeAction</strong></p> -<p>LaneChangeActionImpl::GetLaneChangeTarget() -ConvertScenarioLaneChangeTarget(ILaneChangeTarget) -> mantle_api::LaneId</p> -</td> -</tr> -<tr class="row-odd"><td><p><strong>RelativeTargetLane</strong></p> -<p>LaneChangeTargetImpl::GetRelativeTargetLane() -ConvertScenarioRelativeTargetLane(IRelativeTargetLane) -> mantle_api::LaneId</p> -</td> -</tr> -<tr class="row-even"><td><p><strong>AbsoluteTargetLane</strong></p> -<p>LaneChangeTargetImpl::GetAbsoluteTargetLane() -ConvertScenarioAbsoluteTargetLane(IAbsoluteTargetLane) -> mantle_api::LaneId</p> -</td> -</tr> -<tr class="row-odd"><td rowspan="2"><p>mantle_api</p></td> -<td><p>UpdateControlStrategies(PerformLaneChangeControlStrategy) -(ControlStrategyType::kPerformLaneChange)</p></td> -</tr> -<tr class="row-even"><td><p><strong>Relative</strong></p> -<p>LaneLocationQueryService::GetRelativeLaneId()</p> -</td> -</tr> -<tr class="row-odd"><td><p>openPASS</p></td> -<td><p>SetStrategies(MovementDomain::kLateral, ControlStrategyType::kPerformLaneChange) -DynamicsScenarioImplementation::CalculateSinusiodalLaneChange(PerformLaneChangeControlStrategy) -DynamicsScenarioImplementation::ReadWayPointData()</p></td> -</tr> -<tr class="row-even"><td><p>osi3</p></td> -<td><p>x – not implemented</p></td> -</tr> -</tbody> -</table> -</section> -<section id="speedaction"> -<h2>SpeedAction<a class="headerlink" href="#speedaction" title="Link to this heading">ïƒ</a></h2> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> -<th class="head"><p>Used Methods/Classes/API</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OpenSCENARIO</p></td> -<td><p><strong>SpeedAction</strong> -SetLinearVelocitySplineControlStrategy(std::string)</p></td> -</tr> -<tr class="row-odd"><td><p>mantle_api</p></td> -<td><p>UpdateControlStrategies(FollowVelocitySplineControlStrategy) -HasControlStrategyGoalBeenReached(ControlStrategyType::kFollowVelocitySpline) -SetSpeed(IEntity, units::velocity::meters_per_second_t) -MovementDomain::kLongitudinal</p></td> -</tr> -<tr class="row-even"><td><p>openPASS</p></td> -<td><p>SetStrategies(MovementDomain::kLongitudinal, ControlStrategyType::kFollowVelocitySpline) -ControlStrategies::HasNewLongitudinalStrategy() -DynamicsScenarioImplementation::GetVelocityFromSplines()</p></td> -</tr> -<tr class="row-odd"><td><p>osi3</p></td> -<td><p>osi3::TrafficAction::SpeedAction -TrafficAction::mutable_speed_action() -TrafficAction_CustomAction::set_absolute_target_speed(targetSpeed)</p></td> -</tr> -</tbody> -</table> -</section> -<section id="teleportaction"> -<h2>TeleportAction<a class="headerlink" href="#teleportaction" title="Link to this heading">ïƒ</a></h2> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> -<th class="head"><p>Used Methods/Classes/API</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OpenSCENARIO</p></td> -<td><p><strong>TeleportAction</strong></p></td> -</tr> -<tr class="row-odd"><td><p>mantle_api</p></td> -<td><p>Entity::SetPosition(Vec3<units::length::meter_t>) -Entity::SetOrientation(Orientation3<units::angle::radian_t>) -Entity::SetAssignedLaneIds(std::vector<uint64_t>) -GeometryHelper::TranslateGlobalPositionLocally(…) -LaneLocationQueryService::GetUpwardsShiftedLanePosition(…) -LaneLocationQueryService::GetLaneIdsAtPosition(…)</p></td> -</tr> -<tr class="row-even"><td><p>openPASS</p></td> -<td><p>RouteSampler::Sample(mantle_api::Vec3<units::length::meter_t>, units::angle::radian_t) -AgentInterface::SetPositionX(units::length::meter_t) -AgentInterface::SetPositionY(units::length::meter_t) -AgentInterface:SetYaw(units::angle::radian_t)</p></td> -</tr> -<tr class="row-odd"><td><p>osi3</p></td> -<td><p>x – not relevant</p></td> -</tr> -</tbody> -</table> -</section> -<section id="trafficsignalaction"> -<h2>TrafficSignalAction<a class="headerlink" href="#trafficsignalaction" title="Link to this heading">ïƒ</a></h2> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> -<th class="head"><p>Used Methods/Classes/API</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OpenSCENARIO</p></td> -<td><p><strong>TrafficSignalAction</strong></p></td> -</tr> -<tr class="row-odd"><td><p>mantle_api</p></td> -<td><p>SetTrafficSignalState(std::string name, std::string state)</p></td> -</tr> -<tr class="row-even"><td><p>openPASS</p></td> -<td><p>WorldData::GetTrafficSignIdMapping() -WorldData::GetSignalType(Id) -WorldData::GetTrafficLight(Id) -ThreeSignalsTrafficLight::SetState(CommonTrafficLight::State) -TwoSignalsTrafficLight::SetState(CommonTrafficLight::State) -OneSignalsTrafficLight::SetState(CommonTrafficLight::State) -DataBuffer::PutAcyclic</p></td> -</tr> -<tr class="row-odd"><td><p>osi3</p></td> -<td><p>TrafficLight_Classification::set_mode(::osi3::TrafficLight_Classification_Mode)</p></td> -</tr> -</tbody> -</table> -</section> -<section id="trafficsignalstateaction"> -<h2>TrafficSignalStateAction<a class="headerlink" href="#trafficsignalstateaction" title="Link to this heading">ïƒ</a></h2> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> -<th class="head"><p>Used Methods/Classes/API</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OpenSCENARIO</p></td> -<td><p><strong>TrafficSignalStateAction</strong></p></td> -</tr> -<tr class="row-odd"><td><p>mantle_api</p></td> -<td><p>SetTrafficSignalState(std::string name, std::string state)</p></td> -</tr> -<tr class="row-even"><td><p>openPASS</p></td> -<td><p>WorldData::GetTrafficSignIdMapping() -WorldData::GetSignalType(Id) -WorldData::GetTrafficLight(Id) -ThreeSignalsTrafficLight::SetState(CommonTrafficLight::State) -TwoSignalsTrafficLight::SetState(CommonTrafficLight::State) -OneSignalsTrafficLight::SetState(CommonTrafficLight::State) -DataBuffer::PutAcyclic</p></td> -</tr> -<tr class="row-odd"><td><p>osi3</p></td> -<td><p>TrafficLight_Classification::set_mode(::osi3::TrafficLight_Classification_Mode)</p></td> -</tr> -</tbody> -</table> -</section> -<section id="trafficsinkaction"> -<h2>TrafficSinkAction<a class="headerlink" href="#trafficsinkaction" title="Link to this heading">ïƒ</a></h2> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> -<th class="head"><p>Used Methods/Classes/API</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OpenSCENARIO</p></td> -<td><p><strong>TrafficSinkAction</strong></p> -<p>ConvertScenarioTrafficDefinition(NET_ASAM_OPENSCENARIO::v1_1::ITrafficDefinition)</p> -</td> -</tr> -<tr class="row-odd"><td><p>mantle_api</p></td> -<td><p>Entity::GetPosition() -GeometryHelper::TranslateGlobalPositionLocally()</p></td> -</tr> -<tr class="row-even"><td rowspan="2"><p>openPASS</p></td> -<td><p>SpawnParameter</p></td> -</tr> -<tr class="row-odd"><td><p>AgentInterface::GetPositionX() -AgentInterface::GetPositionY() -AgentInterface:GetYaw()</p></td> -</tr> -<tr class="row-even"><td><p>osi3</p></td> -<td><p>x – not relevant</p></td> -</tr> -</tbody> -</table> -</section> -<section id="visibilityaction"> -<h2>VisibilityAction<a class="headerlink" href="#visibilityaction" title="Link to this heading">ïƒ</a></h2> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> -<th class="head"><p>Used Methods/Classes/API</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OpenSCENARIO</p></td> -<td><p><strong>VisibilityAction</strong></p></td> -</tr> -<tr class="row-odd"><td><p>mantle_api</p></td> -<td><p>SetVisibility(EntityVisibilityConfig)</p></td> -</tr> -<tr class="row-even"><td><p>openPASS</p></td> -<td><p>x – not implemented</p></td> -</tr> -<tr class="row-odd"><td><p>osi3</p></td> -<td><p>x – not implemented</p></td> -</tr> -</tbody> -</table> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="event_detector.html" class="btn btn-neutral float-left" title="EventDetector" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="simulation.html" class="btn btn-neutral float-right" title="Simulation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Mapping of OpenSCENARIO Actions — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Simulation" href="simulation.html" /> + <link rel="prev" title="EventDetector" href="event_detector.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> +<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> +<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Mapping of OpenSCENARIO Actions</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#acquirepositionaction">AcquirePositionAction</a></li> +<li class="toctree-l3"><a class="reference internal" href="#assignrouteaction">AssignRouteAction</a></li> +<li class="toctree-l3"><a class="reference internal" href="#customcommandaction">CustomCommandAction</a></li> +<li class="toctree-l3"><a class="reference internal" href="#followtrajectoryaction">FollowTrajectoryAction</a></li> +<li class="toctree-l3"><a class="reference internal" href="#lanechangeaction">LaneChangeAction</a></li> +<li class="toctree-l3"><a class="reference internal" href="#lightstateaction">LightStateAction</a></li> +<li class="toctree-l3"><a class="reference internal" href="#speedaction">SpeedAction</a></li> +<li class="toctree-l3"><a class="reference internal" href="#teleportaction">TeleportAction</a></li> +<li class="toctree-l3"><a class="reference internal" href="#trafficsignalaction">TrafficSignalAction</a></li> +<li class="toctree-l3"><a class="reference internal" href="#trafficsignalstateaction">TrafficSignalStateAction</a></li> +<li class="toctree-l3"><a class="reference internal" href="#trafficsinkaction">TrafficSinkAction</a></li> +<li class="toctree-l3"><a class="reference internal" href="#visibilityaction">VisibilityAction</a></li> +<li class="toctree-l3"><a class="reference internal" href="#id1">LightStateAction</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> +<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> +<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> + <li class="breadcrumb-item active">Mapping of OpenSCENARIO Actions</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/advanced_topics/simulator/scenario_actions.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="mapping-of-openscenario-actions"> +<span id="mapping-scenario-actions"></span><h1>Mapping of OpenSCENARIO Actions<a class="headerlink" href="#mapping-of-openscenario-actions" title="Link to this heading">ïƒ</a></h1> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Layer/Component</p></th> +<th class="head"><p>API/Datatype</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenScenarioEngine</p></td> +<td><p>mantle_api</p></td> +</tr> +<tr class="row-odd"><td><p>opSimualtion</p></td> +<td><p>openPASS</p></td> +</tr> +<tr class="row-even"><td><p>FMU Interface</p></td> +<td><p>osi3</p></td> +</tr> +</tbody> +</table> +<section id="acquirepositionaction"> +<h2>AcquirePositionAction<a class="headerlink" href="#acquirepositionaction" title="Link to this heading">ïƒ</a></h2> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> +<th class="head"><p>Used Methods/Classes/API</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenSCENARIO</p></td> +<td><p><strong>AcquirePositionAction</strong></p></td> +</tr> +<tr class="row-odd"><td><p>mantle_api</p></td> +<td><p>Entity::AssignRoute(UniqueId, RouteDefinition) +Entity::GetPosition() +GeometryHelper::TranslateGlobalPositionLocally()</p></td> +</tr> +<tr class="row-even"><td rowspan="2"><p>openPASS</p></td> +<td><p>SpawnParameter +AgentInterface::GetPositionX() +AgentInterface::GetPositionY() +AgentInterface::GetYaw()</p></td> +</tr> +<tr class="row-odd"><td><p>RouteSamplerInterface::CalculateRouteFromWaypoints(std::vector<mantle_api::RouteWaypoint>) +EgoAgentInterface::SetRoadGraph(RoadGraph, RoadGraphVertex, RoadGraphVertex)</p></td> +</tr> +<tr class="row-even"><td><p>osi3</p></td> +<td><p>x – not implemented</p></td> +</tr> +</tbody> +</table> +</section> +<section id="assignrouteaction"> +<h2>AssignRouteAction<a class="headerlink" href="#assignrouteaction" title="Link to this heading">ïƒ</a></h2> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> +<th class="head"><p>Used Methods/Classes/API</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenSCENARIO</p></td> +<td><p><strong>AssignRouteAction</strong></p></td> +</tr> +<tr class="row-odd"><td><p>mantle_api</p></td> +<td><p>Entity::AssignRoute(UniqueId, RouteDefinition)</p></td> +</tr> +<tr class="row-even"><td><p>openPASS</p></td> +<td><p>RouteSamplerInterface::CalculateRouteFromWaypoints(std::vector<mantle_api::RouteWaypoint>) +EgoAgentInterface::SetRoadGraph(RoadGraph, RoadGraphVertex, RoadGraphVertex)</p></td> +</tr> +<tr class="row-odd"><td><p>osi3</p></td> +<td><p>x – not relevant</p></td> +</tr> +</tbody> +</table> +</section> +<section id="customcommandaction"> +<h2>CustomCommandAction<a class="headerlink" href="#customcommandaction" title="Link to this heading">ïƒ</a></h2> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> +<th class="head"><p>Used Methods/Classes/API</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenSCENARIO</p></td> +<td><p><strong>CustomCommandAction</strong></p></td> +</tr> +<tr class="row-odd"><td><p>mantle_api</p></td> +<td><p>ExecuteCustomCommand(actors, type, command)</p></td> +</tr> +<tr class="row-even"><td><p>openPASS</p></td> +<td><p>AddCustomCommand(command) +GetCustomCommands() +ComponentControllerImplementation::Trigger(time) +TrajectoryFollowerCommonBase::Trigger(time)</p></td> +</tr> +<tr class="row-odd"><td><p>osi3</p></td> +<td><p>osi3::TrafficAction::CustomAction +TrafficAction::mutable_custom_action() +TrafficAction_CustomAction::set_command(command)</p></td> +</tr> +</tbody> +</table> +</section> +<section id="followtrajectoryaction"> +<h2>FollowTrajectoryAction<a class="headerlink" href="#followtrajectoryaction" title="Link to this heading">ïƒ</a></h2> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> +<th class="head"><p>Used Methods/Classes/API</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenSCENARIO</p></td> +<td><p><strong>FollowTrajectoryAction</strong></p></td> +</tr> +<tr class="row-odd"><td><p>mantle_api</p></td> +<td><p>UpdateControlStrategies(FollowTrajectoryControlStrategy) +HasControlStrategyGoalBeenReached(ControlStrategyType::kFollowTrajectory) +GeometryHelper::TranslateGlobalPositionLocally(PolyLine) +MovementDomain::kBoth</p></td> +</tr> +<tr class="row-even"><td><p>openPASS</p></td> +<td><p>SetStrategies(MovementDomain::kBoth, ControlStrategyType::kFollowTrajectory) +Algorithm_Routecontrol_Implementation::ReadWayPointData() +DynamicsScenarioImplementation::ReadWayPointData() +TrajectoryFollowerImplementation::Trigger(time) +FmuHelper::AddTrafficCommandActionFromOpenScenarioTrajectory(TrafficCommand::add_action(), Trajectory)</p></td> +</tr> +<tr class="row-odd"><td rowspan="2"><p>osi3</p></td> +<td><p><strong>osi3::TrafficAction::FollowTrajectoryAction</strong></p> +<p>TrafficAction::mutable_follow_trajectory_action() +TrafficAction_FollowTrajectoryAction::add_trajectory_point()</p> +</td> +</tr> +<tr class="row-even"><td><p><strong>osi3::TrafficAction::FollowPathAction</strong></p> +<p>TrafficAction::mutable_follow_path_action() +TrafficAction_FollowPathAction::add_path_point()</p> +</td> +</tr> +</tbody> +</table> +</section> +<section id="lanechangeaction"> +<h2>LaneChangeAction<a class="headerlink" href="#lanechangeaction" title="Link to this heading">ïƒ</a></h2> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> +<th class="head"><p>Used Methods/Classes/API</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td rowspan="3"><p>OpenSCENARIO</p></td> +<td><p><strong>LaneChangeAction</strong></p> +<p>LaneChangeActionImpl::GetLaneChangeTarget() +ConvertScenarioLaneChangeTarget(ILaneChangeTarget) -> mantle_api::LaneId</p> +</td> +</tr> +<tr class="row-odd"><td><p><strong>RelativeTargetLane</strong></p> +<p>LaneChangeTargetImpl::GetRelativeTargetLane() +ConvertScenarioRelativeTargetLane(IRelativeTargetLane) -> mantle_api::LaneId</p> +</td> +</tr> +<tr class="row-even"><td><p><strong>AbsoluteTargetLane</strong></p> +<p>LaneChangeTargetImpl::GetAbsoluteTargetLane() +ConvertScenarioAbsoluteTargetLane(IAbsoluteTargetLane) -> mantle_api::LaneId</p> +</td> +</tr> +<tr class="row-odd"><td rowspan="2"><p>mantle_api</p></td> +<td><p>UpdateControlStrategies(PerformLaneChangeControlStrategy) +(ControlStrategyType::kPerformLaneChange)</p></td> +</tr> +<tr class="row-even"><td><p><strong>Relative</strong></p> +<p>LaneLocationQueryService::GetRelativeLaneId()</p> +</td> +</tr> +<tr class="row-odd"><td><p>openPASS</p></td> +<td><p>SetStrategies(MovementDomain::kLateral, ControlStrategyType::kPerformLaneChange) +DynamicsScenarioImplementation::CalculateSinusiodalLaneChange(PerformLaneChangeControlStrategy) +DynamicsScenarioImplementation::ReadWayPointData()</p></td> +</tr> +<tr class="row-even"><td><p>osi3</p></td> +<td><p>x – not implemented</p></td> +</tr> +</tbody> +</table> +</section> +<section id="lightstateaction"> +<h2>LightStateAction<a class="headerlink" href="#lightstateaction" title="Link to this heading">ïƒ</a></h2> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> +<th class="head"><p>Used Methods/Classes/API</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenSCENARIO</p></td> +<td><p><strong>LightStateAction</strong></p></td> +</tr> +<tr class="row-odd"><td><p>mantle_api</p></td> +<td><p>UpdateControlStrategies(FollowVelocitySplineControlStrategy)</p></td> +</tr> +<tr class="row-even"><td><p>openPASS</p></td> +<td><p>SetStrategies(std::vector<std::shared_ptr<mantle_api::ControlStrategy>>)</p></td> +</tr> +<tr class="row-odd"><td><p>osi3</p></td> +<td><p>osi3::TrafficAction::CustomAction +CustomAction::command_type(“UpdateLightState <LightType>â€) +CustomAction::command(“<LightState>â€)</p></td> +</tr> +</tbody> +</table> +</section> +<section id="speedaction"> +<h2>SpeedAction<a class="headerlink" href="#speedaction" title="Link to this heading">ïƒ</a></h2> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> +<th class="head"><p>Used Methods/Classes/API</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenSCENARIO</p></td> +<td><p><strong>SpeedAction</strong> +SetLinearVelocitySplineControlStrategy(std::string)</p></td> +</tr> +<tr class="row-odd"><td><p>mantle_api</p></td> +<td><p>UpdateControlStrategies(FollowVelocitySplineControlStrategy) +HasControlStrategyGoalBeenReached(ControlStrategyType::kFollowVelocitySpline) +SetSpeed(IEntity, units::velocity::meters_per_second_t) +MovementDomain::kLongitudinal</p></td> +</tr> +<tr class="row-even"><td><p>openPASS</p></td> +<td><p>SetStrategies(MovementDomain::kLongitudinal, ControlStrategyType::kFollowVelocitySpline) +ControlStrategies::HasNewLongitudinalStrategy() +DynamicsScenarioImplementation::GetVelocityFromSplines()</p></td> +</tr> +<tr class="row-odd"><td><p>osi3</p></td> +<td><p>osi3::TrafficAction::SpeedAction +TrafficAction::mutable_speed_action() +TrafficAction_CustomAction::set_absolute_target_speed(targetSpeed)</p></td> +</tr> +</tbody> +</table> +</section> +<section id="teleportaction"> +<h2>TeleportAction<a class="headerlink" href="#teleportaction" title="Link to this heading">ïƒ</a></h2> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> +<th class="head"><p>Used Methods/Classes/API</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenSCENARIO</p></td> +<td><p><strong>TeleportAction</strong></p></td> +</tr> +<tr class="row-odd"><td><p>mantle_api</p></td> +<td><p>Entity::SetPosition(Vec3<units::length::meter_t>) +Entity::SetOrientation(Orientation3<units::angle::radian_t>) +Entity::SetAssignedLaneIds(std::vector<uint64_t>) +GeometryHelper::TranslateGlobalPositionLocally(…) +LaneLocationQueryService::GetUpwardsShiftedLanePosition(…) +LaneLocationQueryService::GetLaneIdsAtPosition(…)</p></td> +</tr> +<tr class="row-even"><td><p>openPASS</p></td> +<td><p>RouteSampler::Sample(mantle_api::Vec3<units::length::meter_t>, units::angle::radian_t) +AgentInterface::SetPositionX(units::length::meter_t) +AgentInterface::SetPositionY(units::length::meter_t) +AgentInterface:SetYaw(units::angle::radian_t)</p></td> +</tr> +<tr class="row-odd"><td><p>osi3</p></td> +<td><p>x – not relevant</p></td> +</tr> +</tbody> +</table> +</section> +<section id="trafficsignalaction"> +<h2>TrafficSignalAction<a class="headerlink" href="#trafficsignalaction" title="Link to this heading">ïƒ</a></h2> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> +<th class="head"><p>Used Methods/Classes/API</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenSCENARIO</p></td> +<td><p><strong>TrafficSignalAction</strong></p></td> +</tr> +<tr class="row-odd"><td><p>mantle_api</p></td> +<td><p>SetTrafficSignalState(std::string name, std::string state)</p></td> +</tr> +<tr class="row-even"><td><p>openPASS</p></td> +<td><p>WorldData::GetTrafficSignIdMapping() +WorldData::GetSignalType(Id) +WorldData::GetTrafficLight(Id) +ThreeSignalsTrafficLight::SetState(CommonTrafficLight::State) +TwoSignalsTrafficLight::SetState(CommonTrafficLight::State) +OneSignalsTrafficLight::SetState(CommonTrafficLight::State) +DataBuffer::PutAcyclic</p></td> +</tr> +<tr class="row-odd"><td><p>osi3</p></td> +<td><p>TrafficLight_Classification::set_mode(::osi3::TrafficLight_Classification_Mode)</p></td> +</tr> +</tbody> +</table> +</section> +<section id="trafficsignalstateaction"> +<h2>TrafficSignalStateAction<a class="headerlink" href="#trafficsignalstateaction" title="Link to this heading">ïƒ</a></h2> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> +<th class="head"><p>Used Methods/Classes/API</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenSCENARIO</p></td> +<td><p><strong>TrafficSignalStateAction</strong></p></td> +</tr> +<tr class="row-odd"><td><p>mantle_api</p></td> +<td><p>SetTrafficSignalState(std::string name, std::string state)</p></td> +</tr> +<tr class="row-even"><td><p>openPASS</p></td> +<td><p>WorldData::GetTrafficSignIdMapping() +WorldData::GetSignalType(Id) +WorldData::GetTrafficLight(Id) +ThreeSignalsTrafficLight::SetState(CommonTrafficLight::State) +TwoSignalsTrafficLight::SetState(CommonTrafficLight::State) +OneSignalsTrafficLight::SetState(CommonTrafficLight::State) +DataBuffer::PutAcyclic</p></td> +</tr> +<tr class="row-odd"><td><p>osi3</p></td> +<td><p>TrafficLight_Classification::set_mode(::osi3::TrafficLight_Classification_Mode)</p></td> +</tr> +</tbody> +</table> +</section> +<section id="trafficsinkaction"> +<h2>TrafficSinkAction<a class="headerlink" href="#trafficsinkaction" title="Link to this heading">ïƒ</a></h2> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> +<th class="head"><p>Used Methods/Classes/API</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenSCENARIO</p></td> +<td><p><strong>TrafficSinkAction</strong></p> +<p>ConvertScenarioTrafficDefinition(NET_ASAM_OPENSCENARIO::v1_1::ITrafficDefinition)</p> +</td> +</tr> +<tr class="row-odd"><td><p>mantle_api</p></td> +<td><p>Entity::GetPosition() +GeometryHelper::TranslateGlobalPositionLocally()</p></td> +</tr> +<tr class="row-even"><td rowspan="2"><p>openPASS</p></td> +<td><p>SpawnParameter</p></td> +</tr> +<tr class="row-odd"><td><p>AgentInterface::GetPositionX() +AgentInterface::GetPositionY() +AgentInterface:GetYaw()</p></td> +</tr> +<tr class="row-even"><td><p>osi3</p></td> +<td><p>x – not relevant</p></td> +</tr> +</tbody> +</table> +</section> +<section id="visibilityaction"> +<h2>VisibilityAction<a class="headerlink" href="#visibilityaction" title="Link to this heading">ïƒ</a></h2> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> +<th class="head"><p>Used Methods/Classes/API</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenSCENARIO</p></td> +<td><p><strong>VisibilityAction</strong></p></td> +</tr> +<tr class="row-odd"><td><p>mantle_api</p></td> +<td><p>SetVisibility(EntityVisibilityConfig)</p></td> +</tr> +<tr class="row-even"><td><p>openPASS</p></td> +<td><p>x – not implemented</p></td> +</tr> +<tr class="row-odd"><td><p>osi3</p></td> +<td><p>x – not implemented</p></td> +</tr> +</tbody> +</table> +</section> +<section id="id1"> +<h2>LightStateAction<a class="headerlink" href="#id1" title="Link to this heading">ïƒ</a></h2> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>API/Datatype</p></th> +<th class="head"><p>Used Methods/Classes/API</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenSCENARIO</p></td> +<td><p><strong>LightStateAction</strong></p></td> +</tr> +<tr class="row-odd"><td><p>mantle_api</p></td> +<td><p>UpdateControlStrategies(VehicleLightStatesControlStrategy) +MovementDomain::kNone</p></td> +</tr> +<tr class="row-even"><td><p>openPASS</p></td> +<td><p>Entity::SetVehicleLightState(mantle_api::LightState, mantle_api::LightType)</p></td> +</tr> +<tr class="row-odd"><td><p>osi3</p></td> +<td><p>osi3::TrafficAction_CustomAction</p></td> +</tr> +</tbody> +</table> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Currently only indicatorLeft, indicatorRight and warningLights of OpenSCENARIO VehicleLightType are supported in openPASS. +OpenSCENARIO LightStateAction attribute, transitionTime is not received from the OSE</p> +</div> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="event_detector.html" class="btn btn-neutral float-left" title="EventDetector" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="simulation.html" class="btn btn-neutral float-right" title="Simulation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/advanced_topics/simulator/simulation.html b/content/html/advanced_topics/simulator/simulation.html index 5be57a0c385826695bc4a57b093d80bf07998488..90a06d56d4e70a1caac2e849f887447d2bd1769a 100644 --- a/content/html/advanced_topics/simulator/simulation.html +++ b/content/html/advanced_topics/simulator/simulation.html @@ -1,303 +1,306 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Simulation — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Spawner Features" href="spawner_features.html" /> - <link rel="prev" title="Mapping of OpenSCENARIO Actions" href="scenario_actions.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> -<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> -<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Simulation</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#command-line-arguments">Command Line Arguments</a></li> -<li class="toctree-l3"><a class="reference internal" href="#scheduler">Scheduler</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#executing-phases">Executing phases</a></li> -<li class="toctree-l4"><a class="reference internal" href="#task-type-description">Task type description</a></li> -<li class="toctree-l4"><a class="reference internal" href="#task-priorities">Task priorities</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> -<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> -<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> - <li class="breadcrumb-item active">Simulation</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/advanced_topics/simulator/simulation.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="simulation"> -<span id="id1"></span><h1>Simulation<a class="headerlink" href="#simulation" title="Link to this heading">ïƒ</a></h1> -<section id="command-line-arguments"> -<span id="simulation-commandlinearguments"></span><h2>Command Line Arguments<a class="headerlink" href="#command-line-arguments" title="Link to this heading">ïƒ</a></h2> -<p>The simulation can be configured by applying the following command line arguments. -Unspecified arguments will be defaulted (<em>default values in []</em>).</p> -<p>The simulation supports the following arguments:</p> -<ul class="simple"> -<li><p><em>--logLevel</em> [0] : -Logging level between 0 (minimum) and 5 (maximum - debug core)</p></li> -<li><p><em>--logFile</em> [opSimulation.log]* : -Name of the log file</p></li> -<li><p><em>--lib</em> [modules] : -Path of the libraries (relative or absolute)</p></li> -<li><p><em>--configs</em> [configs] : -Path for writing outputs (relative or absolute)</p></li> -<li><p><em>--results</em> [results] : -Path for writing outputs (relative or absolute)</p></li> -</ul> -</section> -<section id="scheduler"> -<span id="simulation-scheduler"></span><h2>Scheduler<a class="headerlink" href="#scheduler" title="Link to this heading">ïƒ</a></h2> -<p>The Scheduler handles the sequence of agent based and common tasks before, during and after simulation.</p> -<section id="executing-phases"> -<h3>Executing phases<a class="headerlink" href="#executing-phases" title="Link to this heading">ïƒ</a></h3> -<p>Each simulation run splits up into 3 phases: Bootstrap tasks, Stepping and Finalize tasks.</p> -<ol class="arabic simple"> -<li><p>Initial task are grouped within the bootstrap tasks and are executed first and only once. -This includes updating the Observation modules and triggering all PreRun Spawners.</p></li> -<li><p>After this Spawning, PreAgent, NonRecurring, Recurring and Syncronize Tasks are processed for each timestep. -First all Runtime Spawners are triggered. -Whenever a new agent is spawned, all its components are parsed to <em>Trigger</em> and <em>Update</em> tasks, grouped and sorted by execution time as non-recurring and recurring tasks. -Next all PreAgents task are executed, which includes publishing the world state to the DataBuffer in triggering all EventDetectors and Manipulators -Non-recurring tasks are executed just once and will be deleted afterwards (<em>init</em> flag in ComponentRepository). -Right after execution of all agent-based tasks, the Syncronize phase synchronizes all changes to the world as world state for the next timestep.</p></li> -<li><p>The last phase is finalizing task, executed when an end condition is reached, such as end of simulation duration. Within this phase all EventDetectors and Manipulators are triggered and the Observation modules are updated one last time.</p></li> -</ol> -</section> -<section id="task-type-description"> -<h3>Task type description<a class="headerlink" href="#task-type-description" title="Link to this heading">ïƒ</a></h3> -<p>The scheduler handles 8 different task types:</p> -<ul class="simple"> -<li><p><strong>Spawning</strong> - triggers agent spawning</p></li> -<li><p><strong>EventDetector</strong> - execute event detector</p></li> -<li><p><strong>Manipulator</strong> - execute manipulator</p></li> -<li><p><strong>Observation</strong> - update observation modules</p></li> -<li><p><strong>Trigger</strong> - execute trigger function of connected component</p></li> -<li><p><strong>Update</strong> - execute update output of connected component and resulting input</p></li> -<li><p><strong>SyncWorld</strong> - update world</p></li> -</ul> -<p>The following table gives an overview to all phases.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Phase</p></th> -<th class="head"><p>Changeable</p></th> -<th class="head"><p>Task types</p></th> -<th class="head"><p>Notes</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Bootstrap</p></td> -<td><p>no</p></td> -<td><p>Spawning (PreRun), Observation</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>Spawning</p></td> -<td><p>no</p></td> -<td><p>Spawning (Runtime), Observation</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>PreAgent</p></td> -<td><p>no</p></td> -<td><p>SyncWorld (publishing), EventDetector, Manipulator</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>Non recurring</p></td> -<td><p>yes</p></td> -<td><p>Trigger, Update</p></td> -<td><p>Only components defined as “Initâ€</p></td> -</tr> -<tr class="row-even"><td><p>Recurring</p></td> -<td><p>yes</p></td> -<td><p>Trigger, Update</p></td> -<td><p>Non Init components</p></td> -</tr> -<tr class="row-odd"><td><p>Syncronize</p></td> -<td><p>no</p></td> -<td><p>SyncWorld</p></td> -<td><p>Update the state of the agents and the virtual world (e.g. due to agent movements).</p></td> -</tr> -<tr class="row-even"><td><p>Finalize</p></td> -<td><p>no</p></td> -<td><p>EventDetector, Manipulator, Observation</p></td> -<td></td> -</tr> -</tbody> -</table> -</section> -<section id="task-priorities"> -<h3>Task priorities<a class="headerlink" href="#task-priorities" title="Link to this heading">ïƒ</a></h3> -<p>The order of the tasks within one phase depends on component priority and task type. -All tasks for a given timestamp are ordered by the SchedulerTasks priority, and divided into the aformentioned phases.</p> -<p>The following table shows the priorities for the non-component task types:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Task type</p></th> -<th class="head"><p>Priority</p></th> -<th class="head"><p>Notes</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Spawning</p></td> -<td><p>4</p></td> -<td><p>Highest priority, nothing can happen before any agent is instantiated.</p></td> -</tr> -<tr class="row-odd"><td><p>EventDetector</p></td> -<td><p>3</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>Manipulator</p></td> -<td><p>2</p></td> -<td><p>The manipulator task uses the event detector tasks as input. Therefore it is called afterwards.</p></td> -</tr> -<tr class="row-odd"><td><p>SyncGlobalData</p></td> -<td><p>1</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>Observation</p></td> -<td><p>0</p></td> -<td><p>Observation tasks have to be execute at the end.</p></td> -</tr> -</tbody> -</table> -<p>The priority of trigger and update tasks depend on the priority within the SystemConfig. -They are independent of non-component priorities. -Since trigger tasks prepare output signals, output tasks are right called after the corresponding trigger tasks.</p> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="scenario_actions.html" class="btn btn-neutral float-left" title="Mapping of OpenSCENARIO Actions" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="spawner_features.html" class="btn btn-neutral float-right" title="Spawner Features" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Simulation — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Spawner Features" href="spawner_features.html" /> + <link rel="prev" title="Mapping of OpenSCENARIO Actions" href="scenario_actions.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> +<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> +<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Simulation</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#command-line-arguments">Command Line Arguments</a></li> +<li class="toctree-l3"><a class="reference internal" href="#scheduler">Scheduler</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#executing-phases">Executing phases</a></li> +<li class="toctree-l4"><a class="reference internal" href="#task-type-description">Task type description</a></li> +<li class="toctree-l4"><a class="reference internal" href="#task-priorities">Task priorities</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> +<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> +<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> + <li class="breadcrumb-item active">Simulation</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/advanced_topics/simulator/simulation.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="simulation"> +<span id="id1"></span><h1>Simulation<a class="headerlink" href="#simulation" title="Link to this heading">ïƒ</a></h1> +<section id="command-line-arguments"> +<span id="simulation-commandlinearguments"></span><h2>Command Line Arguments<a class="headerlink" href="#command-line-arguments" title="Link to this heading">ïƒ</a></h2> +<p>The simulation can be configured by applying the following command line arguments. +Unspecified arguments will be defaulted (<em>default values in []</em>).</p> +<p>The simulation supports the following arguments:</p> +<ul class="simple"> +<li><p><em>--clearResultsPath</em>: [false] : +If set, the results path will be cleared before the simulation starts.</p></li> +<li><p><em>--logLevel</em> [0] : +Logging level between 0 (minimum) and 5 (maximum - debug core)</p></li> +<li><p><em>--logFile</em> [opSimulation.log]* : +Name of the log file</p></li> +<li><p><em>--lib</em> [modules] : +Path of the libraries (relative or absolute)</p></li> +<li><p><em>--configs</em> [configs] : +Path for writing outputs (relative or absolute)</p></li> +<li><p><em>--results</em> [results] : +Path for writing outputs (relative or absolute)</p></li> +</ul> +</section> +<section id="scheduler"> +<span id="simulation-scheduler"></span><h2>Scheduler<a class="headerlink" href="#scheduler" title="Link to this heading">ïƒ</a></h2> +<p>The Scheduler handles the sequence of agent based and common tasks before, during and after simulation.</p> +<section id="executing-phases"> +<h3>Executing phases<a class="headerlink" href="#executing-phases" title="Link to this heading">ïƒ</a></h3> +<p>Each simulation run splits up into 3 phases: Bootstrap tasks, Stepping and Finalize tasks.</p> +<ol class="arabic simple"> +<li><p>Initial task are grouped within the bootstrap tasks and are executed first and only once. +This includes updating the Observation modules and triggering all PreRun Spawners.</p></li> +<li><p>After this Spawning, PreAgent, NonRecurring, Recurring and Syncronize Tasks are processed for each timestep. +First all Runtime Spawners are triggered. +Whenever a new agent is spawned, all its components are parsed to <em>Trigger</em> and <em>Update</em> tasks, grouped and sorted by execution time as non-recurring and recurring tasks. +Next all PreAgents task are executed, which includes publishing the world state to the DataBuffer in triggering all EventDetectors and Manipulators +Non-recurring tasks are executed just once and will be deleted afterwards (<em>init</em> flag in ComponentRepository). +Right after execution of all agent-based tasks, the Syncronize phase synchronizes all changes to the world as world state for the next timestep.</p></li> +<li><p>The last phase is finalizing task, executed when an end condition is reached, such as end of simulation duration. Within this phase all EventDetectors and Manipulators are triggered and the Observation modules are updated one last time.</p></li> +</ol> +</section> +<section id="task-type-description"> +<h3>Task type description<a class="headerlink" href="#task-type-description" title="Link to this heading">ïƒ</a></h3> +<p>The scheduler handles 8 different task types:</p> +<ul class="simple"> +<li><p><strong>Spawning</strong> - triggers agent spawning</p></li> +<li><p><strong>EventDetector</strong> - execute event detector</p></li> +<li><p><strong>Manipulator</strong> - execute manipulator</p></li> +<li><p><strong>Observation</strong> - update observation modules</p></li> +<li><p><strong>Trigger</strong> - execute trigger function of connected component</p></li> +<li><p><strong>Update</strong> - execute update output of connected component and resulting input</p></li> +<li><p><strong>SyncWorld</strong> - update world</p></li> +</ul> +<p>The following table gives an overview to all phases.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Phase</p></th> +<th class="head"><p>Changeable</p></th> +<th class="head"><p>Task types</p></th> +<th class="head"><p>Notes</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Bootstrap</p></td> +<td><p>no</p></td> +<td><p>Spawning (PreRun), Observation</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>Spawning</p></td> +<td><p>no</p></td> +<td><p>Spawning (Runtime), Observation</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>PreAgent</p></td> +<td><p>no</p></td> +<td><p>SyncWorld (publishing), EventDetector, Manipulator</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>Non recurring</p></td> +<td><p>yes</p></td> +<td><p>Trigger, Update</p></td> +<td><p>Only components defined as “Initâ€</p></td> +</tr> +<tr class="row-even"><td><p>Recurring</p></td> +<td><p>yes</p></td> +<td><p>Trigger, Update</p></td> +<td><p>Non Init components</p></td> +</tr> +<tr class="row-odd"><td><p>Syncronize</p></td> +<td><p>no</p></td> +<td><p>SyncWorld</p></td> +<td><p>Update the state of the agents and the virtual world (e.g. due to agent movements).</p></td> +</tr> +<tr class="row-even"><td><p>Finalize</p></td> +<td><p>no</p></td> +<td><p>EventDetector, Manipulator, Observation</p></td> +<td></td> +</tr> +</tbody> +</table> +</section> +<section id="task-priorities"> +<h3>Task priorities<a class="headerlink" href="#task-priorities" title="Link to this heading">ïƒ</a></h3> +<p>The order of the tasks within one phase depends on component priority and task type. +All tasks for a given timestamp are ordered by the SchedulerTasks priority, and divided into the aformentioned phases.</p> +<p>The following table shows the priorities for the non-component task types:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Task type</p></th> +<th class="head"><p>Priority</p></th> +<th class="head"><p>Notes</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Spawning</p></td> +<td><p>4</p></td> +<td><p>Highest priority, nothing can happen before any agent is instantiated.</p></td> +</tr> +<tr class="row-odd"><td><p>EventDetector</p></td> +<td><p>3</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>Manipulator</p></td> +<td><p>2</p></td> +<td><p>The manipulator task uses the event detector tasks as input. Therefore it is called afterwards.</p></td> +</tr> +<tr class="row-odd"><td><p>SyncGlobalData</p></td> +<td><p>1</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>Observation</p></td> +<td><p>0</p></td> +<td><p>Observation tasks have to be execute at the end.</p></td> +</tr> +</tbody> +</table> +<p>The priority of trigger and update tasks depend on the priority within the SystemConfig. +They are independent of non-component priorities. +Since trigger tasks prepare output signals, output tasks are right called after the corresponding trigger tasks.</p> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="scenario_actions.html" class="btn btn-neutral float-left" title="Mapping of OpenSCENARIO Actions" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="spawner_features.html" class="btn btn-neutral float-right" title="Spawner Features" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/advanced_topics/simulator/spawner_features.html b/content/html/advanced_topics/simulator/spawner_features.html index c76c6dd3dd07a1d79b011e82b50dc1c4d8bcb38b..45265dfb5ce6451d8722abbd534d98f1c12d76a2 100644 --- a/content/html/advanced_topics/simulator/spawner_features.html +++ b/content/html/advanced_topics/simulator/spawner_features.html @@ -1,612 +1,613 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Spawner Features — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="System Structure and Parameterization (SSP)" href="system_structure_and_parameterization_%28SSP%29.html" /> - <link rel="prev" title="Simulation" href="simulation.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> -<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> -<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Spawner Features</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#prerunspawner">PreRunSpawner</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#spawning-on-roads-lanes-and-ranges">Spawning on roads, lanes and ranges</a></li> -<li class="toctree-l4"><a class="reference internal" href="#traffic-parameters">Traffic parameters</a></li> -<li class="toctree-l4"><a class="reference internal" href="#stochastics">Stochastics</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#runtimespawner">RuntimeSpawner</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#id2">Spawning on roads, lanes and ranges</a></li> -<li class="toctree-l4"><a class="reference internal" href="#id8">Traffic parameters</a></li> -<li class="toctree-l4"><a class="reference internal" href="#id11">Stochastics</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> -<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> - <li class="breadcrumb-item active">Spawner Features</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/advanced_topics/simulator/spawner_features.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="spawner-features"> -<span id="id1"></span><h1>Spawner Features<a class="headerlink" href="#spawner-features" title="Link to this heading">ïƒ</a></h1> -<section id="prerunspawner"> -<span id="spawner-features-prerun"></span><h2>PreRunSpawner<a class="headerlink" href="#prerunspawner" title="Link to this heading">ïƒ</a></h2> -<section id="spawning-on-roads-lanes-and-ranges"> -<h3>Spawning on roads, lanes and ranges<a class="headerlink" href="#spawning-on-roads-lanes-and-ranges" title="Link to this heading">ïƒ</a></h3> -<section id="non-existent-roads"> -<h4>Non-existent roads<a class="headerlink" href="#non-existent-roads" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Requirement</dt><dd><p>Road IDs specified in the configuration, but not part of the scenery file are igored.</p> -</dd> -<dt>Verified by</dt><dd><p>Unit Test SpawnerPreRunCommonParameterExtractor_GetWayToNextRoad_NoPossibleWay</p> -</dd> -</dl> -</section> -<section id="single-road"> -<span id="spawner-features-prerun-on-roads-single-road"></span><h4>Single road<a class="headerlink" href="#single-road" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Requirement</dt><dd><p>Spawning on the given road takes place.</p> -</dd> -<dt>Requirement</dt><dd><p>No agents are spawned on other roads in the scenery.</p> -</dd> -<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_Highway_SingleRoad</p> -</dd> -</dl> -</section> -<section id="consecutive-roads"> -<span id="spawner-features-prerun-on-roads-consecutive-roads"></span><h4>Consecutive roads<a class="headerlink" href="#consecutive-roads" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Spawner configuration specifies a list of consecutively connected roads in a single ListItem.</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning on the given roads takes place.</p> -</dd> -<dt>Requirement</dt><dd><p>No agents spawned on other roads in the scenery.</p> -</dd> -<dt>Requirement</dt><dd><p>Agents are spawned on all drivable lanes (which are part of the roads being specified in the configuration).</p> -</dd> -<dt>Requirement</dt><dd><p>Agents are spawned in the correct driving direction.</p> -</dd> -<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_Highway_FullStream -End-to-end Test SpawnerPreRun_SingleRoad_DrivingDirection</p> -</dd> -</dl> -</section> -<section id="non-consecutive-roads"> -<h4>Non-consecutive roads<a class="headerlink" href="#non-consecutive-roads" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Spawner configuration specifies a list of non-consecutively connected roads.</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning on the given roads takes place.</p> -</dd> -<dt>Requirement</dt><dd><p>Missing roads between the specified ones are automatically determined by the Spawner and handled like they were specified in the configuration in the first place. -The resulting path being spawned on is arbitrary if multiple solutions exist for a scenery, but only one path shall be used.</p> -</dd> -<dt>Verified by</dt><dd><p>Covered by <a class="reference internal" href="#spawner-features-prerun-on-roads-across-junction"><span class="std std-ref">Roads across junction</span></a></p> -</dd> -</dl> -</section> -<section id="roads-across-junction"> -<span id="spawner-features-prerun-on-roads-across-junction"></span><h4>Roads across junction<a class="headerlink" href="#roads-across-junction" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Spawner configuration specifies a list of (not necessarily consecutively) connected roads in a single ListItem.</p> -</dd> -<dt>Precondition</dt><dd><p>The chain of roads specified has to cross a single junction.</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning on the given roads takes place.</p> -</dd> -<dt>Requirement</dt><dd><p>Missing roads between the specified ones are automatically determined by the Spawner and handled like they were specified in the configuration in the first place. -The resulting path being spawned on is arbitrary if multiple solutions exist for a scenery, but only one path shall be used.</p> -</dd> -<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_Highway_EntryExit</p> -</dd> -</dl> -</section> -<section id="multiple-roads-including-non-existent-ids"> -<h4>Multiple roads (including non existent IDs)<a class="headerlink" href="#multiple-roads-including-non-existent-ids" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Spawner configuration specifies a list of (at least partially) consecutively connected roads in a single ListItem.</p> -</dd> -<dt>Precondition</dt><dd><p>At least one road id given in the configuration is not present in the scenery.</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning on the given roads takes place up to the first non-existent road that is encountered.</p> -</dd> -<dt>Requirement</dt><dd><p>No spawning takes place, if the first road of the list doesn’t exist.</p> -</dd> -<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_Highway_IncorrectStreamBegin -End-to-end Test SpawnerPreRun_Highway_IncorrectStreamMid</p> -</dd> -</dl> -</section> -<section id="specified-lanes"> -<h4>Specified lanes<a class="headerlink" href="#specified-lanes" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>.</p> -</dd> -<dt>Precondition</dt><dd><p>A list of lanes to be spawned on is specified in the Spawner configuration.</p> -</dd> -<dt>Precondition</dt><dd><p>The list of lanes contains at least one lane IDs which exist for the first specified road.</p> -</dd> -<dt>Precondition</dt><dd><p>The list of lanes contains at least one lane IDs which doesn’t exist for the first specified road.</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning takes place on the specified lane IDs (on drivable lanes).</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning does not take place on other lane IDs.</p> -</dd> -<dt>Requirement</dt><dd><p>Lane IDs not present for one or more roads do not lead to an error.</p> -</dd> -<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_SingleRoad_SpecifiedLanes</p> -</dd> -</dl> -</section> -<section id="multiple-overlapping-road-streams"> -<h4>Multiple overlapping road streams<a class="headerlink" href="#multiple-overlapping-road-streams" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Two road streams are specified in the Spawner configuration (as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>).</p> -</dd> -<dt>Precondition</dt><dd><p>The two road streams have at least one road in common.</p> -</dd> -<dt>Precondition</dt><dd><p>The Spawner configuration specifies the lanes to spawn on in such a way that there are no overlapping lanes (on the road being common to both streams).</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning on the given roads and all given lanes takes place.</p> -</dd> -<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_Highway_RoadOverlap</p> -</dd> -</dl> -</section> -<section id="spawning-on-range-sstart-send-within-road-boundaries"> -<h4>Spawning on range (SStart + SEnd within road boundaries)<a class="headerlink" href="#spawning-on-range-sstart-send-within-road-boundaries" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>.</p> -</dd> -<dt>Precondition</dt><dd><p>SStart and SEnd are set to values within the road boundaries (with the effective start s-coordinate being lower than the effective end s-coordinate when taking the whole road stream into account).</p> -</dd> -<dt>Requirement</dt><dd><p>Agents are spawned within the specified range.</p> -</dd> -<dt>Requirement</dt><dd><p>No agents are spawned outside of the specified range.</p> -</dd> -<dt>Verified by</dt><dd><p>Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreas_AllOptionalParameters -End-to-end Test SpawnerPreRun_SingleRoad_SpecifiedRange</p> -</dd> -</dl> -</section> -<section id="spawning-on-range-sstart-slength-within-road-boundaries"> -<h4>Spawning on range (SStart + SLength within road boundaries)<a class="headerlink" href="#spawning-on-range-sstart-slength-within-road-boundaries" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>.</p> -</dd> -<dt>Precondition</dt><dd><p>SStart and SLength are set to values within the road boundaries (with the effective start s-coordinate being lower than the effective end s-coordinate when taking the whole road stream into account).</p> -</dd> -<dt>Requirement</dt><dd><p>Agents are spawned within the specified range.</p> -</dd> -<dt>Requirement</dt><dd><p>No agents are spawned outside of the specified range.</p> -</dd> -<dt>Verified by</dt><dd><p>Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreas_AllOptionalParameters</p> -</dd> -</dl> -</section> -<section id="spawning-on-range-send-outside-of-road-boundaries"> -<h4>Spawning on range (SEnd outside of road boundaries)<a class="headerlink" href="#spawning-on-range-send-outside-of-road-boundaries" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>.</p> -</dd> -<dt>Precondition</dt><dd><p>SStart is set set to a value within the road boundaries, SEnd is set greater than the length of the last road given.</p> -</dd> -<dt>Requirement</dt><dd><p>Agents are spawned within the specified range.</p> -</dd> -<dt>Requirement</dt><dd><p>The specified range is capped to the length of the last road.</p> -</dd> -<dt>Verified by</dt><dd><p>Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreasWithSOutOfRange_ReturnsValidS</p> -</dd> -</dl> -</section> -<section id="spawning-on-range-slength-outside-of-road-boundaries"> -<h4>Spawning on range (SLength outside of road boundaries)<a class="headerlink" href="#spawning-on-range-slength-outside-of-road-boundaries" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>.</p> -</dd> -<dt>Precondition</dt><dd><p>SStart is set set to a value within the road boundaries, SLength is set greater than the accumulated length of all roads given.</p> -</dd> -<dt>Requirement</dt><dd><p>Agents are spawned within the specified range.</p> -</dd> -<dt>Requirement</dt><dd><p>The specified range is capped to the length of the roads.</p> -</dd> -<dt>Verified by</dt><dd><p>Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreasWithSOutOfRange_ReturnsValidS</p> -</dd> -</dl> -</section> -<section id="right-lane-only"> -<h4>Right lane only<a class="headerlink" href="#right-lane-only" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>.</p> -</dd> -<dt>Precondition</dt><dd><p><code class="docutils literal notranslate"><span class="pre">RightLaneOnly</span></code> set to <code class="docutils literal notranslate"><span class="pre">true</span></code> in the Spawner configuration.</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning takes place on the specified roads.</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning takes place on the rightmost lanes only.</p> -</dd> -<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_SingleRoad_RightLaneOnly</p> -</dd> -</dl> -</section> -</section> -<section id="traffic-parameters"> -<h3>Traffic parameters<a class="headerlink" href="#traffic-parameters" title="Link to this heading">ïƒ</a></h3> -<section id="separation-buffer-specified"> -<h4>Separation buffer specified<a class="headerlink" href="#separation-buffer-specified" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> -</dd> -<dt>Precondition</dt><dd><p><code class="docutils literal notranslate"><span class="pre">MinimumSeparationBuffer</span></code> is set in the Spawner configuration.</p> -</dd> -<dt>Requirement</dt><dd><p>No two agents are spawned with a net distance lower than the specified separation buffer.</p> -</dd> -<dt>Verified by</dt><dd><p>UNTESTED</p> -</dd> -</dl> -</section> -<section id="separation-buffer-not-specified"> -<h4>Separation buffer not specified<a class="headerlink" href="#separation-buffer-not-specified" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> -</dd> -<dt>Precondition</dt><dd><p><code class="docutils literal notranslate"><span class="pre">MinimumSeparationBuffer</span></code> is not set in the Spawner configuration.</p> -</dd> -<dt>Requirement</dt><dd><p>No two agents are spawned with a net distance lower than 5 m.</p> -</dd> -<dt>Verified by</dt><dd><p>UNTESTED</p> -</dd> -</dl> -</section> -<section id="time-to-collision"> -<h4>Time to collision<a class="headerlink" href="#time-to-collision" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> -</dd> -<dt>Requirement</dt><dd><p>No agent is spawned with a TTC lower than the configured threshold (with respect to end of lane).</p> -</dd> -<dt>Verified by</dt><dd><p>UNTESTED -Also has to be checked by analysis of simulation output by an external tool</p> -</dd> -</dl> -</section> -</section> -<section id="stochastics"> -<h3>Stochastics<a class="headerlink" href="#stochastics" title="Link to this heading">ïƒ</a></h3> -<section id="traffic-groups"> -<h4>Traffic groups<a class="headerlink" href="#traffic-groups" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Requirement</dt><dd><p>The selection of traffic groups is randomized using a uniform distribution.</p> -</dd> -<dt>Verified by</dt><dd><p>UNTESTED</p> -</dd> -</dl> -</section> -<section id="agent-profiles"> -<h4>Agent profiles<a class="headerlink" href="#agent-profiles" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Requirement</dt><dd><p>The selection of agent profiles is randomized using a uniform distribution.</p> -</dd> -<dt>Verified by</dt><dd><p>UNTESTED</p> -</dd> -</dl> -</section> -<section id="velocity-distribution"> -<h4>Velocity distribution<a class="headerlink" href="#velocity-distribution" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Requirement</dt><dd><p>The distribution of the velocities of a traffic group has to match the configured distribution.</p> -</dd> -<dt>Verified by</dt><dd><p>UNTESTED -Also has to be checked by analysis of simulation output by an external tool</p> -</dd> -</dl> -</section> -<section id="tgap-distribution"> -<h4>TGap distribution<a class="headerlink" href="#tgap-distribution" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Requirement</dt><dd><p>The distribution of the TGaps of a traffic group has to match the configured distribution.</p> -</dd> -<dt>Verified by</dt><dd><p>UNTESTED -Also has to be checked by analysis of simulation output by an external tool</p> -</dd> -</dl> -</section> -</section> -</section> -<section id="runtimespawner"> -<span id="spawner-features-runtime"></span><h2>RuntimeSpawner<a class="headerlink" href="#runtimespawner" title="Link to this heading">ïƒ</a></h2> -<section id="id2"> -<h3>Spawning on roads, lanes and ranges<a class="headerlink" href="#id2" title="Link to this heading">ïƒ</a></h3> -<section id="id3"> -<h4>Non-existent roads<a class="headerlink" href="#id3" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Requirement</dt><dd><p>Road IDs specified in the configuration, but not part of the scenery file are igored.</p> -</dd> -<dt>Verified by</dt><dd><p>UNTESTED</p> -</dd> -</dl> -</section> -<section id="spawner-features-runtime-on-roads-single-road"> -<span id="id4"></span><h4>Single road<a class="headerlink" href="#spawner-features-runtime-on-roads-single-road" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Requirement</dt><dd><p>Spawning on the given road takes place.</p> -</dd> -<dt>Requirement</dt><dd><p>No agents are spawned on other roads in the scenery.</p> -</dd> -<dt>Requirement</dt><dd><p>Agents are spawned in the correct driving direction.</p> -</dd> -<dt>Verified by</dt><dd><p>End-to-end Test SpawnerRuntime_Highway_SingleRoad</p> -</dd> -</dl> -</section> -<section id="driving-direction"> -<h4>Driving direction<a class="headerlink" href="#driving-direction" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Requirement</dt><dd><p>Agents are spawned in the correct driving direction (matching lane direction).</p> -</dd> -<dt>Verified by</dt><dd><p>End-to-end Test SpawnerRuntime_Highway_SingleRoad_DrivingDirection</p> -</dd> -</dl> -</section> -<section id="id5"> -<h4>Multiple roads (including non existent IDs)<a class="headerlink" href="#id5" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Spawner configuration specifies a list of roads in a single ListItem.</p> -</dd> -<dt>Precondition</dt><dd><p>At least one road id given in the configuration is not present in the scenery.</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning on the given roads takes place.</p> -</dd> -<dt>Requirement</dt><dd><p>Non-existent road IDs are ignored.</p> -</dd> -<dt>Verified by</dt><dd><p>End-to-end Test SpawnerRuntime_Highway_MultipleRoads</p> -</dd> -</dl> -</section> -<section id="id6"> -<h4>Specified lanes<a class="headerlink" href="#id6" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-runtime-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> -</dd> -<dt>Precondition</dt><dd><p>A list of lanes to be spawned on is specified in the Spawner configuration.</p> -</dd> -<dt>Precondition</dt><dd><p>The list of lanes contains lane IDs which don’t exist for the specified road.</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning takes place on the specified lane IDs (on drivable lanes).</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning does not take place on other lane IDs.</p> -</dd> -<dt>Requirement</dt><dd><p>Lane IDs not present for the specified road do not lead to an error.</p> -</dd> -<dt>Verified by</dt><dd><p>End-to-end Test SpawnerRuntime_SingleRoad_SpecifiedLanes</p> -</dd> -</dl> -</section> -<section id="id7"> -<h4>Right lane only<a class="headerlink" href="#id7" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-runtime-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> -</dd> -<dt>Precondition</dt><dd><p><code class="docutils literal notranslate"><span class="pre">RightLaneOnly</span></code> set to <code class="docutils literal notranslate"><span class="pre">true</span></code> in the Spawner configuration.</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning takes place on the specified road.</p> -</dd> -<dt>Requirement</dt><dd><p>Spawning takes place on the rightmost lane only.</p> -</dd> -<dt>Verified by</dt><dd><p>End-to-end Test SpawnerRuntime_SingleRoad_RightLaneOnly</p> -</dd> -</dl> -</section> -</section> -<section id="id8"> -<h3>Traffic parameters<a class="headerlink" href="#id8" title="Link to this heading">ïƒ</a></h3> -<section id="id9"> -<h4>Separation buffer specified<a class="headerlink" href="#id9" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-runtime-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> -</dd> -<dt>Precondition</dt><dd><p><code class="docutils literal notranslate"><span class="pre">MinimumSeparationBuffer</span></code> is set in the Spawner configuration.</p> -</dd> -<dt>Requirement</dt><dd><p>No two agents are spawned with a net distance lower than the specified separation buffer.</p> -</dd> -<dt>Verified by</dt><dd><p>Unit Test SpawnerRuntimeCommonParameterExtractor_ExtractMinimumSeparationBuffer_FixedValue</p> -</dd> -</dl> -</section> -<section id="id10"> -<h4>Separation buffer not specified<a class="headerlink" href="#id10" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-runtime-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> -</dd> -<dt>Precondition</dt><dd><p><code class="docutils literal notranslate"><span class="pre">MinimumSeparationBuffer</span></code> is not set in the Spawner configuration.</p> -</dd> -<dt>Requirement</dt><dd><p>No two agents are spawned with a net distance lower than 5 m.</p> -</dd> -<dt>Verified by</dt><dd><p>Unit Test SpawnerRuntimeCommonParameterExtractor_ExtractMinimumSeparationBuffer_NoValue_SetsDefault</p> -</dd> -</dl> -</section> -</section> -<section id="id11"> -<h3>Stochastics<a class="headerlink" href="#id11" title="Link to this heading">ïƒ</a></h3> -<section id="id12"> -<h4>Traffic groups<a class="headerlink" href="#id12" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Requirement</dt><dd><p>The selection of traffic groups is randomized using a uniform distribution.</p> -</dd> -<dt>Verified by</dt><dd><p>UNTESTED</p> -</dd> -</dl> -</section> -<section id="id13"> -<h4>Agent profiles<a class="headerlink" href="#id13" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Requirement</dt><dd><p>The selection of agent profiles is randomized using a uniform distribution.</p> -</dd> -<dt>Verified by</dt><dd><p>UNTESTED</p> -</dd> -</dl> -</section> -<section id="id14"> -<h4>Velocity distribution<a class="headerlink" href="#id14" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Requirement</dt><dd><p>The distribution of the velocities of a traffic group has to match the configured distribution.</p> -</dd> -<dt>Verified by</dt><dd><p>UNTESTED -Also has to be checked by analysis of simulation output by an external tool</p> -</dd> -</dl> -</section> -<section id="id15"> -<h4>TGap distribution<a class="headerlink" href="#id15" title="Link to this heading">ïƒ</a></h4> -<dl class="simple"> -<dt>Requirement</dt><dd><p>The distribution of the TGaps of a traffic group has to match the configured distribution.</p> -</dd> -<dt>Verified by</dt><dd><p>UNTESTED -Also has to be checked by analysis of simulation output by an external tool</p> -</dd> -</dl> -</section> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="simulation.html" class="btn btn-neutral float-left" title="Simulation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="system_structure_and_parameterization_%28SSP%29.html" class="btn btn-neutral float-right" title="System Structure and Parameterization (SSP)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Spawner Features — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="System Structure and Parameterization (SSP)" href="system_structure_and_parameterization_%28SSP%29.html" /> + <link rel="prev" title="Simulation" href="simulation.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> +<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> +<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Spawner Features</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#prerunspawner">PreRunSpawner</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#spawning-on-roads-lanes-and-ranges">Spawning on roads, lanes and ranges</a></li> +<li class="toctree-l4"><a class="reference internal" href="#traffic-parameters">Traffic parameters</a></li> +<li class="toctree-l4"><a class="reference internal" href="#stochastics">Stochastics</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#runtimespawner">RuntimeSpawner</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#id2">Spawning on roads, lanes and ranges</a></li> +<li class="toctree-l4"><a class="reference internal" href="#id8">Traffic parameters</a></li> +<li class="toctree-l4"><a class="reference internal" href="#id11">Stochastics</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> +<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> + <li class="breadcrumb-item active">Spawner Features</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/advanced_topics/simulator/spawner_features.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="spawner-features"> +<span id="id1"></span><h1>Spawner Features<a class="headerlink" href="#spawner-features" title="Link to this heading">ïƒ</a></h1> +<section id="prerunspawner"> +<span id="spawner-features-prerun"></span><h2>PreRunSpawner<a class="headerlink" href="#prerunspawner" title="Link to this heading">ïƒ</a></h2> +<section id="spawning-on-roads-lanes-and-ranges"> +<h3>Spawning on roads, lanes and ranges<a class="headerlink" href="#spawning-on-roads-lanes-and-ranges" title="Link to this heading">ïƒ</a></h3> +<section id="non-existent-roads"> +<h4>Non-existent roads<a class="headerlink" href="#non-existent-roads" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Requirement</dt><dd><p>Road IDs specified in the configuration, but not part of the scenery file are igored.</p> +</dd> +<dt>Verified by</dt><dd><p>Unit Test SpawnerPreRunCommonParameterExtractor_GetWayToNextRoad_NoPossibleWay</p> +</dd> +</dl> +</section> +<section id="single-road"> +<span id="spawner-features-prerun-on-roads-single-road"></span><h4>Single road<a class="headerlink" href="#single-road" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Requirement</dt><dd><p>Spawning on the given road takes place.</p> +</dd> +<dt>Requirement</dt><dd><p>No agents are spawned on other roads in the scenery.</p> +</dd> +<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_Highway_SingleRoad</p> +</dd> +</dl> +</section> +<section id="consecutive-roads"> +<span id="spawner-features-prerun-on-roads-consecutive-roads"></span><h4>Consecutive roads<a class="headerlink" href="#consecutive-roads" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Spawner configuration specifies a list of consecutively connected roads in a single ListItem.</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning on the given roads takes place.</p> +</dd> +<dt>Requirement</dt><dd><p>No agents spawned on other roads in the scenery.</p> +</dd> +<dt>Requirement</dt><dd><p>Agents are spawned on all drivable lanes (which are part of the roads being specified in the configuration).</p> +</dd> +<dt>Requirement</dt><dd><p>Agents are spawned in the correct driving direction.</p> +</dd> +<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_Highway_FullStream +End-to-end Test SpawnerPreRun_SingleRoad_DrivingDirection</p> +</dd> +</dl> +</section> +<section id="non-consecutive-roads"> +<h4>Non-consecutive roads<a class="headerlink" href="#non-consecutive-roads" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Spawner configuration specifies a list of non-consecutively connected roads.</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning on the given roads takes place.</p> +</dd> +<dt>Requirement</dt><dd><p>Missing roads between the specified ones are automatically determined by the Spawner and handled like they were specified in the configuration in the first place. +The resulting path being spawned on is arbitrary if multiple solutions exist for a scenery, but only one path shall be used.</p> +</dd> +<dt>Verified by</dt><dd><p>Covered by <a class="reference internal" href="#spawner-features-prerun-on-roads-across-junction"><span class="std std-ref">Roads across junction</span></a></p> +</dd> +</dl> +</section> +<section id="roads-across-junction"> +<span id="spawner-features-prerun-on-roads-across-junction"></span><h4>Roads across junction<a class="headerlink" href="#roads-across-junction" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Spawner configuration specifies a list of (not necessarily consecutively) connected roads in a single ListItem.</p> +</dd> +<dt>Precondition</dt><dd><p>The chain of roads specified has to cross a single junction.</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning on the given roads takes place.</p> +</dd> +<dt>Requirement</dt><dd><p>Missing roads between the specified ones are automatically determined by the Spawner and handled like they were specified in the configuration in the first place. +The resulting path being spawned on is arbitrary if multiple solutions exist for a scenery, but only one path shall be used.</p> +</dd> +<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_Highway_EntryExit</p> +</dd> +</dl> +</section> +<section id="multiple-roads-including-non-existent-ids"> +<h4>Multiple roads (including non existent IDs)<a class="headerlink" href="#multiple-roads-including-non-existent-ids" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Spawner configuration specifies a list of (at least partially) consecutively connected roads in a single ListItem.</p> +</dd> +<dt>Precondition</dt><dd><p>At least one road id given in the configuration is not present in the scenery.</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning on the given roads takes place up to the first non-existent road that is encountered.</p> +</dd> +<dt>Requirement</dt><dd><p>No spawning takes place, if the first road of the list doesn’t exist.</p> +</dd> +<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_Highway_IncorrectStreamBegin +End-to-end Test SpawnerPreRun_Highway_IncorrectStreamMid</p> +</dd> +</dl> +</section> +<section id="specified-lanes"> +<h4>Specified lanes<a class="headerlink" href="#specified-lanes" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>.</p> +</dd> +<dt>Precondition</dt><dd><p>A list of lanes to be spawned on is specified in the Spawner configuration.</p> +</dd> +<dt>Precondition</dt><dd><p>The list of lanes contains at least one lane IDs which exist for the first specified road.</p> +</dd> +<dt>Precondition</dt><dd><p>The list of lanes contains at least one lane IDs which doesn’t exist for the first specified road.</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning takes place on the specified lane IDs (on drivable lanes).</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning does not take place on other lane IDs.</p> +</dd> +<dt>Requirement</dt><dd><p>Lane IDs not present for one or more roads do not lead to an error.</p> +</dd> +<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_SingleRoad_SpecifiedLanes</p> +</dd> +</dl> +</section> +<section id="multiple-overlapping-road-streams"> +<h4>Multiple overlapping road streams<a class="headerlink" href="#multiple-overlapping-road-streams" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Two road streams are specified in the Spawner configuration (as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>).</p> +</dd> +<dt>Precondition</dt><dd><p>The two road streams have at least one road in common.</p> +</dd> +<dt>Precondition</dt><dd><p>The Spawner configuration specifies the lanes to spawn on in such a way that there are no overlapping lanes (on the road being common to both streams).</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning on the given roads and all given lanes takes place.</p> +</dd> +<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_Highway_RoadOverlap</p> +</dd> +</dl> +</section> +<section id="spawning-on-range-sstart-send-within-road-boundaries"> +<h4>Spawning on range (SStart + SEnd within road boundaries)<a class="headerlink" href="#spawning-on-range-sstart-send-within-road-boundaries" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>.</p> +</dd> +<dt>Precondition</dt><dd><p>SStart and SEnd are set to values within the road boundaries (with the effective start s-coordinate being lower than the effective end s-coordinate when taking the whole road stream into account).</p> +</dd> +<dt>Requirement</dt><dd><p>Agents are spawned within the specified range.</p> +</dd> +<dt>Requirement</dt><dd><p>No agents are spawned outside of the specified range.</p> +</dd> +<dt>Verified by</dt><dd><p>Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreas_AllOptionalParameters +End-to-end Test SpawnerPreRun_SingleRoad_SpecifiedRange</p> +</dd> +</dl> +</section> +<section id="spawning-on-range-sstart-slength-within-road-boundaries"> +<h4>Spawning on range (SStart + SLength within road boundaries)<a class="headerlink" href="#spawning-on-range-sstart-slength-within-road-boundaries" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>.</p> +</dd> +<dt>Precondition</dt><dd><p>SStart and SLength are set to values within the road boundaries (with the effective start s-coordinate being lower than the effective end s-coordinate when taking the whole road stream into account).</p> +</dd> +<dt>Requirement</dt><dd><p>Agents are spawned within the specified range.</p> +</dd> +<dt>Requirement</dt><dd><p>No agents are spawned outside of the specified range.</p> +</dd> +<dt>Verified by</dt><dd><p>Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreas_AllOptionalParameters</p> +</dd> +</dl> +</section> +<section id="spawning-on-range-send-outside-of-road-boundaries"> +<h4>Spawning on range (SEnd outside of road boundaries)<a class="headerlink" href="#spawning-on-range-send-outside-of-road-boundaries" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>.</p> +</dd> +<dt>Precondition</dt><dd><p>SStart is set set to a value within the road boundaries, SEnd is set greater than the length of the last road given.</p> +</dd> +<dt>Requirement</dt><dd><p>Agents are spawned within the specified range.</p> +</dd> +<dt>Requirement</dt><dd><p>The specified range is capped to the length of the last road.</p> +</dd> +<dt>Verified by</dt><dd><p>Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreasWithSOutOfRange_ReturnsValidS</p> +</dd> +</dl> +</section> +<section id="spawning-on-range-slength-outside-of-road-boundaries"> +<h4>Spawning on range (SLength outside of road boundaries)<a class="headerlink" href="#spawning-on-range-slength-outside-of-road-boundaries" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>.</p> +</dd> +<dt>Precondition</dt><dd><p>SStart is set set to a value within the road boundaries, SLength is set greater than the accumulated length of all roads given.</p> +</dd> +<dt>Requirement</dt><dd><p>Agents are spawned within the specified range.</p> +</dd> +<dt>Requirement</dt><dd><p>The specified range is capped to the length of the roads.</p> +</dd> +<dt>Verified by</dt><dd><p>Unit Test SpawnerPreRunCommonParameterExtractor_ExtractSpawnAreasWithSOutOfRange_ReturnsValidS</p> +</dd> +</dl> +</section> +<section id="right-lane-only"> +<h4>Right lane only<a class="headerlink" href="#right-lane-only" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-consecutive-roads"><span class="std std-ref">Consecutive roads</span></a>.</p> +</dd> +<dt>Precondition</dt><dd><p><code class="docutils literal notranslate"><span class="pre">RightLaneOnly</span></code> set to <code class="docutils literal notranslate"><span class="pre">true</span></code> in the Spawner configuration.</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning takes place on the specified roads.</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning takes place on the rightmost lanes only.</p> +</dd> +<dt>Verified by</dt><dd><p>End-to-end Test SpawnerPreRun_SingleRoad_RightLaneOnly</p> +</dd> +</dl> +</section> +</section> +<section id="traffic-parameters"> +<h3>Traffic parameters<a class="headerlink" href="#traffic-parameters" title="Link to this heading">ïƒ</a></h3> +<section id="separation-buffer-specified"> +<h4>Separation buffer specified<a class="headerlink" href="#separation-buffer-specified" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> +</dd> +<dt>Precondition</dt><dd><p><code class="docutils literal notranslate"><span class="pre">MinimumSeparationBuffer</span></code> is set in the Spawner configuration.</p> +</dd> +<dt>Requirement</dt><dd><p>No two agents are spawned with a net distance lower than the specified separation buffer.</p> +</dd> +<dt>Verified by</dt><dd><p>UNTESTED</p> +</dd> +</dl> +</section> +<section id="separation-buffer-not-specified"> +<h4>Separation buffer not specified<a class="headerlink" href="#separation-buffer-not-specified" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> +</dd> +<dt>Precondition</dt><dd><p><code class="docutils literal notranslate"><span class="pre">MinimumSeparationBuffer</span></code> is not set in the Spawner configuration.</p> +</dd> +<dt>Requirement</dt><dd><p>No two agents are spawned with a net distance lower than 5 m.</p> +</dd> +<dt>Verified by</dt><dd><p>UNTESTED</p> +</dd> +</dl> +</section> +<section id="time-to-collision"> +<h4>Time to collision<a class="headerlink" href="#time-to-collision" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-prerun-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> +</dd> +<dt>Requirement</dt><dd><p>No agent is spawned with a TTC lower than the configured threshold (with respect to end of lane).</p> +</dd> +<dt>Verified by</dt><dd><p>UNTESTED +Also has to be checked by analysis of simulation output by an external tool</p> +</dd> +</dl> +</section> +</section> +<section id="stochastics"> +<h3>Stochastics<a class="headerlink" href="#stochastics" title="Link to this heading">ïƒ</a></h3> +<section id="traffic-groups"> +<h4>Traffic groups<a class="headerlink" href="#traffic-groups" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Requirement</dt><dd><p>The selection of traffic groups is randomized using a uniform distribution.</p> +</dd> +<dt>Verified by</dt><dd><p>UNTESTED</p> +</dd> +</dl> +</section> +<section id="agent-profiles"> +<h4>Agent profiles<a class="headerlink" href="#agent-profiles" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Requirement</dt><dd><p>The selection of agent profiles is randomized using a uniform distribution.</p> +</dd> +<dt>Verified by</dt><dd><p>UNTESTED</p> +</dd> +</dl> +</section> +<section id="velocity-distribution"> +<h4>Velocity distribution<a class="headerlink" href="#velocity-distribution" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Requirement</dt><dd><p>The distribution of the velocities of a traffic group has to match the configured distribution.</p> +</dd> +<dt>Verified by</dt><dd><p>UNTESTED +Also has to be checked by analysis of simulation output by an external tool</p> +</dd> +</dl> +</section> +<section id="tgap-distribution"> +<h4>TGap distribution<a class="headerlink" href="#tgap-distribution" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Requirement</dt><dd><p>The distribution of the TGaps of a traffic group has to match the configured distribution.</p> +</dd> +<dt>Verified by</dt><dd><p>UNTESTED +Also has to be checked by analysis of simulation output by an external tool</p> +</dd> +</dl> +</section> +</section> +</section> +<section id="runtimespawner"> +<span id="spawner-features-runtime"></span><h2>RuntimeSpawner<a class="headerlink" href="#runtimespawner" title="Link to this heading">ïƒ</a></h2> +<section id="id2"> +<h3>Spawning on roads, lanes and ranges<a class="headerlink" href="#id2" title="Link to this heading">ïƒ</a></h3> +<section id="id3"> +<h4>Non-existent roads<a class="headerlink" href="#id3" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Requirement</dt><dd><p>Road IDs specified in the configuration, but not part of the scenery file are igored.</p> +</dd> +<dt>Verified by</dt><dd><p>UNTESTED</p> +</dd> +</dl> +</section> +<section id="spawner-features-runtime-on-roads-single-road"> +<span id="id4"></span><h4>Single road<a class="headerlink" href="#spawner-features-runtime-on-roads-single-road" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Requirement</dt><dd><p>Spawning on the given road takes place.</p> +</dd> +<dt>Requirement</dt><dd><p>No agents are spawned on other roads in the scenery.</p> +</dd> +<dt>Requirement</dt><dd><p>Agents are spawned in the correct driving direction.</p> +</dd> +<dt>Verified by</dt><dd><p>End-to-end Test SpawnerRuntime_Highway_SingleRoad</p> +</dd> +</dl> +</section> +<section id="driving-direction"> +<h4>Driving direction<a class="headerlink" href="#driving-direction" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Requirement</dt><dd><p>Agents are spawned in the correct driving direction (matching lane direction).</p> +</dd> +<dt>Verified by</dt><dd><p>End-to-end Test SpawnerRuntime_Highway_SingleRoad_DrivingDirection</p> +</dd> +</dl> +</section> +<section id="id5"> +<h4>Multiple roads (including non existent IDs)<a class="headerlink" href="#id5" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Spawner configuration specifies a list of roads in a single ListItem.</p> +</dd> +<dt>Precondition</dt><dd><p>At least one road id given in the configuration is not present in the scenery.</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning on the given roads takes place.</p> +</dd> +<dt>Requirement</dt><dd><p>Non-existent road IDs are ignored.</p> +</dd> +<dt>Verified by</dt><dd><p>End-to-end Test SpawnerRuntime_Highway_MultipleRoads</p> +</dd> +</dl> +</section> +<section id="id6"> +<h4>Specified lanes<a class="headerlink" href="#id6" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-runtime-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> +</dd> +<dt>Precondition</dt><dd><p>A list of lanes to be spawned on is specified in the Spawner configuration.</p> +</dd> +<dt>Precondition</dt><dd><p>The list of lanes contains lane IDs which don’t exist for the specified road.</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning takes place on the specified lane IDs (on drivable lanes).</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning does not take place on other lane IDs.</p> +</dd> +<dt>Requirement</dt><dd><p>Lane IDs not present for the specified road do not lead to an error.</p> +</dd> +<dt>Verified by</dt><dd><p>End-to-end Test SpawnerRuntime_SingleRoad_SpecifiedLanes</p> +</dd> +</dl> +</section> +<section id="id7"> +<h4>Right lane only<a class="headerlink" href="#id7" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-runtime-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> +</dd> +<dt>Precondition</dt><dd><p><code class="docutils literal notranslate"><span class="pre">RightLaneOnly</span></code> set to <code class="docutils literal notranslate"><span class="pre">true</span></code> in the Spawner configuration.</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning takes place on the specified road.</p> +</dd> +<dt>Requirement</dt><dd><p>Spawning takes place on the rightmost lane only.</p> +</dd> +<dt>Verified by</dt><dd><p>End-to-end Test SpawnerRuntime_SingleRoad_RightLaneOnly</p> +</dd> +</dl> +</section> +</section> +<section id="id8"> +<h3>Traffic parameters<a class="headerlink" href="#id8" title="Link to this heading">ïƒ</a></h3> +<section id="id9"> +<h4>Separation buffer specified<a class="headerlink" href="#id9" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-runtime-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> +</dd> +<dt>Precondition</dt><dd><p><code class="docutils literal notranslate"><span class="pre">MinimumSeparationBuffer</span></code> is set in the Spawner configuration.</p> +</dd> +<dt>Requirement</dt><dd><p>No two agents are spawned with a net distance lower than the specified separation buffer.</p> +</dd> +<dt>Verified by</dt><dd><p>Unit Test SpawnerRuntimeCommonParameterExtractor_ExtractMinimumSeparationBuffer_FixedValue</p> +</dd> +</dl> +</section> +<section id="id10"> +<h4>Separation buffer not specified<a class="headerlink" href="#id10" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Precondition</dt><dd><p>Basic setup as as in <a class="reference internal" href="#spawner-features-runtime-on-roads-single-road"><span class="std std-ref">Single road</span></a>.</p> +</dd> +<dt>Precondition</dt><dd><p><code class="docutils literal notranslate"><span class="pre">MinimumSeparationBuffer</span></code> is not set in the Spawner configuration.</p> +</dd> +<dt>Requirement</dt><dd><p>No two agents are spawned with a net distance lower than 5 m.</p> +</dd> +<dt>Verified by</dt><dd><p>Unit Test SpawnerRuntimeCommonParameterExtractor_ExtractMinimumSeparationBuffer_NoValue_SetsDefault</p> +</dd> +</dl> +</section> +</section> +<section id="id11"> +<h3>Stochastics<a class="headerlink" href="#id11" title="Link to this heading">ïƒ</a></h3> +<section id="id12"> +<h4>Traffic groups<a class="headerlink" href="#id12" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Requirement</dt><dd><p>The selection of traffic groups is randomized using a uniform distribution.</p> +</dd> +<dt>Verified by</dt><dd><p>UNTESTED</p> +</dd> +</dl> +</section> +<section id="id13"> +<h4>Agent profiles<a class="headerlink" href="#id13" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Requirement</dt><dd><p>The selection of agent profiles is randomized using a uniform distribution.</p> +</dd> +<dt>Verified by</dt><dd><p>UNTESTED</p> +</dd> +</dl> +</section> +<section id="id14"> +<h4>Velocity distribution<a class="headerlink" href="#id14" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Requirement</dt><dd><p>The distribution of the velocities of a traffic group has to match the configured distribution.</p> +</dd> +<dt>Verified by</dt><dd><p>UNTESTED +Also has to be checked by analysis of simulation output by an external tool</p> +</dd> +</dl> +</section> +<section id="id15"> +<h4>TGap distribution<a class="headerlink" href="#id15" title="Link to this heading">ïƒ</a></h4> +<dl class="simple"> +<dt>Requirement</dt><dd><p>The distribution of the TGaps of a traffic group has to match the configured distribution.</p> +</dd> +<dt>Verified by</dt><dd><p>UNTESTED +Also has to be checked by analysis of simulation output by an external tool</p> +</dd> +</dl> +</section> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="simulation.html" class="btn btn-neutral float-left" title="Simulation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="system_structure_and_parameterization_%28SSP%29.html" class="btn btn-neutral float-right" title="System Structure and Parameterization (SSP)" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/advanced_topics/simulator/system_structure_and_parameterization_(SSP).html b/content/html/advanced_topics/simulator/system_structure_and_parameterization_(SSP).html index 4e096e329ee2aa52d8c9f2908c08540c58c55303..1a7ac48d043ec03b65f26503c05df1b595fe8bc8 100644 --- a/content/html/advanced_topics/simulator/system_structure_and_parameterization_(SSP).html +++ b/content/html/advanced_topics/simulator/system_structure_and_parameterization_(SSP).html @@ -1,585 +1,586 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>System Structure and Parameterization (SSP) — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="World_OSI" href="world_osi.html" /> - <link rel="prev" title="Spawner Features" href="spawner_features.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> -<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> -<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">System Structure and Parameterization (SSP)</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#inputs-ssp-structure">Inputs / SSP Structure</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#system-structure-package-ssp">System Structure Package SSP</a></li> -<li class="toctree-l4"><a class="reference internal" href="#ssd-system-structure-definition">SSD - System Structure Definition</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#implementation">Implementation</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#parsing">Parsing</a></li> -<li class="toctree-l4"><a class="reference internal" href="#osi-connectors">OSI Connectors</a></li> -<li class="toctree-l4"><a class="reference internal" href="#object-structure">Object Structure</a></li> -<li class="toctree-l4"><a class="reference internal" href="#ssp-and-op">SSP and <strong>openPASS</strong></a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#limits">Limits</a></li> -<li class="toctree-l3"><a class="reference internal" href="#outputs">Outputs</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#folderstructure">FolderStructure</a></li> -<li class="toctree-l4"><a class="reference internal" href="#writemessageparameters">WriteMessageParameters</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> - <li class="breadcrumb-item active">System Structure and Parameterization (SSP)</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/advanced_topics/simulator/system_structure_and_parameterization_(SSP).rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="system-structure-and-parameterization-ssp"> -<span id="ssp"></span><h1>System Structure and Parameterization (SSP)<a class="headerlink" href="#system-structure-and-parameterization-ssp" title="Link to this heading">ïƒ</a></h1> -<p>System Structure and Parameterization (SSP) is a tool independent standard to define -complete systems consisting of one or more FMUs -(see Functional-Mockup-Interface [LINK: <a class="reference external" href="https://fmi-standard.org/">https://fmi-standard.org/</a>]) -including its parameterization that can be transferred between simulation tools. -Official content is available under: <a class="reference external" href="https://ssp-standard.org/">https://ssp-standard.org/</a> .</p> -<p>In <strong>openPASS</strong> we use SSP to connect FMUs with each other, -especially those which need communication during one simulation time step. -The whole SSP is appended as vehicle component.</p> -<section id="inputs-ssp-structure"> -<span id="ssp-input"></span><h2>Inputs / SSP Structure<a class="headerlink" href="#inputs-ssp-structure" title="Link to this heading">ïƒ</a></h2> -<p>The following image displays the example ConnectionTest.ssp. This SSP contains one root SSD-System, -the subsystem OSMPConnectionTest and two SSD-Components, that are connected with each other.</p> -<figure class="align-default" id="osmpconnectiontest-visual"> -<img alt="../../_images/%5BB2%5DOsmpConnectionTest_Visual.png" src="../../_images/%5BB2%5DOsmpConnectionTest_Visual.png" /> -</figure> -<p>FMUs are wrapped within a SSD-Component. The example consists of two FMU’s “DummySensor†and “OSMPTrafficUpdateStepperâ€. -To allow these two to exchange data within one timestep, they need a connection, which consists of two connectors. -Either a connector gets data from outside of the SSP-System, for instance <strong>openPASS</strong>. -Or two connectors which are directly connected within the SSP-System. -These connections are only one directional. -The example shows a common usecase of SSP: A sensor Component transfers SensorData to the TrafficUpdateStepper, -which writes a DynamicSignal. This signal leaves this SSP to animate the agent.</p> -<section id="system-structure-package-ssp"> -<h3>System Structure Package SSP<a class="headerlink" href="#system-structure-package-ssp" title="Link to this heading">ïƒ</a></h3> -<p>On the filesystem, a SSP is a zip file, which includes one or more .ssd files together with related resources.</p> -<p>In our example the unpacked zip looks like this:</p> -<blockquote> -<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span>..\ConnectionTest.ssp -├── SystemStructure.ssd (mandatory !) -├── OSMPConnectionTest.ssd -├── ParameterValues.ssv -├── Resources -│ ├── DummySensor.fmu -│ └── OsmpTrafficUpdateStepper.fmu -</pre></div> -</div> -<p>In the folder structure above:</p> -<ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">SystemStructure.ssd</span></code> can be perceived as the root of the SSP. It contains the root system.</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">OSMPConnectionTest.ssd</span></code> A system within the root system</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">ParameterValues.ssv</span></code> Alternative way to describe the values of SSP parameters (<a class="reference internal" href="#ssvfiles"><span class="std std-ref">ref</span></a>)</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">Resources</span></code> The Resources folder is for additional data, like FMUs.</p></li> -</ul> -</div></blockquote> -<p>Resources can be referenced FMUs. -Any SSP specific files should be located in the zip root directory. -SSP files are referenced from the System Structure Description file(s) through relative URIs (cf. RFC 3986). -SystemStructure.ssd is the root file of the zip archive. System structure definitions (*.ssd) describe entities called Systems. -Additional entries may include Parameter Values (*.ssv), Parameter Mappings (*.ssm) or Signal Dictionaries (*.ssb).</p> -<p><strong>System Structure description (.ssd files)</strong></p> -<p>The file “SystemStructure.ssd†is mandatory because it defines to root of the SSP. -Other (*).ssd can be used to make use of more then one system, or for organisation purpose. -Subsystems that are hierarchically within the root system should be listed in that SSD. -Subsystems which are only present as (*).ssd but are not connected with the root. More on that in section <a class="reference internal" href="#ssd"><span class="std std-ref">SSD - System Structure Definition</span></a>.</p> -<p id="ssvfiles"><strong>System Structure Parameter Values (.ssv files)</strong></p> -<p>Not mandatory. Is supported in the current version of <strong>openPASS</strong>. -Parameter Values describes a collection of ssd:ParameterSet -A ParameterSet is a collection of parameters grouped under a name. -Parameter Values can be added in two ways:</p> -<ol class="arabic simple"> -<li><p>directly define it within the .ssd file in ssd:ParameterValues</p></li> -<li><p>create a .ssv file and reference it within the .ssd under ssd:ParameterValues</p></li> -</ol> -<p><strong>System Structure Parameter Mapping (.ssm files)</strong></p> -<p>Not mandatory. Not yet implemented in current <strong>openPASS</strong> version. -A parameter mapping describes a mapping between parameters. -A parameter mapping can be added in two ways:</p> -<ol class="arabic simple"> -<li><p>directly define it within the .ssd file in one ssd:ParameterMapping</p></li> -<li><p>create a .ssm file and reference it within the .ssd in one ssd:ParameterMappings</p></li> -</ol> -<p><strong>System Structure Signal Dictionaries (.ssb files)</strong></p> -<p>Is not mandatory. Not yet implemented in current <strong>openPASS</strong> version. -A signal dictionary is a collection of signals. -There are two ways to define a signal dictionary:</p> -<ol class="arabic simple"> -<li><p>directly define it within the .ssd file in ssd:ParameterMappings</p></li> -<li><p>create a .ssb file and reference it within the .ssd in ssd:ParameterMappings</p></li> -</ol> -</section> -<section id="ssd-system-structure-definition"> -<span id="ssd"></span><h3>SSD - System Structure Definition<a class="headerlink" href="#ssd-system-structure-definition" title="Link to this heading">ïƒ</a></h3> -<p>The following example shows the definition of a system “OSMPConnectionTestâ€.</p> -<figure class="align-default" id="id1"> -<span id="osmpconnectiontest-schema"></span><img alt="../../_images/OsmpConnectionTest.ssd_Schemaansicht.png" src="../../_images/OsmpConnectionTest.ssd_Schemaansicht.png" /> -<figcaption> -<p><span class="caption-text">Schematic representation of OSMPConnection.ssd</span><a class="headerlink" href="#id1" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>In the root System, OSMPConnectionTest is defined as an Element. -So this System is a subsystem of the root System. -The file “OSMPConnectionTest.ssd†defines the subsystem, which consists of two Components “DummySensor†and “TrafficUpdateStepperâ€. -Notice, how Components are listed as Elements. In general, Elements of a System can either be a System or a Component. -You can think of it as a filestructure, in our example we keep it simple with just two Components in the Elements of OSMPConnectionTest.</p> -<p><strong>In General</strong></p> -<p>Each System consists of zero to many Elements and zero to many Connections -A Element can either be a Component, a SignalDictionaryReference or a System (Subsystem). -Each Element can have zero to many connectors, which are used to define Connections. -Connectors can interface with the FMU model description. -A Connector has a certain type (data type), and can have zero two many Annotations -An Annotation is used to give additional information for any model entity, which we are using in <strong>openPASS</strong> to make OSMPConnectors (see <a class="reference internal" href="#ssp-osmpconnector"><span class="std std-ref">OSI Connectors</span></a>) -Furthermore each Element has zero to many ParameterBindings. -The parametrization of the FMUs is handled with a ParameterSet.</p> -<p><strong>OSMP Connectors</strong></p> -<p>By using an Annotation, we can combine three Connectors to be able to handle OSI messages. Notice, that Annotations -are a valid way to extend the standard with features, which are not part of SSP yet.</p> -<blockquote> -<div><div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><ssd:Annotations></span> -<span class="w"> </span><span class="nt"><ssc:Annotation</span><span class="w"> </span><span class="na">type=</span><span class="s">"net.pmsf.osmp"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><osmp:osmp-binary-variable</span> -<span class="w"> </span><span class="na">xmlns:osmp=</span><span class="s">"http://xsd.pmsf.net/OSISensorModelPackaging"</span> -<span class="w"> </span><span class="na">mime-type=</span><span class="s">"application/x-open-simulation-interface; type=SensorData; version=3.2.1"</span> -<span class="w"> </span><span class="na">name=</span><span class="s">"OSMPSensorDataOut"</span> -<span class="w"> </span><span class="na">role=</span><span class="s">"size"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ssc:Annotation></span> -<span class="w"> </span><span class="nt"></ssd:Annotations></span> -</pre></div> -</div> -</div></blockquote> -<p>Three Connectors combine with an Annotation of type “net.psmf.osmpâ€, by having the same name inside the osmp:osmp-binary-variable. -osmp:osmp-binary-variable comes always in the same shape. -Each triple of connectors must have the three following roles: base.lo, base.hi and size. -base.lo and base.hi make a memory pointer, where the OSI message is allocated during simulation. -size contains the memory size of the message. In combination of the three connectors the message can be passed between components -Also, notice how mime-type contains crucial information. Type specifies the type of the OSI message. Version is specified as well.</p> -<p><strong>FMU Parameters</strong></p> -<p>The FMU inside the ssd component needs parametrization as well. These are the same parameters as the parameters of the Algorithm_FmuWrapper. -To parametrize the FMU inside ssd, we define a ParameterSet inside the ParameterBindings. Important is the name attribute of the ParameterSet (name=â€FMUParametersâ€):</p> -<blockquote> -<div><div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><ssv:ParameterSet</span><span class="w"> </span><span class="na">version=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">name=</span><span class="s">"FmuParameters"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ssv:Parameters></span> -<span class="w"> </span><span class="nt"><ssv:Parameter</span><span class="w"> </span><span class="na">name=</span><span class="s">"Logging"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ssv:Boolean</span><span class="w"> </span><span class="na">value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ssv:Parameter></span> -<span class="w"> </span><span class="nt"><ssv:Parameter</span><span class="w"> </span><span class="na">name=</span><span class="s">"CsvOutput"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ssv:Boolean</span><span class="w"> </span><span class="na">value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ssv:Parameter></span> -<span class="w"> </span><span class="nt"><ssv:Parameter</span><span class="w"> </span><span class="na">name=</span><span class="s">"UnzipOncePerInstance"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ssv:Boolean</span><span class="w"> </span><span class="na">value=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ssv:Parameter></span> -<span class="w"> </span><span class="nt"><ssv:Parameter</span><span class="w"> </span><span class="na">name=</span><span class="s">"WriteJson_SensorView"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ssv:Boolean</span><span class="w"> </span><span class="na">value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ssv:Parameter></span> -<span class="w"> </span><span class="nt"><ssv:Parameter</span><span class="w"> </span><span class="na">name=</span><span class="s">"WriteTrace_SensorView"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ssv:Boolean</span><span class="w"> </span><span class="na">value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ssv:Parameter></span> -<span class="w"> </span><span class="nt"><ssv:Parameter</span><span class="w"> </span><span class="na">name=</span><span class="s">"Input_OSMPSensorViewIn"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ssv:String</span><span class="w"> </span><span class="na">value=</span><span class="s">"SensorView"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ssv:Parameter></span> -<span class="w"> </span><span class="nt"></ssv:Parameters></span> -<span class="w"> </span><span class="nt"></ssv:ParameterSet></span> -</pre></div> -</div> -</div></blockquote> -<p>Each ssv::parameter has a sub object of the parameter type, with the attribute value containing the actual value. -SSP support the following types: Real (float value), Integer, Boolean, String, Enumeration and Binary.</p> -<p><strong>PriorityParameter</strong> -The priority of the component is set through an annotation on component level -With a higher priority, a FMU component triggers earlier then others.</p> -<blockquote> -<div><div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><ssc:Annotation</span><span class="w"> </span><span class="na">type=</span><span class="s">"de.setlevel.ssp.scheduling"</span><span class="nt">></span> -<span class="w"> </span><span class="cm"><!--Standard priority is 0. Same prio is schduled parallel--></span> -<span class="w"> </span><span class="nt"><slex:co-simulation</span> -<span class="w"> </span><span class="na">priority=</span><span class="s">"42"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ssc:Annotation></span> -</pre></div> -</div> -</div></blockquote> -</section> -</section> -<section id="implementation"> -<span id="ssp-implementation"></span><h2>Implementation<a class="headerlink" href="#implementation" title="Link to this heading">ïƒ</a></h2> -<section id="parsing"> -<h3>Parsing<a class="headerlink" href="#parsing" title="Link to this heading">ïƒ</a></h3> -<p>The first implementation detail of Algorithm SSP Wrapper, a selected SSP is loaded as vehicle component. -The following picture illustrates how files are parsed and interpreted in Algorithm_SspWrapper.</p> -<figure class="align-default" id="ssp-parsing"> -<img alt="../../_images/%5BI1%5DParsing.png" src="../../_images/%5BI1%5DParsing.png" /> -</figure> -<p>Algorithm_SspWrapper is initialized by parsing one .ssp. The zip folded contents of the .ssp is unpacked to a temporary folder -and the contents are scanned for ssd files, such as the mandatory “SystemStructure.ssdâ€. -The System described by “SystemStructure.ssd†makes the root system, -any other fully parsed system is included as subsystem of that root system.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>One parsed ssd. System includes GroupConnectors, which contain all outer accessible connectors. -A Connector is only visible from outside if it is connected with a connection. More on that in section <a class="reference internal" href="#ssp-objectstructure"><span class="std std-ref">Object Structure</span></a></p> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Should there be systems which are described by .ssd files, they must be in the elements array of the root system, -or in any other system related to the root system. Is a .ssd not in any relation to the root, it is ignored!</p> -</div> -<p>The process of interpreting the connections is part of the system creation. -Another feature of system creation is the formation of OSI Connectors we discuss in the next chapter:</p> -</section> -<section id="osi-connectors"> -<span id="ssp-osmpconnector"></span><h3>OSI Connectors<a class="headerlink" href="#osi-connectors" title="Link to this heading">ïƒ</a></h3> -<p>The next figure describes how triples of connectors form a OSI Connector.</p> -<figure class="align-default"> -<img alt="../../_images/%5BI2%5DOsmpConnector.png" src="../../_images/%5BI2%5DOsmpConnector.png" /> -</figure> -<p>OSI connectors come in triples since OSI messages are represented with 3 integers. -The integers base.lo and base.hi specify the memory location of the OSI message. base.size describes the buffer length. -Through the osmp annotation, a triple of connectors are joined together. -In the figures of this documentation, OSI Connectors are signaled by the purple color.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The name attribute in the annotation joins the triple, whereas the connector name is relevant for the ssd system.</p> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>To connect OSI connectors, they require 3 connections in the .ssd. Once the file is parsed, -the 3 connections forms a complete connection in the system.</p> -</div> -<p>OSI connectors are responsible for writing messages. Should the OSI message of a OSI connector change, -and the connector parametrized to write output, it writes the new message as soon as it changes. -While json messages can be written to file directly, binary traces contain the serialized messages of much timesteps in one file. -Because of that, osi messages append binary traces to message containers in their SSP system. It’s contents are written -to file as soon the system destructs.</p> -</section> -<section id="object-structure"> -<span id="ssp-objectstructure"></span><h3>Object Structure<a class="headerlink" href="#object-structure" title="Link to this heading">ïƒ</a></h3> -<p>The implementation of SSP follows the relation of objects which the standard imposes. -Mainly the SSP contains at least one System. Each System contains Elements and Connectors. -Since Systems are Elements, Systems can include other Systems as subelements.</p> -<p>Another type of Elements are Components. One common used Component is the FMUComponent. -It is good practice that FMUComponents don’t contain further subelements.</p> -<p>The System originating from the mandatory SystemStructure.ssd makes the root System object, -containing all of it’s subsystems.</p> -<p>The Following picture shows ConnectionTest.ssp with two connected FMU’s.</p> -<figure class="align-default" id="ssp-connectiontestdetail"> -<img alt="../../_images/%5BI3%5DOSMPConnectionTestDetail.png" src="../../_images/%5BI3%5DOSMPConnectionTestDetail.png" /> -</figure> -<p>After parsing, Algorithm_SspWrapper holds only one SSP System, which is the root System defined by the systemstructure.ssd -In our example, we have one subsystem: OSMPConnection, which is a Element of the root System. -Within the Elements of the System OSMPConnection are two components, which are of the type FMUComponent. -Each of these Components hold an instance of Algorithm_FmuWrapper. -The two FMUs are connected by two OSI Connectors. To establish a connection, the following requirements need to be fulfilled:</p> -<ul class="simple"> -<li><p>SensorDataOut has to be a OSI connector (see section <a class="reference internal" href="#ssp-osmpconnector"><span class="std std-ref">OSI Connectors</span></a>)</p></li> -<li><p>SensorDataOut should be an output connector of SensorDummy and SensorDataIn should be an input connector of TrafficUpdateStepper. Their kind is specified as a connector attribute in the ssd file.</p></li> -<li><p>both connectors are connected by the connection depicted with ‘*’ in the figure.</p></li> -</ul> -<p>The OSI connector SensorDataOut will propagate its SensorData to the other connector SensorDataIn. -Each System can have connections, which can connect connectors of two different elements. -Hence, each Connection is just a tuple of : (elementStartName, startConnectorName) -> (elementEndName, endConnectorName)</p> -<blockquote> -<div><div class="admonition note"> -<p class="admonition-title">Note</p> -<p>While OSI Connectors are abstracted as singular units in the figure, they appear as triple in the ssd. files. -Hence they require three connections in the ssd. file as well</p> -</div> -</div></blockquote> -<dl> -<dt>Example Connection between two components within the SSP (Connection ‘*’)</dt><dd><div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="cm"><!-- DummySensor <-> TrafficStepper --></span> -<span class="w"> </span><span class="nt"><ssd:Connection</span><span class="w"> </span><span class="na">startElement=</span><span class="s">"DummySensor"</span> -<span class="w"> </span><span class="na">startConnector=</span><span class="s">"SensorDataOut.size"</span> -<span class="w"> </span><span class="na">endElement=</span><span class="s">"TrafficStepper"</span> -<span class="w"> </span><span class="na">endConnector=</span><span class="s">"SensorDataIn.size"</span> -<span class="w"> </span><span class="na">suppressUnitConversion=</span><span class="s">"false"</span><span class="nt">/></span> -</pre></div> -</div> -</dd> -<dt>Example Connection from outside the system(e.g. openPASS or another system) to a component in the system (Connection ‘**’)</dt><dd><div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="cm"><!-- System <-> TrafficStepper --></span> -<span class="w"> </span><span class="nt"><ssd:Connection</span><span class="w"> </span><span class="na">startElement=</span><span class="s">"TrafficStepper"</span> -<span class="w"> </span><span class="na">startConnector=</span><span class="s">"TrafficUpdateOut.size"</span> -<span class="w"> </span><span class="na">endConnector=</span><span class="s">"TrafficUpdateOut.size"</span> -<span class="w"> </span><span class="na">suppressUnitConversion=</span><span class="s">"false"</span><span class="nt">/></span> -</pre></div> -</div> -</dd> -</dl> -<p id="ssp-connections">Notice that the connectors SensorDataIn, SensorDataOut and TrafficUpdate belong to their Components. -In the case of OSMPConnection, we are interested in the TrafficUpdate OSI message as output of the whole SSP. -Therefore, it needs a connection outwards. -This connection is represented by the connection ‘**’ in the figure. As you can see in the figure above, the second connection -connects connector TrafficUpdateOut with the GroupConnector systemOutput. To make the connection work, the following is necessary: -- TrafficUpdateOut has to be a OSI connector (see section <a class="reference internal" href="#ssp-osmpconnector"><span class="std std-ref">OSI Connectors</span></a>) -- TrafficUpdateOut should be an output connector of TrafficUpdate and there must be three output connectors at the system OSMPConnection. These mirror the names of the three connectors forming the OSI connector on TrafficUpdateStepper. -- Both connectors are connected by a connection depicted with ** in the figure.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>For the connectors of system level, the most minimal connectors are necessary. -These only require the attribute name that mirrors the name of the connectors forming the OSI Connector.</p> -</div> -<p>If all conditions are met, the output connector is emplaced in the GroupConnector systemOutput. -In this example there are no input connectors which are accessible form outside.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Again TrafficUpdateOut makes up a pair of three connectors in the .ssd files. Notice that, if connectors inside sub elements -are only accessible from outside by well defined connections.</p> -</div> -<p>Let’s see how these outside accessible connectors are utilized by <strong>openPASS</strong> in the next section.</p> -</section> -<section id="ssp-and-op"> -<h3>SSP and <strong>openPASS</strong><a class="headerlink" href="#ssp-and-op" title="Link to this heading">ïƒ</a></h3> -<p>From <strong>openPASS</strong>, the Algorithm SspWrapper receives three events: UpdateInput, UpdateOutput and Trigger. -For each of these events, the SSP Wrapper implementation handles them by creating Visitors following the Visitor software pattern. -These Visitors visiting Elements, and allow the Elements to implement the behaviour for each visitor based on if the element is a System or a Component.</p> -<p>In general, we have two types of Visitors: ConnectorVisitors and ElementVisitors. -In the following figure, you can see how the Visitors traverse through our OSMPConnectionExample</p> -<figure class="align-default" id="id2"> -<span id="ssp-connectiontestdetailwithopenpass"></span><img alt="../../_images/%5BI4%5DOSMPConnectionTestDetailwithOpenPass.png" src="../../_images/%5BI4%5DOSMPConnectionTestDetailwithOpenPass.png" /> -<figcaption> -<p><span class="caption-text">Components and channel communication</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>Trigger is an event that manifests as ElementVisitor in the Algorithm SSP Wrapper. -Each Element in the root System is visited by the TriggerVisitor. A system accepts the Visitor by passing it to further subsystems -and by creating a queue of FMUComponents that are stored inside the system’s elements array. -Each component has a priority which is used to order the queue. -Then, the queue is processed and Trigger is called on the Algorithm_FmuWrapper instances which are stored inside the FMUComponents. -After each Trigger, all output Connectors are visited by the PropagateDataVisitor, which propagates OSI messages from one Connector to the next.</p> -<p>UpdateInput and UpdateOutput are ConnectorVisitors. For each System in the root system, they visit the SystemConnectors -systemInput and systemOutput. GroupConnectors can be connected to other connectors (see <a class="reference internal" href="#ssp-connections"><span class="std std-ref">SSP Connections</span></a>). -Their job is to delegate ConnectorVisitors to their connected counterparts. -The UpdateInputVisitor and UpdateOutputVisitor follow the GroupConnectors systemInput/systemOutput down to it’s OSI Connectors. -Once these Visitors visit a OSIConnector, they can perform UpdateInput and UpdateOutput, if the OSI Connector is a connector of a FMUComponent.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>UpdateInput and UpdateOutput handling is still experimental. Since we need to decide to continue in calling UpdateInput/UpdateOutput on the FMU, -or to refactor OSMPFmuHandler.</p> -</div> -<p>At the beginning of the simulation, the Init Visitor is a unique ElementVisitor, which will traverse through the System and trigger on every FMU the init procedure.</p> -</section> -</section> -<section id="limits"> -<span id="ssp-output"></span><h2>Limits<a class="headerlink" href="#limits" title="Link to this heading">ïƒ</a></h2> -<p>The current implementation of SSP in the SSP Wrapper is not a full implementation of the SSP Standard -but rather a solution to connect more then one FMUs together. -Currently, these SSP features are not part of Algorithm SspWrapper :</p> -<ul class="simple"> -<li><p>The standard allows usage of ids that can be used to refer any BaseElement in SSP</p></li> -<li><p>Other annotations besides OSMP Connectors and the component priority are ignored</p></li> -<li><p>Top Level meta data is not parsed</p></li> -<li><p>units and transformation between units are not supported</p></li> -<li><p>XML Element Choice : “Transformation Choice†as GType choice (for Connections) is not supported</p></li> -<li><p>SSP as component of Systems is not implemented</p></li> -<li><p>ParameterMapping (SSM) for automatic unit-mapping and name transformations in parameter binding is not implemented</p></li> -<li><p>Signal directories (SSB) as element of systems for cross hierarchical signal pools (e.g for buses) (and Signal Directory Reference) are not implemented</p></li> -<li><p>Default Experiment (with startTime and StopTime) is not used and ignored, the experiment control comes through <strong>openPASS</strong> events</p></li> -<li><p>Connectors of type string and binary data are not supported</p></li> -</ul> -</section> -<section id="outputs"> -<h2>Outputs<a class="headerlink" href="#outputs" title="Link to this heading">ïƒ</a></h2> -<p>For debugging purposes we allow to write out intermediate results during Simulation.</p> -<section id="folderstructure"> -<h3>FolderStructure<a class="headerlink" href="#folderstructure" title="Link to this heading">ïƒ</a></h3> -<p>The following folder structure shows the output files of our example.</p> -<blockquote> -<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span>..\results -├── ssp -│ ├── Agent0xxx -│ │ ├──OsmpConnectionTest -│ │ │ ├── DummySensor -│ │ │ │ ├── JsonFiles -│ │ │ │ └── BinaryTraceFiles -│ │ │ ├── TrafficUpdateStepper -│ │ │ │ ├── JsonFiles -│ │ │ │ └── BinaryTraceFiles -│ │ │ └── -│ │ └── -│ └── -└── -</pre></div> -</div> -</div></blockquote> -<dl class="simple"> -<dt>In the folder structure above:</dt><dd><ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">ssp</span></code> is always the root of the output structure</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">Agent0xxx</span></code>: the output is grouped by the agent who produced it (Agent0 -> Agent0000, Agent1 -> Agent0001)</p></li> -<li><p>the output is grouped by its producing System name</p></li> -<li><p>Further, the output is grouped by Components</p></li> -<li><p>There are two different possible output files: Json and BinaryTrace</p></li> -</ul> -</dd> -</dl> -<p>Json files for -- For every timestep a json file containing the connector’s OSI message will be created</p> -<p>BinaryTrace files for -- Serialized OSI message as string from a specified connector</p> -</section> -<section id="writemessageparameters"> -<h3>WriteMessageParameters<a class="headerlink" href="#writemessageparameters" title="Link to this heading">ïƒ</a></h3> -<p>We can specify for each component if json and/or binary traces are written to a file by using the parameter set -“WriteMessageParametersâ€. The following shows an example:</p> -<blockquote> -<div><div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><ssv:ParameterSet</span><span class="w"> </span><span class="na">version=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">name=</span><span class="s">"WriteMessageParameters"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ssv:Parameters></span> -<span class="w"> </span><span class="cm"><!-- <ssv:Parameter name="WriteJson_SensorData"></span> -<span class="cm"> <ssv:String value="OSMPSensorDataOut"/></span> -<span class="cm"> </ssv:Parameter></span> -<span class="cm"> <ssv:Parameter name="WriteTrace_SensorData"></span> -<span class="cm"> <ssv:String value="OSMPSensorDataOut"/></span> -<span class="cm"> </ssv:Parameter> --></span> -<span class="w"> </span><span class="nt"></ssv:Parameters></span> -<span class="w"> </span><span class="nt"></ssv:ParameterSet></span> -</pre></div> -</div> -</div></blockquote> -<p>How to read these parameters: -- WriteJson_SensorData: We write json outputs for the connector triple “OSMPSensorDataOut†-- WriteTrace_SensorData: We write binary traces for the connector triple “OSMPSensorDataOutâ€</p> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="spawner_features.html" class="btn btn-neutral float-left" title="Spawner Features" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="world_osi.html" class="btn btn-neutral float-right" title="World_OSI" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>System Structure and Parameterization (SSP) — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="World_OSI" href="world_osi.html" /> + <link rel="prev" title="Spawner Features" href="spawner_features.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> +<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> +<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">System Structure and Parameterization (SSP)</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#inputs-ssp-structure">Inputs / SSP Structure</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#system-structure-package-ssp">System Structure Package SSP</a></li> +<li class="toctree-l4"><a class="reference internal" href="#ssd-system-structure-definition">SSD - System Structure Definition</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#implementation">Implementation</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#parsing">Parsing</a></li> +<li class="toctree-l4"><a class="reference internal" href="#osi-connectors">OSI Connectors</a></li> +<li class="toctree-l4"><a class="reference internal" href="#object-structure">Object Structure</a></li> +<li class="toctree-l4"><a class="reference internal" href="#ssp-and-op">SSP and <strong>openPASS</strong></a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#limits">Limits</a></li> +<li class="toctree-l3"><a class="reference internal" href="#outputs">Outputs</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#folderstructure">FolderStructure</a></li> +<li class="toctree-l4"><a class="reference internal" href="#writemessageparameters">WriteMessageParameters</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="world_osi.html">World_OSI</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> + <li class="breadcrumb-item active">System Structure and Parameterization (SSP)</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/advanced_topics/simulator/system_structure_and_parameterization_(SSP).rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="system-structure-and-parameterization-ssp"> +<span id="ssp"></span><h1>System Structure and Parameterization (SSP)<a class="headerlink" href="#system-structure-and-parameterization-ssp" title="Link to this heading">ïƒ</a></h1> +<p>System Structure and Parameterization (SSP) is a tool independent standard to define +complete systems consisting of one or more FMUs +(see Functional-Mockup-Interface [LINK: <a class="reference external" href="https://fmi-standard.org/">https://fmi-standard.org/</a>]) +including its parameterization that can be transferred between simulation tools. +Official content is available under: <a class="reference external" href="https://ssp-standard.org/">https://ssp-standard.org/</a> .</p> +<p>In <strong>openPASS</strong> we use SSP to connect FMUs with each other, +especially those which need communication during one simulation time step. +The whole SSP is appended as vehicle component.</p> +<section id="inputs-ssp-structure"> +<span id="ssp-input"></span><h2>Inputs / SSP Structure<a class="headerlink" href="#inputs-ssp-structure" title="Link to this heading">ïƒ</a></h2> +<p>The following image displays the example ConnectionTest.ssp. This SSP contains one root SSD-System, +the subsystem OSMPConnectionTest and two SSD-Components, that are connected with each other.</p> +<figure class="align-default" id="osmpconnectiontest-visual"> +<img alt="../../_images/%5BB2%5DOsmpConnectionTest_Visual.png" src="../../_images/%5BB2%5DOsmpConnectionTest_Visual.png" /> +</figure> +<p>FMUs are wrapped within a SSD-Component. The example consists of two FMU’s “DummySensor†and “OSMPTrafficUpdateStepperâ€. +To allow these two to exchange data within one timestep, they need a connection, which consists of two connectors. +Either a connector gets data from outside of the SSP-System, for instance <strong>openPASS</strong>. +Or two connectors which are directly connected within the SSP-System. +These connections are only one directional. +The example shows a common usecase of SSP: A sensor Component transfers SensorData to the TrafficUpdateStepper, +which writes a DynamicSignal. This signal leaves this SSP to animate the agent.</p> +<section id="system-structure-package-ssp"> +<h3>System Structure Package SSP<a class="headerlink" href="#system-structure-package-ssp" title="Link to this heading">ïƒ</a></h3> +<p>On the filesystem, a SSP is a zip file, which includes one or more .ssd files together with related resources.</p> +<p>In our example the unpacked zip looks like this:</p> +<blockquote> +<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span>..\ConnectionTest.ssp +├── SystemStructure.ssd (mandatory !) +├── OSMPConnectionTest.ssd +├── ParameterValues.ssv +├── Resources +│ ├── DummySensor.fmu +│ └── OsmpTrafficUpdateStepper.fmu +</pre></div> +</div> +<p>In the folder structure above:</p> +<ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">SystemStructure.ssd</span></code> can be perceived as the root of the SSP. It contains the root system.</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">OSMPConnectionTest.ssd</span></code> A system within the root system</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">ParameterValues.ssv</span></code> Alternative way to describe the values of SSP parameters (<a class="reference internal" href="#ssvfiles"><span class="std std-ref">ref</span></a>)</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">Resources</span></code> The Resources folder is for additional data, like FMUs.</p></li> +</ul> +</div></blockquote> +<p>Resources can be referenced FMUs. +Any SSP specific files should be located in the zip root directory. +SSP files are referenced from the System Structure Description file(s) through relative URIs (cf. RFC 3986). +SystemStructure.ssd is the root file of the zip archive. System structure definitions (*.ssd) describe entities called Systems. +Additional entries may include Parameter Values (*.ssv), Parameter Mappings (*.ssm) or Signal Dictionaries (*.ssb).</p> +<p><strong>System Structure description (.ssd files)</strong></p> +<p>The file “SystemStructure.ssd†is mandatory because it defines to root of the SSP. +Other (*).ssd can be used to make use of more then one system, or for organisation purpose. +Subsystems that are hierarchically within the root system should be listed in that SSD. +Subsystems which are only present as (*).ssd but are not connected with the root. More on that in section <a class="reference internal" href="#ssd"><span class="std std-ref">SSD - System Structure Definition</span></a>.</p> +<p id="ssvfiles"><strong>System Structure Parameter Values (.ssv files)</strong></p> +<p>Not mandatory. Is supported in the current version of <strong>openPASS</strong>. +Parameter Values describes a collection of ssd:ParameterSet +A ParameterSet is a collection of parameters grouped under a name. +Parameter Values can be added in two ways:</p> +<ol class="arabic simple"> +<li><p>directly define it within the .ssd file in ssd:ParameterValues</p></li> +<li><p>create a .ssv file and reference it within the .ssd under ssd:ParameterValues</p></li> +</ol> +<p><strong>System Structure Parameter Mapping (.ssm files)</strong></p> +<p>Not mandatory. Not yet implemented in current <strong>openPASS</strong> version. +A parameter mapping describes a mapping between parameters. +A parameter mapping can be added in two ways:</p> +<ol class="arabic simple"> +<li><p>directly define it within the .ssd file in one ssd:ParameterMapping</p></li> +<li><p>create a .ssm file and reference it within the .ssd in one ssd:ParameterMappings</p></li> +</ol> +<p><strong>System Structure Signal Dictionaries (.ssb files)</strong></p> +<p>Is not mandatory. Not yet implemented in current <strong>openPASS</strong> version. +A signal dictionary is a collection of signals. +There are two ways to define a signal dictionary:</p> +<ol class="arabic simple"> +<li><p>directly define it within the .ssd file in ssd:ParameterMappings</p></li> +<li><p>create a .ssb file and reference it within the .ssd in ssd:ParameterMappings</p></li> +</ol> +</section> +<section id="ssd-system-structure-definition"> +<span id="ssd"></span><h3>SSD - System Structure Definition<a class="headerlink" href="#ssd-system-structure-definition" title="Link to this heading">ïƒ</a></h3> +<p>The following example shows the definition of a system “OSMPConnectionTestâ€.</p> +<figure class="align-default" id="id1"> +<span id="osmpconnectiontest-schema"></span><img alt="../../_images/OsmpConnectionTest.ssd_Schemaansicht.png" src="../../_images/OsmpConnectionTest.ssd_Schemaansicht.png" /> +<figcaption> +<p><span class="caption-text">Schematic representation of OSMPConnection.ssd</span><a class="headerlink" href="#id1" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>In the root System, OSMPConnectionTest is defined as an Element. +So this System is a subsystem of the root System. +The file “OSMPConnectionTest.ssd†defines the subsystem, which consists of two Components “DummySensor†and “TrafficUpdateStepperâ€. +Notice, how Components are listed as Elements. In general, Elements of a System can either be a System or a Component. +You can think of it as a filestructure, in our example we keep it simple with just two Components in the Elements of OSMPConnectionTest.</p> +<p><strong>In General</strong></p> +<p>Each System consists of zero to many Elements and zero to many Connections +A Element can either be a Component, a SignalDictionaryReference or a System (Subsystem). +Each Element can have zero to many connectors, which are used to define Connections. +Connectors can interface with the FMU model description. +A Connector has a certain type (data type), and can have zero two many Annotations +An Annotation is used to give additional information for any model entity, which we are using in <strong>openPASS</strong> to make OSMPConnectors (see <a class="reference internal" href="#ssp-osmpconnector"><span class="std std-ref">OSI Connectors</span></a>) +Furthermore each Element has zero to many ParameterBindings. +The parametrization of the FMUs is handled with a ParameterSet.</p> +<p><strong>OSMP Connectors</strong></p> +<p>By using an Annotation, we can combine three Connectors to be able to handle OSI messages. Notice, that Annotations +are a valid way to extend the standard with features, which are not part of SSP yet.</p> +<blockquote> +<div><div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><ssd:Annotations></span> +<span class="w"> </span><span class="nt"><ssc:Annotation</span><span class="w"> </span><span class="na">type=</span><span class="s">"net.pmsf.osmp"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><osmp:osmp-binary-variable</span> +<span class="w"> </span><span class="na">xmlns:osmp=</span><span class="s">"http://xsd.pmsf.net/OSISensorModelPackaging"</span> +<span class="w"> </span><span class="na">mime-type=</span><span class="s">"application/x-open-simulation-interface; type=SensorData; version=3.2.1"</span> +<span class="w"> </span><span class="na">name=</span><span class="s">"OSMPSensorDataOut"</span> +<span class="w"> </span><span class="na">role=</span><span class="s">"size"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ssc:Annotation></span> +<span class="w"> </span><span class="nt"></ssd:Annotations></span> +</pre></div> +</div> +</div></blockquote> +<p>Three Connectors combine with an Annotation of type “net.psmf.osmpâ€, by having the same name inside the osmp:osmp-binary-variable. +osmp:osmp-binary-variable comes always in the same shape. +Each triple of connectors must have the three following roles: base.lo, base.hi and size. +base.lo and base.hi make a memory pointer, where the OSI message is allocated during simulation. +size contains the memory size of the message. In combination of the three connectors the message can be passed between components +Also, notice how mime-type contains crucial information. Type specifies the type of the OSI message. Version is specified as well.</p> +<p><strong>FMU Parameters</strong></p> +<p>The FMU inside the ssd component needs parametrization as well. These are the same parameters as the parameters of the Algorithm_FmuWrapper. +To parametrize the FMU inside ssd, we define a ParameterSet inside the ParameterBindings. Important is the name attribute of the ParameterSet (name=â€FMUParametersâ€):</p> +<blockquote> +<div><div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><ssv:ParameterSet</span><span class="w"> </span><span class="na">version=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">name=</span><span class="s">"FmuParameters"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ssv:Parameters></span> +<span class="w"> </span><span class="nt"><ssv:Parameter</span><span class="w"> </span><span class="na">name=</span><span class="s">"Logging"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ssv:Boolean</span><span class="w"> </span><span class="na">value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ssv:Parameter></span> +<span class="w"> </span><span class="nt"><ssv:Parameter</span><span class="w"> </span><span class="na">name=</span><span class="s">"CsvOutput"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ssv:Boolean</span><span class="w"> </span><span class="na">value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ssv:Parameter></span> +<span class="w"> </span><span class="nt"><ssv:Parameter</span><span class="w"> </span><span class="na">name=</span><span class="s">"UnzipOncePerInstance"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ssv:Boolean</span><span class="w"> </span><span class="na">value=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ssv:Parameter></span> +<span class="w"> </span><span class="nt"><ssv:Parameter</span><span class="w"> </span><span class="na">name=</span><span class="s">"WriteJson_SensorView"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ssv:Boolean</span><span class="w"> </span><span class="na">value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ssv:Parameter></span> +<span class="w"> </span><span class="nt"><ssv:Parameter</span><span class="w"> </span><span class="na">name=</span><span class="s">"WriteTrace_SensorView"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ssv:Boolean</span><span class="w"> </span><span class="na">value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ssv:Parameter></span> +<span class="w"> </span><span class="nt"><ssv:Parameter</span><span class="w"> </span><span class="na">name=</span><span class="s">"Input_OSMPSensorViewIn"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ssv:String</span><span class="w"> </span><span class="na">value=</span><span class="s">"SensorView"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ssv:Parameter></span> +<span class="w"> </span><span class="nt"></ssv:Parameters></span> +<span class="w"> </span><span class="nt"></ssv:ParameterSet></span> +</pre></div> +</div> +</div></blockquote> +<p>Each ssv::parameter has a sub object of the parameter type, with the attribute value containing the actual value. +SSP support the following types: Real (float value), Integer, Boolean, String, Enumeration and Binary.</p> +<p><strong>PriorityParameter</strong> +The priority of the component is set through an annotation on component level +With a higher priority, a FMU component triggers earlier then others.</p> +<blockquote> +<div><div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><ssc:Annotation</span><span class="w"> </span><span class="na">type=</span><span class="s">"de.setlevel.ssp.scheduling"</span><span class="nt">></span> +<span class="w"> </span><span class="cm"><!--Standard priority is 0. Same prio is schduled parallel--></span> +<span class="w"> </span><span class="nt"><slex:co-simulation</span> +<span class="w"> </span><span class="na">priority=</span><span class="s">"42"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ssc:Annotation></span> +</pre></div> +</div> +</div></blockquote> +</section> +</section> +<section id="implementation"> +<span id="ssp-implementation"></span><h2>Implementation<a class="headerlink" href="#implementation" title="Link to this heading">ïƒ</a></h2> +<section id="parsing"> +<h3>Parsing<a class="headerlink" href="#parsing" title="Link to this heading">ïƒ</a></h3> +<p>The first implementation detail of Algorithm SSP Wrapper, a selected SSP is loaded as vehicle component. +The following picture illustrates how files are parsed and interpreted in Algorithm_SspWrapper.</p> +<figure class="align-default" id="ssp-parsing"> +<img alt="../../_images/%5BI1%5DParsing.png" src="../../_images/%5BI1%5DParsing.png" /> +</figure> +<p>Algorithm_SspWrapper is initialized by parsing one .ssp. The zip folded contents of the .ssp is unpacked to a temporary folder +and the contents are scanned for ssd files, such as the mandatory “SystemStructure.ssdâ€. +The System described by “SystemStructure.ssd†makes the root system, +any other fully parsed system is included as subsystem of that root system.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>One parsed ssd. System includes GroupConnectors, which contain all outer accessible connectors. +A Connector is only visible from outside if it is connected with a connection. More on that in section <a class="reference internal" href="#ssp-objectstructure"><span class="std std-ref">Object Structure</span></a></p> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Should there be systems which are described by .ssd files, they must be in the elements array of the root system, +or in any other system related to the root system. Is a .ssd not in any relation to the root, it is ignored!</p> +</div> +<p>The process of interpreting the connections is part of the system creation. +Another feature of system creation is the formation of OSI Connectors we discuss in the next chapter:</p> +</section> +<section id="osi-connectors"> +<span id="ssp-osmpconnector"></span><h3>OSI Connectors<a class="headerlink" href="#osi-connectors" title="Link to this heading">ïƒ</a></h3> +<p>The next figure describes how triples of connectors form a OSI Connector.</p> +<figure class="align-default"> +<img alt="../../_images/%5BI2%5DOsmpConnector.png" src="../../_images/%5BI2%5DOsmpConnector.png" /> +</figure> +<p>OSI connectors come in triples since OSI messages are represented with 3 integers. +The integers base.lo and base.hi specify the memory location of the OSI message. base.size describes the buffer length. +Through the osmp annotation, a triple of connectors are joined together. +In the figures of this documentation, OSI Connectors are signaled by the purple color.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The name attribute in the annotation joins the triple, whereas the connector name is relevant for the ssd system.</p> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>To connect OSI connectors, they require 3 connections in the .ssd. Once the file is parsed, +the 3 connections forms a complete connection in the system.</p> +</div> +<p>OSI connectors are responsible for writing messages. Should the OSI message of a OSI connector change, +and the connector parametrized to write output, it writes the new message as soon as it changes. +While json messages can be written to file directly, binary traces contain the serialized messages of much timesteps in one file. +Because of that, osi messages append binary traces to message containers in their SSP system. It’s contents are written +to file as soon the system destructs.</p> +</section> +<section id="object-structure"> +<span id="ssp-objectstructure"></span><h3>Object Structure<a class="headerlink" href="#object-structure" title="Link to this heading">ïƒ</a></h3> +<p>The implementation of SSP follows the relation of objects which the standard imposes. +Mainly the SSP contains at least one System. Each System contains Elements and Connectors. +Since Systems are Elements, Systems can include other Systems as subelements.</p> +<p>Another type of Elements are Components. One common used Component is the FMUComponent. +It is good practice that FMUComponents don’t contain further subelements.</p> +<p>The System originating from the mandatory SystemStructure.ssd makes the root System object, +containing all of it’s subsystems.</p> +<p>The Following picture shows ConnectionTest.ssp with two connected FMU’s.</p> +<figure class="align-default" id="ssp-connectiontestdetail"> +<img alt="../../_images/%5BI3%5DOSMPConnectionTestDetail.png" src="../../_images/%5BI3%5DOSMPConnectionTestDetail.png" /> +</figure> +<p>After parsing, Algorithm_SspWrapper holds only one SSP System, which is the root System defined by the systemstructure.ssd +In our example, we have one subsystem: OSMPConnection, which is a Element of the root System. +Within the Elements of the System OSMPConnection are two components, which are of the type FMUComponent. +Each of these Components hold an instance of Algorithm_FmuWrapper. +The two FMUs are connected by two OSI Connectors. To establish a connection, the following requirements need to be fulfilled:</p> +<ul class="simple"> +<li><p>SensorDataOut has to be a OSI connector (see section <a class="reference internal" href="#ssp-osmpconnector"><span class="std std-ref">OSI Connectors</span></a>)</p></li> +<li><p>SensorDataOut should be an output connector of SensorDummy and SensorDataIn should be an input connector of TrafficUpdateStepper. Their kind is specified as a connector attribute in the ssd file.</p></li> +<li><p>both connectors are connected by the connection depicted with ‘*’ in the figure.</p></li> +</ul> +<p>The OSI connector SensorDataOut will propagate its SensorData to the other connector SensorDataIn. +Each System can have connections, which can connect connectors of two different elements. +Hence, each Connection is just a tuple of : (elementStartName, startConnectorName) -> (elementEndName, endConnectorName)</p> +<blockquote> +<div><div class="admonition note"> +<p class="admonition-title">Note</p> +<p>While OSI Connectors are abstracted as singular units in the figure, they appear as triple in the ssd. files. +Hence they require three connections in the ssd. file as well</p> +</div> +</div></blockquote> +<dl> +<dt>Example Connection between two components within the SSP (Connection ‘*’)</dt><dd><div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="cm"><!-- DummySensor <-> TrafficStepper --></span> +<span class="w"> </span><span class="nt"><ssd:Connection</span><span class="w"> </span><span class="na">startElement=</span><span class="s">"DummySensor"</span> +<span class="w"> </span><span class="na">startConnector=</span><span class="s">"SensorDataOut.size"</span> +<span class="w"> </span><span class="na">endElement=</span><span class="s">"TrafficStepper"</span> +<span class="w"> </span><span class="na">endConnector=</span><span class="s">"SensorDataIn.size"</span> +<span class="w"> </span><span class="na">suppressUnitConversion=</span><span class="s">"false"</span><span class="nt">/></span> +</pre></div> +</div> +</dd> +<dt>Example Connection from outside the system(e.g. openPASS or another system) to a component in the system (Connection ‘**’)</dt><dd><div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="cm"><!-- System <-> TrafficStepper --></span> +<span class="w"> </span><span class="nt"><ssd:Connection</span><span class="w"> </span><span class="na">startElement=</span><span class="s">"TrafficStepper"</span> +<span class="w"> </span><span class="na">startConnector=</span><span class="s">"TrafficUpdateOut.size"</span> +<span class="w"> </span><span class="na">endConnector=</span><span class="s">"TrafficUpdateOut.size"</span> +<span class="w"> </span><span class="na">suppressUnitConversion=</span><span class="s">"false"</span><span class="nt">/></span> +</pre></div> +</div> +</dd> +</dl> +<p id="ssp-connections">Notice that the connectors SensorDataIn, SensorDataOut and TrafficUpdate belong to their Components. +In the case of OSMPConnection, we are interested in the TrafficUpdate OSI message as output of the whole SSP. +Therefore, it needs a connection outwards. +This connection is represented by the connection ‘**’ in the figure. As you can see in the figure above, the second connection +connects connector TrafficUpdateOut with the GroupConnector systemOutput. To make the connection work, the following is necessary: +- TrafficUpdateOut has to be a OSI connector (see section <a class="reference internal" href="#ssp-osmpconnector"><span class="std std-ref">OSI Connectors</span></a>) +- TrafficUpdateOut should be an output connector of TrafficUpdate and there must be three output connectors at the system OSMPConnection. These mirror the names of the three connectors forming the OSI connector on TrafficUpdateStepper. +- Both connectors are connected by a connection depicted with ** in the figure.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>For the connectors of system level, the most minimal connectors are necessary. +These only require the attribute name that mirrors the name of the connectors forming the OSI Connector.</p> +</div> +<p>If all conditions are met, the output connector is emplaced in the GroupConnector systemOutput. +In this example there are no input connectors which are accessible form outside.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Again TrafficUpdateOut makes up a pair of three connectors in the .ssd files. Notice that, if connectors inside sub elements +are only accessible from outside by well defined connections.</p> +</div> +<p>Let’s see how these outside accessible connectors are utilized by <strong>openPASS</strong> in the next section.</p> +</section> +<section id="ssp-and-op"> +<h3>SSP and <strong>openPASS</strong><a class="headerlink" href="#ssp-and-op" title="Link to this heading">ïƒ</a></h3> +<p>From <strong>openPASS</strong>, the Algorithm SspWrapper receives three events: UpdateInput, UpdateOutput and Trigger. +For each of these events, the SSP Wrapper implementation handles them by creating Visitors following the Visitor software pattern. +These Visitors visiting Elements, and allow the Elements to implement the behaviour for each visitor based on if the element is a System or a Component.</p> +<p>In general, we have two types of Visitors: ConnectorVisitors and ElementVisitors. +In the following figure, you can see how the Visitors traverse through our OSMPConnectionExample</p> +<figure class="align-default" id="id2"> +<span id="ssp-connectiontestdetailwithopenpass"></span><img alt="../../_images/%5BI4%5DOSMPConnectionTestDetailwithOpenPass.png" src="../../_images/%5BI4%5DOSMPConnectionTestDetailwithOpenPass.png" /> +<figcaption> +<p><span class="caption-text">Components and channel communication</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>Trigger is an event that manifests as ElementVisitor in the Algorithm SSP Wrapper. +Each Element in the root System is visited by the TriggerVisitor. A system accepts the Visitor by passing it to further subsystems +and by creating a queue of FMUComponents that are stored inside the system’s elements array. +Each component has a priority which is used to order the queue. +Then, the queue is processed and Trigger is called on the Algorithm_FmuWrapper instances which are stored inside the FMUComponents. +After each Trigger, all output Connectors are visited by the PropagateDataVisitor, which propagates OSI messages from one Connector to the next.</p> +<p>UpdateInput and UpdateOutput are ConnectorVisitors. For each System in the root system, they visit the SystemConnectors +systemInput and systemOutput. GroupConnectors can be connected to other connectors (see <a class="reference internal" href="#ssp-connections"><span class="std std-ref">SSP Connections</span></a>). +Their job is to delegate ConnectorVisitors to their connected counterparts. +The UpdateInputVisitor and UpdateOutputVisitor follow the GroupConnectors systemInput/systemOutput down to it’s OSI Connectors. +Once these Visitors visit a OSIConnector, they can perform UpdateInput and UpdateOutput, if the OSI Connector is a connector of a FMUComponent.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>UpdateInput and UpdateOutput handling is still experimental. Since we need to decide to continue in calling UpdateInput/UpdateOutput on the FMU, +or to refactor OSMPFmuHandler.</p> +</div> +<p>At the beginning of the simulation, the Init Visitor is a unique ElementVisitor, which will traverse through the System and trigger on every FMU the init procedure.</p> +</section> +</section> +<section id="limits"> +<span id="ssp-output"></span><h2>Limits<a class="headerlink" href="#limits" title="Link to this heading">ïƒ</a></h2> +<p>The current implementation of SSP in the SSP Wrapper is not a full implementation of the SSP Standard +but rather a solution to connect more then one FMUs together. +Currently, these SSP features are not part of Algorithm SspWrapper :</p> +<ul class="simple"> +<li><p>The standard allows usage of ids that can be used to refer any BaseElement in SSP</p></li> +<li><p>Other annotations besides OSMP Connectors and the component priority are ignored</p></li> +<li><p>Top Level meta data is not parsed</p></li> +<li><p>units and transformation between units are not supported</p></li> +<li><p>XML Element Choice : “Transformation Choice†as GType choice (for Connections) is not supported</p></li> +<li><p>SSP as component of Systems is not implemented</p></li> +<li><p>ParameterMapping (SSM) for automatic unit-mapping and name transformations in parameter binding is not implemented</p></li> +<li><p>Signal directories (SSB) as element of systems for cross hierarchical signal pools (e.g for buses) (and Signal Directory Reference) are not implemented</p></li> +<li><p>Default Experiment (with startTime and StopTime) is not used and ignored, the experiment control comes through <strong>openPASS</strong> events</p></li> +<li><p>Connectors of type string and binary data are not supported</p></li> +</ul> +</section> +<section id="outputs"> +<h2>Outputs<a class="headerlink" href="#outputs" title="Link to this heading">ïƒ</a></h2> +<p>For debugging purposes we allow to write out intermediate results during Simulation.</p> +<section id="folderstructure"> +<h3>FolderStructure<a class="headerlink" href="#folderstructure" title="Link to this heading">ïƒ</a></h3> +<p>The following folder structure shows the output files of our example.</p> +<blockquote> +<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span>..\results +├── ssp +│ ├── Agent0xxx +│ │ ├──OsmpConnectionTest +│ │ │ ├── DummySensor +│ │ │ │ ├── JsonFiles +│ │ │ │ └── BinaryTraceFiles +│ │ │ ├── TrafficUpdateStepper +│ │ │ │ ├── JsonFiles +│ │ │ │ └── BinaryTraceFiles +│ │ │ └── +│ │ └── +│ └── +└── +</pre></div> +</div> +</div></blockquote> +<dl class="simple"> +<dt>In the folder structure above:</dt><dd><ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">ssp</span></code> is always the root of the output structure</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">Agent0xxx</span></code>: the output is grouped by the agent who produced it (Agent0 -> Agent0000, Agent1 -> Agent0001)</p></li> +<li><p>the output is grouped by its producing System name</p></li> +<li><p>Further, the output is grouped by Components</p></li> +<li><p>There are two different possible output files: Json and BinaryTrace</p></li> +</ul> +</dd> +</dl> +<p>Json files for +- For every timestep a json file containing the connector’s OSI message will be created</p> +<p>BinaryTrace files for +- Serialized OSI message as string from a specified connector</p> +</section> +<section id="writemessageparameters"> +<h3>WriteMessageParameters<a class="headerlink" href="#writemessageparameters" title="Link to this heading">ïƒ</a></h3> +<p>We can specify for each component if json and/or binary traces are written to a file by using the parameter set +“WriteMessageParametersâ€. The following shows an example:</p> +<blockquote> +<div><div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><ssv:ParameterSet</span><span class="w"> </span><span class="na">version=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">name=</span><span class="s">"WriteMessageParameters"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ssv:Parameters></span> +<span class="w"> </span><span class="cm"><!-- <ssv:Parameter name="WriteJson_SensorData"></span> +<span class="cm"> <ssv:String value="OSMPSensorDataOut"/></span> +<span class="cm"> </ssv:Parameter></span> +<span class="cm"> <ssv:Parameter name="WriteTrace_SensorData"></span> +<span class="cm"> <ssv:String value="OSMPSensorDataOut"/></span> +<span class="cm"> </ssv:Parameter> --></span> +<span class="w"> </span><span class="nt"></ssv:Parameters></span> +<span class="w"> </span><span class="nt"></ssv:ParameterSet></span> +</pre></div> +</div> +</div></blockquote> +<p>How to read these parameters: +- WriteJson_SensorData: We write json outputs for the connector triple “OSMPSensorDataOut†+- WriteTrace_SensorData: We write binary traces for the connector triple “OSMPSensorDataOutâ€</p> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="spawner_features.html" class="btn btn-neutral float-left" title="Spawner Features" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="world_osi.html" class="btn btn-neutral float-right" title="World_OSI" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/advanced_topics/simulator/world_osi.html b/content/html/advanced_topics/simulator/world_osi.html index f7f8634b6056e1cbece4ebf3528b534c11b33610..7a082d144a2e6cbf641d2eb0ce671f6993360bed 100644 --- a/content/html/advanced_topics/simulator/world_osi.html +++ b/content/html/advanced_topics/simulator/world_osi.html @@ -1,920 +1,921 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>World_OSI — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="EndToEnd Test Framework" href="../30_testing.html" /> - <link rel="prev" title="System Structure and Parameterization (SSP)" href="system_structure_and_parameterization_%28SSP%29.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> -<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> -<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> -<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">World_OSI</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#sampling-of-world-geometries">Sampling of World Geometries</a></li> -<li class="toctree-l3"><a class="reference internal" href="#localization">Localization</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#basics">Basics</a></li> -<li class="toctree-l4"><a class="reference internal" href="#localization-sequence">Localization Sequence</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#traffic-signs-road-markings-and-trafficlights">Traffic Signs, Road Markings and TrafficLights</a></li> -<li class="toctree-l3"><a class="reference internal" href="#lane-markings">Lane Markings</a></li> -<li class="toctree-l3"><a class="reference internal" href="#getobstruction">GetObstruction</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> - <li class="breadcrumb-item active">World_OSI</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/advanced_topics/simulator/world_osi.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="world-osi"> -<span id="id1"></span><h1>World_OSI<a class="headerlink" href="#world-osi" title="Link to this heading">ïƒ</a></h1> -<section id="sampling-of-world-geometries"> -<span id="world-sampling"></span><h2>Sampling of World Geometries<a class="headerlink" href="#sampling-of-world-geometries" title="Link to this heading">ïƒ</a></h2> -<p>Roads are described following the <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> specification. -There the geometry of a road is defined algebraically as lines, clothoids and by means of cubic polynomials, whereby primarily only one reference line is defined. -The lanes can be understood as a stack of parallel lanes, which are given by the width and the offset, now in relation to this reference line, which acts as the underlying coordinate system (‘s/t’ road coordinates with s along the road). -Here, too, width and offset are defined algebraically, which means that almost any boundary lines can be defined.</p> -<p>When the world is initialized, these boundary definitions (i.e. algebraic geometries) are converted into piecewise linear elements, which is called sampling. -The road is scanned at a constant interval along ‘s’, which leads to four-sided (quadrangular) sections of the lanes at common ‘s’ coordinates, so-called lane elements (see LaneElement). -The scanning is carried out at a scanning rate of 10 centimeters with the aim of achieving a total scanning error of less than 5 centimeters, as required by the representation used internally (c.f. <a class="reference external" href="https://github.com/OpenSimulationInterface">open simulation interface</a>). -Note that this error is only guaranteed if geometries do not exhibit extreme curvatures, i.e. a deviation of more than 5 cm within two sampling points (10 cm along s). -The scanned points define so-called joints, which contain all scanned points at an ‘s’ coordinate across all lane boundaries of the given road. -The number of these joints is reduced by a <a class="reference external" href="https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm">Ramer-Douglas-Peucker algorithm</a>, which ensures that the maximum lateral error of each individual point within a joint is less than 5 cm compared to the originally scanned points. -Note that (a) the boundary points of geometries are always retained and (b) additional points for lane marking transitions are also retained to ensure the maximum accuracy of these edge cases. -The lane elements are generated with two successive connections, which are ultimately used in the localization at runtime (see <a class="reference internal" href="#world-localization"><span class="std std-ref">Localization</span></a>).</p> -<p>Internally, each lane element receives a constant direction, which is defined by the direction of the vector spanned between the centers of the corresponding connections. -Each joint also holds the corresponding curvature of the road, so that the curvature can be interpolated linearly within a lane element along the ‘s’ coordinate.</p> -</section> -<section id="localization"> -<span id="world-localization"></span><h2>Localization<a class="headerlink" href="#localization" title="Link to this heading">ïƒ</a></h2> -<p>Generally, the position of an agent is stored with respect to <a class="reference internal" href="coordinate_systems.html#coordinatesystems-world"><span class="std std-ref">world coordinates (x,y)</span></a>. -As queries on the world operates in <a class="reference internal" href="coordinate_systems.html#coordinatesystems-road"><span class="std std-ref">road coordinates (s,t)</span></a>, the position of the agent needs to be transformed.</p> -<p>This section describes the translation of coordinates (x,y) of an agent into RoadCoordinate (s,t), whereas the notion of (s,t) comes from the <cite>OpenDRIVE</cite> _ standard.</p> -<section id="basics"> -<h3>Basics<a class="headerlink" href="#basics" title="Link to this heading">ïƒ</a></h3> -<p>The following image depics the basic principes of the localization which is rooted on the specifics of the OSI World Layer (aka OWL).</p> -<figure class="align-default" id="id2"> -<img alt="../../_images/LocalizationBasics.svg" src="../../_images/LocalizationBasics.svg" /><figcaption> -<p><span class="caption-text">Localization Basics</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>Given is a point P in cartesian coordinates (x/y). -The task is to assign the point to a lane, defined by a general road geometry and calculate the transformed Point P’ in road coordinates (s/t).</p> -<p>Road geometry (based on <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a>):</p> -<blockquote> -<div><ul class="simple"> -<li><p>A road consists of several sections</p></li> -<li><p>Each section consists of several lanes</p></li> -<li><p>Within a section, the number of lanes is constant</p></li> -<li><p>Lanes can have one predecessor and one successor</p></li> -<li><p>The road follows a reference line, which is the reference for the <em>s</em>-coordinate. -The <em>t</em>-coordinate is perpendicular to this line.</p></li> -</ul> -</div></blockquote> -<p>OWL specifics:</p> -<blockquote> -<div><ul class="simple"> -<li><p>All lanes are sampled, generating a stream of generic quadrilaterals (LaneGeometryElements).</p></li> -<li><p>Within a section, the number of quads per lane is equal, and all lanes have the same length in s.</p></li> -<li><p>This is realized by a variable sampling width, determined by a constant sampling width along the longest arc.</p></li> -<li><p>Consequently, points perpendicular to the reference line (<em>t</em>-axis) have the same <em>s</em>-coordinate.</p></li> -</ul> -</div></blockquote> -<p>Note, that the final <em>t</em>-coordinate is calculated with respect to a virtual reference line for each lane. -This means, that points on the center of a lane have <em>t</em>-coordinate of 0.</p> -</section> -<section id="localization-sequence"> -<h3>Localization Sequence<a class="headerlink" href="#localization-sequence" title="Link to this heading">ïƒ</a></h3> -<p>The following outlines the localization process implemented in openPASS, using a specific example of a bus changing lanes on a widening road.</p> -<figure class="align-default" id="id3"> -<img alt="../../_images/localization_with_bus_step0.svg" src="../../_images/localization_with_bus_step0.svg" /><figcaption> -<p><span class="caption-text">Bus changing lanes on a widening road</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>First, as described above LaneGeometryElements are generated for the road, here shown as a simplified red grid:</p> -<figure class="align-default" id="id4"> -<img alt="../../_images/localization_with_bus_step1.svg" src="../../_images/localization_with_bus_step1.svg" /><figcaption> -<p><span class="caption-text">LaneGeometryElements and bounding box of the bus</span><a class="headerlink" href="#id4" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>All geometries are internally managed by an <a class="reference external" href="https://www.boost.org/doc/libs/1_65_0/libs/geometry/doc/html/geometry/reference/spatial_indexes/boost__geometry__index__rtree.html">r-tree</a>, used to check for overlaps between the bounding box of the bus and all stored objects in the tree, making checks for overlap extremely fast. -However, the r-tree comes with the restriction that all stored objects are stored by boxes orthogonal to <code class="docutils literal notranslate"><span class="pre">x</span></code> and <code class="docutils literal notranslate"><span class="pre">y</span></code> (= maximum Cartesian coordinates of the boundary points).</p> -<figure class="align-default" id="id5"> -<img alt="../../_images/localization_with_bus_step2.svg" src="../../_images/localization_with_bus_step2.svg" /><figcaption> -<p><span class="caption-text">r-Tree representation of the Bus and a single LaneGeometryElement</span><a class="headerlink" href="#id5" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<figure class="align-default" id="id6"> -<img alt="../../_images/localization_with_bus_step3.svg" src="../../_images/localization_with_bus_step3.svg" /><figcaption> -<p><span class="caption-text">r-Tree representation of all participating geometries</span><a class="headerlink" href="#id6" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>This introduces additional overlaps, resulting in false positives where the bus is located on segments it does not actually touch.</p> -<figure class="align-default" id="id7"> -<img alt="../../_images/localization_with_bus_step4.svg" src="../../_images/localization_with_bus_step4.svg" /><figcaption> -<p><span class="caption-text">Found overlaps with false positives</span><a class="headerlink" href="#id7" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>This is justified because the subsequent filtering can be carried out quickly since the possible geometries allow a simplified intersection check. -Finally, for each point of a non-empty intersection polygon, the <code class="docutils literal notranslate"><span class="pre">s</span></code> and <code class="docutils literal notranslate"><span class="pre">t</span></code> coordinates are calculated and aggregated with respect to the underlying lane. -For each touched lane, the minimum and maximum <code class="docutils literal notranslate"><span class="pre">s</span></code> coordinate, and the minimum and maximum lane remainder (delta t) is stored.</p> -<figure class="align-default" id="id8"> -<img alt="../../_images/localization_with_bus_step5.svg" src="../../_images/localization_with_bus_step5.svg" /><figcaption> -<p><span class="caption-text">Example for the calculation of s_min, s_max and delta_right</span><a class="headerlink" href="#id8" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>In addition, if the reference point (i.e. the middle of the rear axle) or the mainLaneLocator (i.e. the middle of the agent front) are located within a LaneGeometryElement, <code class="docutils literal notranslate"><span class="pre">s/t/yaw</span></code> is calculated of each point, respectively. -Further aggregation is done with respect to each road by calculating the minimum and maximum <code class="docutils literal notranslate"><span class="pre">s</span></code> for each road the agent intersects with. -For the current route of an agent, the following information is stored: <code class="docutils literal notranslate"><span class="pre">s/t/yaw</span></code> of the reference point and mainLaneLocator on the route (roads along a route are not allowed to intersect), distance from the lane boundary to the left and right for the road(s) along the route, and OpenDRIVE Ids of the lanes on the route that the agent touches. -The results also holds information whether both the reference point and the mainLaneLocator lay on the route. -In the current implementation, these points must be located - otherwise the agent is despawened, as the agent cannot execute distance queries without a relation to its current route.</p> -</section> -</section> -<section id="traffic-signs-road-markings-and-trafficlights"> -<span id="world-trafficsigns"></span><h2>Traffic Signs, Road Markings and TrafficLights<a class="headerlink" href="#traffic-signs-road-markings-and-trafficlights" title="Link to this heading">ïƒ</a></h2> -<p>The world currently supports a variety of traffic signs, road markings and traffic lights. -All of these are defined in <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> as “RoadSignalâ€. -At the moment it can interpret traffic signs and road markings according to the German regulations, US regulations, and China regulations and traffic lights according the the <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> appendix. -Traffic signs can contain optional supplementary traffic signs. Supplementary signs are dependent on a main traffic sign and contain additional information.</p> -<p>For Germany the types are based on the StVO (see: <a class="reference external" href="https://www.bast.de/BASt_2017/DE/Verkehrstechnik/Fachthemen/v1-verkehrszeichen/vz-download.html">https://www.bast.de/BASt_2017/DE/Verkehrstechnik/Fachthemen/v1-verkehrszeichen/vz-download.html</a>). -The following traffic signs are supported for Germany:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>TrafficSign</p></th> -<th class="head"><p>Image</p></th> -<th class="head"><p>StVo Type</p></th> -<th class="head"><p>Subtype</p></th> -<th class="head"><p>Value and Units</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>GiveWay</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/GiveWay_205.svg"><img alt="../../_images/GiveWay_205.svg" src="../../_images/GiveWay_205.svg" width="400" /></a> -</figure> -</td> -<td><p>205</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>Stop</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/Stop_206.svg"><img alt="../../_images/Stop_206.svg" src="../../_images/Stop_206.svg" width="400" /></a> -</figure> -</td> -<td><p>206</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>DoNotEnter</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/DoNotEnter_267.svg"><img alt="../../_images/DoNotEnter_267.svg" src="../../_images/DoNotEnter_267.svg" width="400" /></a> -</figure> -</td> -<td><p>267</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>EnvironmentalZoneBegin</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/EnvironmentalZoneBegin_270.1.svg"><img alt="../../_images/EnvironmentalZoneBegin_270.1.svg" src="../../_images/EnvironmentalZoneBegin_270.1.svg" width="400" /></a> -</figure> -</td> -<td><p>270.1</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>EnvironmentalZoneEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/EnvironmentalZoneEnd_270.2.svg"><img alt="../../_images/EnvironmentalZoneEnd_270.2.svg" src="../../_images/EnvironmentalZoneEnd_270.2.svg" width="400" /></a> -</figure> -</td> -<td><p>270.2</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>MaximumSpeedLimit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/MaximumSpeedLimit_274-5.svg"><img alt="../../_images/MaximumSpeedLimit_274-5.svg" src="../../_images/MaximumSpeedLimit_274-5.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/MaximumSpeedLimit_274-130.svg"><img alt="../../_images/MaximumSpeedLimit_274-130.svg" src="../../_images/MaximumSpeedLimit_274-130.svg" width="400" /></a> -</figure> -</td> -<td><p>274</p></td> -<td><p>X</p></td> -<td><p>The subtype “X†is used to define the speedlimit in km/h. -Afterwards the world converts it to m/s.</p></td> -</tr> -<tr class="row-even"><td><p>SpeedLimitZoneBegin</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/SpeedLimitZoneBegin_274.1.svg"><img alt="../../_images/SpeedLimitZoneBegin_274.1.svg" src="../../_images/SpeedLimitZoneBegin_274.1.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/SpeedLimitZoneBegin_274.1-20.svg"><img alt="../../_images/SpeedLimitZoneBegin_274.1-20.svg" src="../../_images/SpeedLimitZoneBegin_274.1-20.svg" width="400" /></a> -</figure> -</td> -<td><p>274.1</p></td> -<td><p>-/20</p></td> -<td><p>The subtype is used to define the speedlimit in km/h. -Afterwards the world converts it to m/s. -No subtype = 30km/h, 20 = 20km/h</p></td> -</tr> -<tr class="row-odd"><td><p>SpeedLimitZoneEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/SpeedLimitZoneEnd_274.2.svg"><img alt="../../_images/SpeedLimitZoneEnd_274.2.svg" src="../../_images/SpeedLimitZoneEnd_274.2.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/SpeedLimitZoneEnd_274.2-20.svg"><img alt="../../_images/SpeedLimitZoneEnd_274.2-20.svg" src="../../_images/SpeedLimitZoneEnd_274.2-20.svg" width="400" /></a> -</figure> -</td> -<td><p>274.2</p></td> -<td><p>-/20</p></td> -<td><p>The subtype is used to define the speedlimit in km/h. -Afterwards the world converts it to m/s. -No subtype = 30km/h, 20 = 20km/h</p></td> -</tr> -<tr class="row-even"><td><p>MinimumSpeedLimit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/MinimumSpeedLimit_275.svg"><img alt="../../_images/MinimumSpeedLimit_275.svg" src="../../_images/MinimumSpeedLimit_275.svg" width="400" /></a> -</figure> -</td> -<td><p>275</p></td> -<td><p>X</p></td> -<td><p>The subtype is used to define the speedlimit in km/h. -Afterwards the world converts it to m/s.</p></td> -</tr> -<tr class="row-odd"><td><p>OvertakingBanBegin</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/OvertakingBanBegin_276.svg"><img alt="../../_images/OvertakingBanBegin_276.svg" src="../../_images/OvertakingBanBegin_276.svg" width="400" /></a> -</figure> -</td> -<td><p>276</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>OvertakingBanTrucksBegin</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/OvertakingBanTrucksBegin_277.svg"><img alt="../../_images/OvertakingBanTrucksBegin_277.svg" src="../../_images/OvertakingBanTrucksBegin_277.svg" width="400" /></a> -</figure> -</td> -<td><p>277</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>EndOfMaximumSpeedLimit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/EndOfMaximumSpeedLimit_278-5.svg"><img alt="../../_images/EndOfMaximumSpeedLimit_278-5.svg" src="../../_images/EndOfMaximumSpeedLimit_278-5.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/EndOfMaximumSpeedLimit_278-130.svg"><img alt="../../_images/EndOfMaximumSpeedLimit_278-130.svg" src="../../_images/EndOfMaximumSpeedLimit_278-130.svg" width="400" /></a> -</figure> -</td> -<td><p>278</p></td> -<td><p>X</p></td> -<td><p>The subtype “X†is used to define the speedlimit in km/h. -Afterwards the world converts it to m/s.</p></td> -</tr> -<tr class="row-even"><td><p>EndOfMinimumSpeedLimit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/EndOfMinimumSpeedLimit_279.svg"><img alt="../../_images/EndOfMinimumSpeedLimit_279.svg" src="../../_images/EndOfMinimumSpeedLimit_279.svg" width="400" /></a> -</figure> -</td> -<td><p>279</p></td> -<td><p>X</p></td> -<td><p>The subtype “X†is used to define the speedlimit in km/h. -Afterwards the world converts it to m/s.</p></td> -</tr> -<tr class="row-odd"><td><p>OvertakingBanEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/OvertakingBanEnd_280.svg"><img alt="../../_images/OvertakingBanEnd_280.svg" src="../../_images/OvertakingBanEnd_280.svg" width="400" /></a> -</figure> -</td> -<td><p>280</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>OvertakingBanTrucksEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/OvertakingBanTrucksEnd_281.svg"><img alt="../../_images/OvertakingBanTrucksEnd_281.svg" src="../../_images/OvertakingBanTrucksEnd_281.svg" width="400" /></a> -</figure> -</td> -<td><p>281</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>EndOffAllSpeedLimitsAndOvertakingRestrictions</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/EndOffAllSpeedLimitsAndOvertakingRestrictions_282.svg"><img alt="../../_images/EndOffAllSpeedLimitsAndOvertakingRestrictions_282.svg" src="../../_images/EndOffAllSpeedLimitsAndOvertakingRestrictions_282.svg" width="400" /></a> -</figure> -</td> -<td><p>282</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>RightOfWayNextIntersection</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/RightOfWayNextIntersection_301.svg"><img alt="../../_images/RightOfWayNextIntersection_301.svg" src="../../_images/RightOfWayNextIntersection_301.svg" width="400" /></a> -</figure> -</td> -<td><p>301</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>RightOfWayBegin</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/RightOfWayBegin_306.svg"><img alt="../../_images/RightOfWayBegin_306.svg" src="../../_images/RightOfWayBegin_306.svg" width="400" /></a> -</figure> -</td> -<td><p>306</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>RightOfWayEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/RightOfWayEnd_307.svg"><img alt="../../_images/RightOfWayEnd_307.svg" src="../../_images/RightOfWayEnd_307.svg" width="400" /></a> -</figure> -</td> -<td><p>307</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>TownBegin</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/TownBegin_310.svg"><img alt="../../_images/TownBegin_310.svg" src="../../_images/TownBegin_310.svg" width="400" /></a> -</figure> -</td> -<td><p>310</p></td> -<td></td> -<td><p>This sign contains a text describing the name of the town</p></td> -</tr> -<tr class="row-even"><td><p>TownEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/TownEnd_311.svg"><img alt="../../_images/TownEnd_311.svg" src="../../_images/TownEnd_311.svg" width="400" /></a> -</figure> -</td> -<td><p>311</p></td> -<td></td> -<td><p>This sign contains a text describing the name of the town</p></td> -</tr> -<tr class="row-odd"><td><p>TrafficCalmedDistrictBegin</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/TrafficCalmedDistrictBegin_325.1.svg"><img alt="../../_images/TrafficCalmedDistrictBegin_325.1.svg" src="../../_images/TrafficCalmedDistrictBegin_325.1.svg" width="400" /></a> -</figure> -</td> -<td><p>325.1</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>TrafficCalmedDistrictEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/TrafficCalmedDistrictEnd_325.2.svg"><img alt="../../_images/TrafficCalmedDistrictEnd_325.2.svg" src="../../_images/TrafficCalmedDistrictEnd_325.2.svg" width="400" /></a> -</figure> -</td> -<td><p>325.2</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>HighWayBegin</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/HighWayBegin_330.1.svg"><img alt="../../_images/HighWayBegin_330.1.svg" src="../../_images/HighWayBegin_330.1.svg" width="400" /></a> -</figure> -</td> -<td><p>330.1</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>HighWayEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/HighWayEnd_330.2.svg"><img alt="../../_images/HighWayEnd_330.2.svg" src="../../_images/HighWayEnd_330.2.svg" width="400" /></a> -</figure> -</td> -<td><p>330.2</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>HighWayExit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/HighWayExit_333.svg"><img alt="../../_images/HighWayExit_333.svg" src="../../_images/HighWayExit_333.svg" width="400" /></a> -</figure> -</td> -<td><p>333</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>AnnounceHighwayExit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/AnnounceHighwayExit_448.svg"><img alt="../../_images/AnnounceHighwayExit_448.svg" src="../../_images/AnnounceHighwayExit_448.svg" width="400" /></a> -</figure> -</td> -<td><p>448</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>PreannounceHighwayExitDirections</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/AnnounceHighwayExit_449.svg"><img alt="../../_images/AnnounceHighwayExit_449.svg" src="../../_images/AnnounceHighwayExit_449.svg" width="400" /></a> -</figure> -</td> -<td><p>449</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>HighwayExitPole</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/HighwayExitPole_450-50.svg"><img alt="../../_images/HighwayExitPole_450-50.svg" src="../../_images/HighwayExitPole_450-50.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/HighwayExitPole_450-51.svg"><img alt="../../_images/HighwayExitPole_450-51.svg" src="../../_images/HighwayExitPole_450-51.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/HighwayExitPole_450-52.svg"><img alt="../../_images/HighwayExitPole_450-52.svg" src="../../_images/HighwayExitPole_450-52.svg" width="400" /></a> -</figure> -</td> -<td><p>450</p></td> -<td><p>50/51/52</p></td> -<td><p>The subtype describes the distance to the highway exit in m. -50 = 100m, 51 = 200m, 52 = 300m</p></td> -</tr> -<tr class="row-odd"><td><p>AnnounceRightLaneEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/AnnounceRightLaneEnd_531-10.svg"><img alt="../../_images/AnnounceRightLaneEnd_531-10.svg" src="../../_images/AnnounceRightLaneEnd_531-10.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/AnnounceRightLaneEnd_531-11.svg"><img alt="../../_images/AnnounceRightLaneEnd_531-11.svg" src="../../_images/AnnounceRightLaneEnd_531-11.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/AnnounceRightLaneEnd_531-12.svg"><img alt="../../_images/AnnounceRightLaneEnd_531-12.svg" src="../../_images/AnnounceRightLaneEnd_531-12.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/AnnounceRightLaneEnd_531-13.svg"><img alt="../../_images/AnnounceRightLaneEnd_531-13.svg" src="../../_images/AnnounceRightLaneEnd_531-13.svg" width="400" /></a> -</figure> -</td> -<td><p>531</p></td> -<td><p>10/11/12/13</p></td> -<td><p>The subtype describes the number of continuing lanes after the right lane ends. -10 = 1 lane, 11 = 2 lanes, 12 = 3 lanes, 13 = 4 lanes</p></td> -</tr> -<tr class="row-even"><td><p>AnnounceLeftLaneEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/AnnounceLeftLaneEnd_531-20.svg"><img alt="../../_images/AnnounceLeftLaneEnd_531-20.svg" src="../../_images/AnnounceLeftLaneEnd_531-20.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/AnnounceLeftLaneEnd_531-21.svg"><img alt="../../_images/AnnounceLeftLaneEnd_531-21.svg" src="../../_images/AnnounceLeftLaneEnd_531-21.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/AnnounceLeftLaneEnd_531-22.svg"><img alt="../../_images/AnnounceLeftLaneEnd_531-22.svg" src="../../_images/AnnounceLeftLaneEnd_531-22.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/AnnounceLeftLaneEnd_531-23.svg"><img alt="../../_images/AnnounceLeftLaneEnd_531-23.svg" src="../../_images/AnnounceLeftLaneEnd_531-23.svg" width="400" /></a> -</figure> -</td> -<td><p>531</p></td> -<td><p>20/21/22/23</p></td> -<td><p>The subtype describes the number of continuing lanes after the left lane ends. -10 = 1 lane, 11 = 2 lanes, 12 = 3 lanes, 13 = 4 lanes</p></td> -</tr> -<tr class="row-odd"><td><p>DistanceIndication</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/DistanceIndication_1004-30.svg"><img alt="../../_images/DistanceIndication_1004-30.svg" src="../../_images/DistanceIndication_1004-30.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/DistanceIndication_1004-31.svg"><img alt="../../_images/DistanceIndication_1004-31.svg" src="../../_images/DistanceIndication_1004-31.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/DistanceIndication_1004-32.svg"><img alt="../../_images/DistanceIndication_1004-32.svg" src="../../_images/DistanceIndication_1004-32.svg" width="400" /></a> -</figure> -</td> -<td><p>1004</p></td> -<td><p>30/31/32</p></td> -<td><p>For subtype 30 the value describes the distance in m. -For subtype 31 the value describes the distance in km. -Subtype 32 has a STOP in 100m.</p></td> -</tr> -</tbody> -</table> -<p>The following road markings are supported for Germany:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>RoadMarking</p></th> -<th class="head"><p>Image</p></th> -<th class="head"><p>StVo Type</p></th> -<th class="head"><p>Subtype</p></th> -<th class="head"><p>Value and Units</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>PedestrianCrossing</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/PedestrianCrossing_293.svg"><img alt="../../_images/PedestrianCrossing_293.svg" src="../../_images/PedestrianCrossing_293.svg" width="400" /></a> -</figure> -</td> -<td><p>293</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>Stop line</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/Stop_line_294.svg"><img alt="../../_images/Stop_line_294.svg" src="../../_images/Stop_line_294.svg" width="400" /></a> -</figure> -</td> -<td><p>294</p></td> -<td></td> -<td></td> -</tr> -</tbody> -</table> -<p>The pedestrian crossing can also be defined in <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> as object with type “crosswalkâ€.</p> -<p>For United States the types are based on the “Manual on Uniform Traffic Control Devices†(see: <a class="reference external" href="https://mutcd.fhwa.dot.gov/pdfs/2009r1r2/pdf_index.htm">https://mutcd.fhwa.dot.gov/pdfs/2009r1r2/pdf_index.htm</a>). -The following traffic signs are supported for United States:</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>TrafficSign</p></th> -<th class="head"><p>Image</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Value and Units</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>HighWayExit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/HighWayExit_E5-1.svg"><img alt="../../_images/HighWayExit_E5-1.svg" src="../../_images/HighWayExit_E5-1.svg" width="400" /></a> -</figure> -</td> -<td><p>E5-1</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>HighWayExit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/HighWayExit_E2-5.svg"><img alt="../../_images/HighWayExit_E2-5.svg" src="../../_images/HighWayExit_E2-5.svg" width="400" /></a> -</figure> -</td> -<td><p>E2-5</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>AnnounceHighwayExit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/AnnounceHighwayExit_E1-2.svg"><img alt="../../_images/AnnounceHighwayExit_E1-2.svg" src="../../_images/AnnounceHighwayExit_E1-2.svg" width="400" /></a> -</figure> -</td> -<td><p>E1-2</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>PreannounceHighwayExit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/PreannounceHighwayExit_E1-2a.svg"><img alt="../../_images/PreannounceHighwayExit_E1-2a.svg" src="../../_images/PreannounceHighwayExit_E1-2a.svg" width="400" /></a> -</figure> -</td> -<td><p>E1-2a</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>Stop</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/Stop_R1-1.svg"><img alt="../../_images/Stop_R1-1.svg" src="../../_images/Stop_R1-1.svg" width="400" /></a> -</figure> -</td> -<td><p>R1-1</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>GiveWay</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/GiveWay_R1-2.svg"><img alt="../../_images/GiveWay_R1-2.svg" src="../../_images/GiveWay_R1-2.svg" width="400" /></a> -</figure> -</td> -<td><p>R1-2</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>MaximumSpeedLimit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/MaximumSpeedLimit_R2-1.svg"><img alt="../../_images/MaximumSpeedLimit_R2-1.svg" src="../../_images/MaximumSpeedLimit_R2-1.svg" width="400" /></a> -</figure> -</td> -<td><p>R2-1</p></td> -<td><p>as defined via the “value†and “unit†attributes</p></td> -</tr> -<tr class="row-odd"><td><p>DoNotPass (OvertakingBan)</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/DoNotPass_R4-1.svg"><img alt="../../_images/DoNotPass_R4-1.svg" src="../../_images/DoNotPass_R4-1.svg" width="400" /></a> -</figure> -</td> -<td><p>R4-1</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>DoNotEnter</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/DoNotEnter_R5-1.svg"><img alt="../../_images/DoNotEnter_R5-1.svg" src="../../_images/DoNotEnter_R5-1.svg" width="400" /></a> -</figure> -</td> -<td><p>R5-1</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>RightLaneEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/RightLaneEnd_W4-2R.svg"><img alt="../../_images/RightLaneEnd_W4-2R.svg" src="../../_images/RightLaneEnd_W4-2R.svg" width="400" /></a> -</figure> -</td> -<td><p>W4-2R</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>LeftLaneEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/LeftLaneEnd_W4-2L.svg"><img alt="../../_images/LeftLaneEnd_W4-2L.svg" src="../../_images/LeftLaneEnd_W4-2L.svg" width="400" /></a> -</figure> -</td> -<td><p>W4-2L</p></td> -<td></td> -</tr> -</tbody> -</table> -<p>For China the types are based on the <a class="reference external" href="https://upload.wikimedia.org/wikipedia/commons/8/8c/China_GB_5768.2-2009.pdf">https://upload.wikimedia.org/wikipedia/commons/8/8c/China_GB_5768.2-2009.pdf</a>. -The following traffic signs are supported for China:</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>TrafficSign</p></th> -<th class="head"><p>Image</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Subtype</p></th> -<th class="head"><p>Value and Units</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>AnnounceRightLaneEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/EndofLaneRight-32a.svg"><img alt="../../_images/EndofLaneRight-32a.svg" src="../../_images/EndofLaneRight-32a.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/EndofLaneRight-32b.svg"><img alt="../../_images/EndofLaneRight-32b.svg" src="../../_images/EndofLaneRight-32b.svg" width="400" /></a> -</figure> -</td> -<td><p>EndofLane-32</p></td> -<td><p>a/b</p></td> -<td><p>The subtype describes the number of continuing lanes after the right lane ends. -a = 2 lanes, b = 3 lanes</p></td> -</tr> -<tr class="row-odd"><td><p>AnnounceLeftLaneEnd</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/EndofLaneLeft-32c.svg"><img alt="../../_images/EndofLaneLeft-32c.svg" src="../../_images/EndofLaneLeft-32c.svg" width="400" /></a> -</figure> -<figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/EndofLaneLeft-32d.svg"><img alt="../../_images/EndofLaneLeft-32d.svg" src="../../_images/EndofLaneLeft-32d.svg" width="400" /></a> -</figure> -</td> -<td><p>EndofLane-32</p></td> -<td><p>c/d</p></td> -<td><p>The subtype describes the number of continuing lanes after the left lane ends. -c = 2 lanes, d = 3 lanes</p></td> -</tr> -<tr class="row-even"><td><p>MaximumSpeedLimit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/MaximumSpeedLimit-38.svg"><img alt="../../_images/MaximumSpeedLimit-38.svg" src="../../_images/MaximumSpeedLimit-38.svg" width="400" /></a> -</figure> -</td> -<td><p>SpeedLimit-38</p></td> -<td></td> -<td><p>as defined via the “value†and “unit†attributes</p></td> -</tr> -<tr class="row-odd"><td><p>EndOfMaximumSpeedLimit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/EndOfMaximumSpeedLimit-39.svg"><img alt="../../_images/EndOfMaximumSpeedLimit-39.svg" src="../../_images/EndOfMaximumSpeedLimit-39.svg" width="400" /></a> -</figure> -</td> -<td><p>EndOfSpeedLimit-39</p></td> -<td></td> -<td><p>as defined via the “value†and “unit†attributes</p></td> -</tr> -<tr class="row-even"><td><p>AnnounceHighwayExit (1km)</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/AnnouceHighwayExit1km-50b.svg"><img alt="../../_images/AnnouceHighwayExit1km-50b.svg" src="../../_images/AnnouceHighwayExit1km-50b.svg" width="400" /></a> -</figure> -</td> -<td><p>AnnounceHighwayExit-50b</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>AnnounceHighwayExit (500m)</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/AnnouceHighwayExit500m-50c.svg"><img alt="../../_images/AnnouceHighwayExit500m-50c.svg" src="../../_images/AnnouceHighwayExit500m-50c.svg" width="400" /></a> -</figure> -</td> -<td><p>AnnounceHighwayExit-50c</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>HighWayExit</p></td> -<td><figure class="align-default"> -<a class="reference internal image-reference" href="../../_images/HighwayExit-50d.svg"><img alt="../../_images/HighwayExit-50d.svg" src="../../_images/HighwayExit-50d.svg" width="400" /></a> -</figure> -</td> -<td><p>HighwayExit-50d</p></td> -<td></td> -<td></td> -</tr> -</tbody> -</table> -<p>The following traffic lights are supported:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>TrafficLight</p></th> -<th class="head"><p>OpenDRIVE Type</p></th> -<th class="head"><p>Subtype</p></th> -<th class="head"><p>Value and Units</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Standard traffic light (red, yellow, green)</p></td> -<td><p>1.000.001</p></td> -<td><p>-</p></td> -<td><p>-</p></td> -</tr> -<tr class="row-odd"><td><p>Left arrows</p></td> -<td><p>1.000.011</p></td> -<td><p>10</p></td> -<td><p>-</p></td> -</tr> -<tr class="row-even"><td><p>Right arrows</p></td> -<td><p>1.000.011</p></td> -<td><p>20</p></td> -<td><p>-</p></td> -</tr> -<tr class="row-odd"><td><p>Upwards arrows</p></td> -<td><p>1.000.011</p></td> -<td><p>30</p></td> -<td><p>-</p></td> -</tr> -<tr class="row-even"><td><p>Left und upwards arrows</p></td> -<td><p>1.000.011</p></td> -<td><p>40</p></td> -<td><p>-</p></td> -</tr> -<tr class="row-odd"><td><p>Right und upwards arrows</p></td> -<td><p>1.000.011</p></td> -<td><p>50</p></td> -<td><p>-</p></td> -</tr> -</tbody> -</table> -<p>These traffic lights are controlled by <a class="reference external" href="https://www.asam.net/standards/detail/openscenario/">OpenSCENARIO</a>.</p> -</section> -<section id="lane-markings"> -<span id="world-lanemarkings"></span><h2>Lane Markings<a class="headerlink" href="#lane-markings" title="Link to this heading">ïƒ</a></h2> -<p>The world also supports lane markings (i.e. printed lines between two lanes) according to the <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> standard. -The following attributes of the “roadMark†tag in the scenery file are stored in the world and can be retrieved by the GetLaneMarkings query: sOffset, type, weight, color. -The weight is converted into a width in meter: 0.15 for standard and 0.3 for bold. Lane markings are also converted to OSI LaneBoundaries. -For the OpenDRIVE type “solid solidâ€, “solid brokenâ€, “broken solidâ€, and “broken broken†two LaneBoundaries are created in OSI with a fixed lateral distance of 0.15m.</p> -</section> -<section id="getobstruction"> -<span id="world-getobstruction"></span><h2>GetObstruction<a class="headerlink" href="#getobstruction" title="Link to this heading">ïƒ</a></h2> -<p>The GetObstruction function calculates the lateral distance an agent must travel in order to align with either the left or right boundary of a target object occupying the same lane.</p> -<p>The calculation adheres to the following process:</p> -<ol class="arabic simple"> -<li><p>Project the agent’s MainLaneLocator along the lane to the nearest and furthest s-coordinate of the target object, capturing the projected points</p></li> -<li><p>Create a straight line from the two captured points</p></li> -<li><p>Calculate the Euclidean distance of each of the target object’s corners to the created line</p></li> -<li><p>Return the left-most and right-most points with respect to the created line</p></li> -</ol> -<p>If the first step fails, because the ego lane does not extend to the object’s position (i.e. it ends prematurely or the objects is outside the ego’s route), then the result is invalid, which is indicated by a separate valid flag.</p> -<figure class="align-default" id="id9"> -<img alt="../../_images/GetObstruction.svg" src="../../_images/GetObstruction.svg" /><figcaption> -<p><span class="caption-text">Example for the calculation of GetObstruction</span><a class="headerlink" href="#id9" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="system_structure_and_parameterization_%28SSP%29.html" class="btn btn-neutral float-left" title="System Structure and Parameterization (SSP)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="../30_testing.html" class="btn btn-neutral float-right" title="EndToEnd Test Framework" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>World_OSI — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="EndToEnd Test Framework" href="../30_testing.html" /> + <link rel="prev" title="System Structure and Parameterization (SSP)" href="system_structure_and_parameterization_%28SSP%29.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="reference internal" href="../20_simulator_advanced.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="agent_components.html">Agent Components</a></li> +<li class="toctree-l2"><a class="reference internal" href="coordinate_systems.html">Coordinate Systems</a></li> +<li class="toctree-l2"><a class="reference internal" href="event_detector.html">EventDetector</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario_actions.html">Mapping of OpenSCENARIO Actions</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulation.html">Simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="spawner_features.html">Spawner Features</a></li> +<li class="toctree-l2"><a class="reference internal" href="system_structure_and_parameterization_%28SSP%29.html">System Structure and Parameterization (SSP)</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">World_OSI</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#sampling-of-world-geometries">Sampling of World Geometries</a></li> +<li class="toctree-l3"><a class="reference internal" href="#localization">Localization</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#basics">Basics</a></li> +<li class="toctree-l4"><a class="reference internal" href="#localization-sequence">Localization Sequence</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#traffic-signs-road-markings-and-trafficlights">Traffic Signs, Road Markings and TrafficLights</a></li> +<li class="toctree-l3"><a class="reference internal" href="#lane-markings">Lane Markings</a></li> +<li class="toctree-l3"><a class="reference internal" href="#getobstruction">GetObstruction</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../20_simulator_advanced.html">Simulator</a></li> + <li class="breadcrumb-item active">World_OSI</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/advanced_topics/simulator/world_osi.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="world-osi"> +<span id="id1"></span><h1>World_OSI<a class="headerlink" href="#world-osi" title="Link to this heading">ïƒ</a></h1> +<section id="sampling-of-world-geometries"> +<span id="world-sampling"></span><h2>Sampling of World Geometries<a class="headerlink" href="#sampling-of-world-geometries" title="Link to this heading">ïƒ</a></h2> +<p>Roads are described following the <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> specification. +There the geometry of a road is defined algebraically as lines, clothoids and by means of cubic polynomials, whereby primarily only one reference line is defined. +The lanes can be understood as a stack of parallel lanes, which are given by the width and the offset, now in relation to this reference line, which acts as the underlying coordinate system (‘s/t’ road coordinates with s along the road). +Here, too, width and offset are defined algebraically, which means that almost any boundary lines can be defined.</p> +<p>When the world is initialized, these boundary definitions (i.e. algebraic geometries) are converted into piecewise linear elements, which is called sampling. +The road is scanned at a constant interval along ‘s’, which leads to four-sided (quadrangular) sections of the lanes at common ‘s’ coordinates, so-called lane elements (see LaneElement). +The scanning is carried out at a scanning rate of 10 centimeters with the aim of achieving a total scanning error of less than 5 centimeters, as required by the representation used internally (c.f. <a class="reference external" href="https://github.com/OpenSimulationInterface">open simulation interface</a>). +Note that this error is only guaranteed if geometries do not exhibit extreme curvatures, i.e. a deviation of more than 5 cm within two sampling points (10 cm along s). +The scanned points define so-called joints, which contain all scanned points at an ‘s’ coordinate across all lane boundaries of the given road. +The number of these joints is reduced by a <a class="reference external" href="https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm">Ramer-Douglas-Peucker algorithm</a>, which ensures that the maximum lateral error of each individual point within a joint is less than 5 cm compared to the originally scanned points. +Note that (a) the boundary points of geometries are always retained and (b) additional points for lane marking transitions are also retained to ensure the maximum accuracy of these edge cases. +The lane elements are generated with two successive connections, which are ultimately used in the localization at runtime (see <a class="reference internal" href="#world-localization"><span class="std std-ref">Localization</span></a>).</p> +<p>Internally, each lane element receives a constant direction, which is defined by the direction of the vector spanned between the centers of the corresponding connections. +Each joint also holds the corresponding curvature of the road, so that the curvature can be interpolated linearly within a lane element along the ‘s’ coordinate.</p> +</section> +<section id="localization"> +<span id="world-localization"></span><h2>Localization<a class="headerlink" href="#localization" title="Link to this heading">ïƒ</a></h2> +<p>Generally, the position of an agent is stored with respect to <a class="reference internal" href="coordinate_systems.html#coordinatesystems-world"><span class="std std-ref">world coordinates (x,y)</span></a>. +As queries on the world operates in <a class="reference internal" href="coordinate_systems.html#coordinatesystems-road"><span class="std std-ref">road coordinates (s,t)</span></a>, the position of the agent needs to be transformed.</p> +<p>This section describes the translation of coordinates (x,y) of an agent into RoadCoordinate (s,t), whereas the notion of (s,t) comes from the <cite>OpenDRIVE</cite> _ standard.</p> +<section id="basics"> +<h3>Basics<a class="headerlink" href="#basics" title="Link to this heading">ïƒ</a></h3> +<p>The following image depics the basic principes of the localization which is rooted on the specifics of the OSI World Layer (aka OWL).</p> +<figure class="align-default" id="id2"> +<img alt="../../_images/LocalizationBasics.svg" src="../../_images/LocalizationBasics.svg" /><figcaption> +<p><span class="caption-text">Localization Basics</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>Given is a point P in cartesian coordinates (x/y). +The task is to assign the point to a lane, defined by a general road geometry and calculate the transformed Point P’ in road coordinates (s/t).</p> +<p>Road geometry (based on <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a>):</p> +<blockquote> +<div><ul class="simple"> +<li><p>A road consists of several sections</p></li> +<li><p>Each section consists of several lanes</p></li> +<li><p>Within a section, the number of lanes is constant</p></li> +<li><p>Lanes can have one predecessor and one successor</p></li> +<li><p>The road follows a reference line, which is the reference for the <em>s</em>-coordinate. +The <em>t</em>-coordinate is perpendicular to this line.</p></li> +</ul> +</div></blockquote> +<p>OWL specifics:</p> +<blockquote> +<div><ul class="simple"> +<li><p>All lanes are sampled, generating a stream of generic quadrilaterals (LaneGeometryElements).</p></li> +<li><p>Within a section, the number of quads per lane is equal, and all lanes have the same length in s.</p></li> +<li><p>This is realized by a variable sampling width, determined by a constant sampling width along the longest arc.</p></li> +<li><p>Consequently, points perpendicular to the reference line (<em>t</em>-axis) have the same <em>s</em>-coordinate.</p></li> +</ul> +</div></blockquote> +<p>Note, that the final <em>t</em>-coordinate is calculated with respect to a virtual reference line for each lane. +This means, that points on the center of a lane have <em>t</em>-coordinate of 0.</p> +</section> +<section id="localization-sequence"> +<h3>Localization Sequence<a class="headerlink" href="#localization-sequence" title="Link to this heading">ïƒ</a></h3> +<p>The following outlines the localization process implemented in openPASS, using a specific example of a bus changing lanes on a widening road.</p> +<figure class="align-default" id="id3"> +<img alt="../../_images/localization_with_bus_step0.svg" src="../../_images/localization_with_bus_step0.svg" /><figcaption> +<p><span class="caption-text">Bus changing lanes on a widening road</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>First, as described above LaneGeometryElements are generated for the road, here shown as a simplified red grid:</p> +<figure class="align-default" id="id4"> +<img alt="../../_images/localization_with_bus_step1.svg" src="../../_images/localization_with_bus_step1.svg" /><figcaption> +<p><span class="caption-text">LaneGeometryElements and bounding box of the bus</span><a class="headerlink" href="#id4" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>All geometries are internally managed by an <a class="reference external" href="https://www.boost.org/doc/libs/1_65_0/libs/geometry/doc/html/geometry/reference/spatial_indexes/boost__geometry__index__rtree.html">r-tree</a>, used to check for overlaps between the bounding box of the bus and all stored objects in the tree, making checks for overlap extremely fast. +However, the r-tree comes with the restriction that all stored objects are stored by boxes orthogonal to <code class="docutils literal notranslate"><span class="pre">x</span></code> and <code class="docutils literal notranslate"><span class="pre">y</span></code> (= maximum Cartesian coordinates of the boundary points).</p> +<figure class="align-default" id="id5"> +<img alt="../../_images/localization_with_bus_step2.svg" src="../../_images/localization_with_bus_step2.svg" /><figcaption> +<p><span class="caption-text">r-Tree representation of the Bus and a single LaneGeometryElement</span><a class="headerlink" href="#id5" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<figure class="align-default" id="id6"> +<img alt="../../_images/localization_with_bus_step3.svg" src="../../_images/localization_with_bus_step3.svg" /><figcaption> +<p><span class="caption-text">r-Tree representation of all participating geometries</span><a class="headerlink" href="#id6" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>This introduces additional overlaps, resulting in false positives where the bus is located on segments it does not actually touch.</p> +<figure class="align-default" id="id7"> +<img alt="../../_images/localization_with_bus_step4.svg" src="../../_images/localization_with_bus_step4.svg" /><figcaption> +<p><span class="caption-text">Found overlaps with false positives</span><a class="headerlink" href="#id7" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>This is justified because the subsequent filtering can be carried out quickly since the possible geometries allow a simplified intersection check. +Finally, for each point of a non-empty intersection polygon, the <code class="docutils literal notranslate"><span class="pre">s</span></code> and <code class="docutils literal notranslate"><span class="pre">t</span></code> coordinates are calculated and aggregated with respect to the underlying lane. +For each touched lane, the minimum and maximum <code class="docutils literal notranslate"><span class="pre">s</span></code> coordinate, and the minimum and maximum lane remainder (delta t) is stored.</p> +<figure class="align-default" id="id8"> +<img alt="../../_images/localization_with_bus_step5.svg" src="../../_images/localization_with_bus_step5.svg" /><figcaption> +<p><span class="caption-text">Example for the calculation of s_min, s_max and delta_right</span><a class="headerlink" href="#id8" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>In addition, if the reference point (i.e. the middle of the rear axle) or the mainLaneLocator (i.e. the middle of the agent front) are located within a LaneGeometryElement, <code class="docutils literal notranslate"><span class="pre">s/t/yaw</span></code> is calculated of each point, respectively. +Further aggregation is done with respect to each road by calculating the minimum and maximum <code class="docutils literal notranslate"><span class="pre">s</span></code> for each road the agent intersects with. +For the current route of an agent, the following information is stored: <code class="docutils literal notranslate"><span class="pre">s/t/yaw</span></code> of the reference point and mainLaneLocator on the route (roads along a route are not allowed to intersect), distance from the lane boundary to the left and right for the road(s) along the route, and OpenDRIVE Ids of the lanes on the route that the agent touches. +The results also holds information whether both the reference point and the mainLaneLocator lay on the route. +In the current implementation, these points must be located - otherwise the agent is despawened, as the agent cannot execute distance queries without a relation to its current route.</p> +</section> +</section> +<section id="traffic-signs-road-markings-and-trafficlights"> +<span id="world-trafficsigns"></span><h2>Traffic Signs, Road Markings and TrafficLights<a class="headerlink" href="#traffic-signs-road-markings-and-trafficlights" title="Link to this heading">ïƒ</a></h2> +<p>The world currently supports a variety of traffic signs, road markings and traffic lights. +All of these are defined in <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> as “RoadSignalâ€. +At the moment it can interpret traffic signs and road markings according to the German regulations, US regulations, and China regulations and traffic lights according the the <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> appendix. +Traffic signs can contain optional supplementary traffic signs. Supplementary signs are dependent on a main traffic sign and contain additional information.</p> +<p>For Germany the types are based on the StVO (see: <a class="reference external" href="https://www.bast.de/BASt_2017/DE/Verkehrstechnik/Fachthemen/v1-verkehrszeichen/vz-download.html">https://www.bast.de/BASt_2017/DE/Verkehrstechnik/Fachthemen/v1-verkehrszeichen/vz-download.html</a>). +The following traffic signs are supported for Germany:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>TrafficSign</p></th> +<th class="head"><p>Image</p></th> +<th class="head"><p>StVo Type</p></th> +<th class="head"><p>Subtype</p></th> +<th class="head"><p>Value and Units</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>GiveWay</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/GiveWay_205.svg"><img alt="../../_images/GiveWay_205.svg" src="../../_images/GiveWay_205.svg" width="400" /></a> +</figure> +</td> +<td><p>205</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>Stop</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/Stop_206.svg"><img alt="../../_images/Stop_206.svg" src="../../_images/Stop_206.svg" width="400" /></a> +</figure> +</td> +<td><p>206</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>DoNotEnter</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/DoNotEnter_267.svg"><img alt="../../_images/DoNotEnter_267.svg" src="../../_images/DoNotEnter_267.svg" width="400" /></a> +</figure> +</td> +<td><p>267</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>EnvironmentalZoneBegin</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/EnvironmentalZoneBegin_270.1.svg"><img alt="../../_images/EnvironmentalZoneBegin_270.1.svg" src="../../_images/EnvironmentalZoneBegin_270.1.svg" width="400" /></a> +</figure> +</td> +<td><p>270.1</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>EnvironmentalZoneEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/EnvironmentalZoneEnd_270.2.svg"><img alt="../../_images/EnvironmentalZoneEnd_270.2.svg" src="../../_images/EnvironmentalZoneEnd_270.2.svg" width="400" /></a> +</figure> +</td> +<td><p>270.2</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>MaximumSpeedLimit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/MaximumSpeedLimit_274-5.svg"><img alt="../../_images/MaximumSpeedLimit_274-5.svg" src="../../_images/MaximumSpeedLimit_274-5.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/MaximumSpeedLimit_274-130.svg"><img alt="../../_images/MaximumSpeedLimit_274-130.svg" src="../../_images/MaximumSpeedLimit_274-130.svg" width="400" /></a> +</figure> +</td> +<td><p>274</p></td> +<td><p>X</p></td> +<td><p>The subtype “X†is used to define the speedlimit in km/h. +Afterwards the world converts it to m/s.</p></td> +</tr> +<tr class="row-even"><td><p>SpeedLimitZoneBegin</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/SpeedLimitZoneBegin_274.1.svg"><img alt="../../_images/SpeedLimitZoneBegin_274.1.svg" src="../../_images/SpeedLimitZoneBegin_274.1.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/SpeedLimitZoneBegin_274.1-20.svg"><img alt="../../_images/SpeedLimitZoneBegin_274.1-20.svg" src="../../_images/SpeedLimitZoneBegin_274.1-20.svg" width="400" /></a> +</figure> +</td> +<td><p>274.1</p></td> +<td><p>-/20</p></td> +<td><p>The subtype is used to define the speedlimit in km/h. +Afterwards the world converts it to m/s. +No subtype = 30km/h, 20 = 20km/h</p></td> +</tr> +<tr class="row-odd"><td><p>SpeedLimitZoneEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/SpeedLimitZoneEnd_274.2.svg"><img alt="../../_images/SpeedLimitZoneEnd_274.2.svg" src="../../_images/SpeedLimitZoneEnd_274.2.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/SpeedLimitZoneEnd_274.2-20.svg"><img alt="../../_images/SpeedLimitZoneEnd_274.2-20.svg" src="../../_images/SpeedLimitZoneEnd_274.2-20.svg" width="400" /></a> +</figure> +</td> +<td><p>274.2</p></td> +<td><p>-/20</p></td> +<td><p>The subtype is used to define the speedlimit in km/h. +Afterwards the world converts it to m/s. +No subtype = 30km/h, 20 = 20km/h</p></td> +</tr> +<tr class="row-even"><td><p>MinimumSpeedLimit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/MinimumSpeedLimit_275.svg"><img alt="../../_images/MinimumSpeedLimit_275.svg" src="../../_images/MinimumSpeedLimit_275.svg" width="400" /></a> +</figure> +</td> +<td><p>275</p></td> +<td><p>X</p></td> +<td><p>The subtype is used to define the speedlimit in km/h. +Afterwards the world converts it to m/s.</p></td> +</tr> +<tr class="row-odd"><td><p>OvertakingBanBegin</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/OvertakingBanBegin_276.svg"><img alt="../../_images/OvertakingBanBegin_276.svg" src="../../_images/OvertakingBanBegin_276.svg" width="400" /></a> +</figure> +</td> +<td><p>276</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>OvertakingBanTrucksBegin</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/OvertakingBanTrucksBegin_277.svg"><img alt="../../_images/OvertakingBanTrucksBegin_277.svg" src="../../_images/OvertakingBanTrucksBegin_277.svg" width="400" /></a> +</figure> +</td> +<td><p>277</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>EndOfMaximumSpeedLimit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/EndOfMaximumSpeedLimit_278-5.svg"><img alt="../../_images/EndOfMaximumSpeedLimit_278-5.svg" src="../../_images/EndOfMaximumSpeedLimit_278-5.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/EndOfMaximumSpeedLimit_278-130.svg"><img alt="../../_images/EndOfMaximumSpeedLimit_278-130.svg" src="../../_images/EndOfMaximumSpeedLimit_278-130.svg" width="400" /></a> +</figure> +</td> +<td><p>278</p></td> +<td><p>X</p></td> +<td><p>The subtype “X†is used to define the speedlimit in km/h. +Afterwards the world converts it to m/s.</p></td> +</tr> +<tr class="row-even"><td><p>EndOfMinimumSpeedLimit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/EndOfMinimumSpeedLimit_279.svg"><img alt="../../_images/EndOfMinimumSpeedLimit_279.svg" src="../../_images/EndOfMinimumSpeedLimit_279.svg" width="400" /></a> +</figure> +</td> +<td><p>279</p></td> +<td><p>X</p></td> +<td><p>The subtype “X†is used to define the speedlimit in km/h. +Afterwards the world converts it to m/s.</p></td> +</tr> +<tr class="row-odd"><td><p>OvertakingBanEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/OvertakingBanEnd_280.svg"><img alt="../../_images/OvertakingBanEnd_280.svg" src="../../_images/OvertakingBanEnd_280.svg" width="400" /></a> +</figure> +</td> +<td><p>280</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>OvertakingBanTrucksEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/OvertakingBanTrucksEnd_281.svg"><img alt="../../_images/OvertakingBanTrucksEnd_281.svg" src="../../_images/OvertakingBanTrucksEnd_281.svg" width="400" /></a> +</figure> +</td> +<td><p>281</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>EndOffAllSpeedLimitsAndOvertakingRestrictions</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/EndOffAllSpeedLimitsAndOvertakingRestrictions_282.svg"><img alt="../../_images/EndOffAllSpeedLimitsAndOvertakingRestrictions_282.svg" src="../../_images/EndOffAllSpeedLimitsAndOvertakingRestrictions_282.svg" width="400" /></a> +</figure> +</td> +<td><p>282</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>RightOfWayNextIntersection</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/RightOfWayNextIntersection_301.svg"><img alt="../../_images/RightOfWayNextIntersection_301.svg" src="../../_images/RightOfWayNextIntersection_301.svg" width="400" /></a> +</figure> +</td> +<td><p>301</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>RightOfWayBegin</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/RightOfWayBegin_306.svg"><img alt="../../_images/RightOfWayBegin_306.svg" src="../../_images/RightOfWayBegin_306.svg" width="400" /></a> +</figure> +</td> +<td><p>306</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>RightOfWayEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/RightOfWayEnd_307.svg"><img alt="../../_images/RightOfWayEnd_307.svg" src="../../_images/RightOfWayEnd_307.svg" width="400" /></a> +</figure> +</td> +<td><p>307</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>TownBegin</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/TownBegin_310.svg"><img alt="../../_images/TownBegin_310.svg" src="../../_images/TownBegin_310.svg" width="400" /></a> +</figure> +</td> +<td><p>310</p></td> +<td></td> +<td><p>This sign contains a text describing the name of the town</p></td> +</tr> +<tr class="row-even"><td><p>TownEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/TownEnd_311.svg"><img alt="../../_images/TownEnd_311.svg" src="../../_images/TownEnd_311.svg" width="400" /></a> +</figure> +</td> +<td><p>311</p></td> +<td></td> +<td><p>This sign contains a text describing the name of the town</p></td> +</tr> +<tr class="row-odd"><td><p>TrafficCalmedDistrictBegin</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/TrafficCalmedDistrictBegin_325.1.svg"><img alt="../../_images/TrafficCalmedDistrictBegin_325.1.svg" src="../../_images/TrafficCalmedDistrictBegin_325.1.svg" width="400" /></a> +</figure> +</td> +<td><p>325.1</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>TrafficCalmedDistrictEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/TrafficCalmedDistrictEnd_325.2.svg"><img alt="../../_images/TrafficCalmedDistrictEnd_325.2.svg" src="../../_images/TrafficCalmedDistrictEnd_325.2.svg" width="400" /></a> +</figure> +</td> +<td><p>325.2</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>HighWayBegin</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/HighWayBegin_330.1.svg"><img alt="../../_images/HighWayBegin_330.1.svg" src="../../_images/HighWayBegin_330.1.svg" width="400" /></a> +</figure> +</td> +<td><p>330.1</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>HighWayEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/HighWayEnd_330.2.svg"><img alt="../../_images/HighWayEnd_330.2.svg" src="../../_images/HighWayEnd_330.2.svg" width="400" /></a> +</figure> +</td> +<td><p>330.2</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>HighWayExit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/HighWayExit_333.svg"><img alt="../../_images/HighWayExit_333.svg" src="../../_images/HighWayExit_333.svg" width="400" /></a> +</figure> +</td> +<td><p>333</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>AnnounceHighwayExit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/AnnounceHighwayExit_448.svg"><img alt="../../_images/AnnounceHighwayExit_448.svg" src="../../_images/AnnounceHighwayExit_448.svg" width="400" /></a> +</figure> +</td> +<td><p>448</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>PreannounceHighwayExitDirections</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/AnnounceHighwayExit_449.svg"><img alt="../../_images/AnnounceHighwayExit_449.svg" src="../../_images/AnnounceHighwayExit_449.svg" width="400" /></a> +</figure> +</td> +<td><p>449</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>HighwayExitPole</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/HighwayExitPole_450-50.svg"><img alt="../../_images/HighwayExitPole_450-50.svg" src="../../_images/HighwayExitPole_450-50.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/HighwayExitPole_450-51.svg"><img alt="../../_images/HighwayExitPole_450-51.svg" src="../../_images/HighwayExitPole_450-51.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/HighwayExitPole_450-52.svg"><img alt="../../_images/HighwayExitPole_450-52.svg" src="../../_images/HighwayExitPole_450-52.svg" width="400" /></a> +</figure> +</td> +<td><p>450</p></td> +<td><p>50/51/52</p></td> +<td><p>The subtype describes the distance to the highway exit in m. +50 = 100m, 51 = 200m, 52 = 300m</p></td> +</tr> +<tr class="row-odd"><td><p>AnnounceRightLaneEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/AnnounceRightLaneEnd_531-10.svg"><img alt="../../_images/AnnounceRightLaneEnd_531-10.svg" src="../../_images/AnnounceRightLaneEnd_531-10.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/AnnounceRightLaneEnd_531-11.svg"><img alt="../../_images/AnnounceRightLaneEnd_531-11.svg" src="../../_images/AnnounceRightLaneEnd_531-11.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/AnnounceRightLaneEnd_531-12.svg"><img alt="../../_images/AnnounceRightLaneEnd_531-12.svg" src="../../_images/AnnounceRightLaneEnd_531-12.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/AnnounceRightLaneEnd_531-13.svg"><img alt="../../_images/AnnounceRightLaneEnd_531-13.svg" src="../../_images/AnnounceRightLaneEnd_531-13.svg" width="400" /></a> +</figure> +</td> +<td><p>531</p></td> +<td><p>10/11/12/13</p></td> +<td><p>The subtype describes the number of continuing lanes after the right lane ends. +10 = 1 lane, 11 = 2 lanes, 12 = 3 lanes, 13 = 4 lanes</p></td> +</tr> +<tr class="row-even"><td><p>AnnounceLeftLaneEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/AnnounceLeftLaneEnd_531-20.svg"><img alt="../../_images/AnnounceLeftLaneEnd_531-20.svg" src="../../_images/AnnounceLeftLaneEnd_531-20.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/AnnounceLeftLaneEnd_531-21.svg"><img alt="../../_images/AnnounceLeftLaneEnd_531-21.svg" src="../../_images/AnnounceLeftLaneEnd_531-21.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/AnnounceLeftLaneEnd_531-22.svg"><img alt="../../_images/AnnounceLeftLaneEnd_531-22.svg" src="../../_images/AnnounceLeftLaneEnd_531-22.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/AnnounceLeftLaneEnd_531-23.svg"><img alt="../../_images/AnnounceLeftLaneEnd_531-23.svg" src="../../_images/AnnounceLeftLaneEnd_531-23.svg" width="400" /></a> +</figure> +</td> +<td><p>531</p></td> +<td><p>20/21/22/23</p></td> +<td><p>The subtype describes the number of continuing lanes after the left lane ends. +10 = 1 lane, 11 = 2 lanes, 12 = 3 lanes, 13 = 4 lanes</p></td> +</tr> +<tr class="row-odd"><td><p>DistanceIndication</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/DistanceIndication_1004-30.svg"><img alt="../../_images/DistanceIndication_1004-30.svg" src="../../_images/DistanceIndication_1004-30.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/DistanceIndication_1004-31.svg"><img alt="../../_images/DistanceIndication_1004-31.svg" src="../../_images/DistanceIndication_1004-31.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/DistanceIndication_1004-32.svg"><img alt="../../_images/DistanceIndication_1004-32.svg" src="../../_images/DistanceIndication_1004-32.svg" width="400" /></a> +</figure> +</td> +<td><p>1004</p></td> +<td><p>30/31/32</p></td> +<td><p>For subtype 30 the value describes the distance in m. +For subtype 31 the value describes the distance in km. +Subtype 32 has a STOP in 100m.</p></td> +</tr> +</tbody> +</table> +<p>The following road markings are supported for Germany:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>RoadMarking</p></th> +<th class="head"><p>Image</p></th> +<th class="head"><p>StVo Type</p></th> +<th class="head"><p>Subtype</p></th> +<th class="head"><p>Value and Units</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>PedestrianCrossing</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/PedestrianCrossing_293.svg"><img alt="../../_images/PedestrianCrossing_293.svg" src="../../_images/PedestrianCrossing_293.svg" width="400" /></a> +</figure> +</td> +<td><p>293</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>Stop line</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/Stop_line_294.svg"><img alt="../../_images/Stop_line_294.svg" src="../../_images/Stop_line_294.svg" width="400" /></a> +</figure> +</td> +<td><p>294</p></td> +<td></td> +<td></td> +</tr> +</tbody> +</table> +<p>The pedestrian crossing can also be defined in <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> as object with type “crosswalkâ€.</p> +<p>For United States the types are based on the “Manual on Uniform Traffic Control Devices†(see: <a class="reference external" href="https://mutcd.fhwa.dot.gov/pdfs/2009r1r2/pdf_index.htm">https://mutcd.fhwa.dot.gov/pdfs/2009r1r2/pdf_index.htm</a>). +The following traffic signs are supported for United States:</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>TrafficSign</p></th> +<th class="head"><p>Image</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Value and Units</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>HighWayExit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/HighWayExit_E5-1.svg"><img alt="../../_images/HighWayExit_E5-1.svg" src="../../_images/HighWayExit_E5-1.svg" width="400" /></a> +</figure> +</td> +<td><p>E5-1</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>HighWayExit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/HighWayExit_E2-5.svg"><img alt="../../_images/HighWayExit_E2-5.svg" src="../../_images/HighWayExit_E2-5.svg" width="400" /></a> +</figure> +</td> +<td><p>E2-5</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>AnnounceHighwayExit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/AnnounceHighwayExit_E1-2.svg"><img alt="../../_images/AnnounceHighwayExit_E1-2.svg" src="../../_images/AnnounceHighwayExit_E1-2.svg" width="400" /></a> +</figure> +</td> +<td><p>E1-2</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>PreannounceHighwayExit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/PreannounceHighwayExit_E1-2a.svg"><img alt="../../_images/PreannounceHighwayExit_E1-2a.svg" src="../../_images/PreannounceHighwayExit_E1-2a.svg" width="400" /></a> +</figure> +</td> +<td><p>E1-2a</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>Stop</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/Stop_R1-1.svg"><img alt="../../_images/Stop_R1-1.svg" src="../../_images/Stop_R1-1.svg" width="400" /></a> +</figure> +</td> +<td><p>R1-1</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>GiveWay</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/GiveWay_R1-2.svg"><img alt="../../_images/GiveWay_R1-2.svg" src="../../_images/GiveWay_R1-2.svg" width="400" /></a> +</figure> +</td> +<td><p>R1-2</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>MaximumSpeedLimit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/MaximumSpeedLimit_R2-1.svg"><img alt="../../_images/MaximumSpeedLimit_R2-1.svg" src="../../_images/MaximumSpeedLimit_R2-1.svg" width="400" /></a> +</figure> +</td> +<td><p>R2-1</p></td> +<td><p>as defined via the “value†and “unit†attributes</p></td> +</tr> +<tr class="row-odd"><td><p>DoNotPass (OvertakingBan)</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/DoNotPass_R4-1.svg"><img alt="../../_images/DoNotPass_R4-1.svg" src="../../_images/DoNotPass_R4-1.svg" width="400" /></a> +</figure> +</td> +<td><p>R4-1</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>DoNotEnter</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/DoNotEnter_R5-1.svg"><img alt="../../_images/DoNotEnter_R5-1.svg" src="../../_images/DoNotEnter_R5-1.svg" width="400" /></a> +</figure> +</td> +<td><p>R5-1</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>RightLaneEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/RightLaneEnd_W4-2R.svg"><img alt="../../_images/RightLaneEnd_W4-2R.svg" src="../../_images/RightLaneEnd_W4-2R.svg" width="400" /></a> +</figure> +</td> +<td><p>W4-2R</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>LeftLaneEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/LeftLaneEnd_W4-2L.svg"><img alt="../../_images/LeftLaneEnd_W4-2L.svg" src="../../_images/LeftLaneEnd_W4-2L.svg" width="400" /></a> +</figure> +</td> +<td><p>W4-2L</p></td> +<td></td> +</tr> +</tbody> +</table> +<p>For China the types are based on the <a class="reference external" href="https://upload.wikimedia.org/wikipedia/commons/8/8c/China_GB_5768.2-2009.pdf">https://upload.wikimedia.org/wikipedia/commons/8/8c/China_GB_5768.2-2009.pdf</a>. +The following traffic signs are supported for China:</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>TrafficSign</p></th> +<th class="head"><p>Image</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Subtype</p></th> +<th class="head"><p>Value and Units</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>AnnounceRightLaneEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/EndofLaneRight-32a.svg"><img alt="../../_images/EndofLaneRight-32a.svg" src="../../_images/EndofLaneRight-32a.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/EndofLaneRight-32b.svg"><img alt="../../_images/EndofLaneRight-32b.svg" src="../../_images/EndofLaneRight-32b.svg" width="400" /></a> +</figure> +</td> +<td><p>EndofLane-32</p></td> +<td><p>a/b</p></td> +<td><p>The subtype describes the number of continuing lanes after the right lane ends. +a = 2 lanes, b = 3 lanes</p></td> +</tr> +<tr class="row-odd"><td><p>AnnounceLeftLaneEnd</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/EndofLaneLeft-32c.svg"><img alt="../../_images/EndofLaneLeft-32c.svg" src="../../_images/EndofLaneLeft-32c.svg" width="400" /></a> +</figure> +<figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/EndofLaneLeft-32d.svg"><img alt="../../_images/EndofLaneLeft-32d.svg" src="../../_images/EndofLaneLeft-32d.svg" width="400" /></a> +</figure> +</td> +<td><p>EndofLane-32</p></td> +<td><p>c/d</p></td> +<td><p>The subtype describes the number of continuing lanes after the left lane ends. +c = 2 lanes, d = 3 lanes</p></td> +</tr> +<tr class="row-even"><td><p>MaximumSpeedLimit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/MaximumSpeedLimit-38.svg"><img alt="../../_images/MaximumSpeedLimit-38.svg" src="../../_images/MaximumSpeedLimit-38.svg" width="400" /></a> +</figure> +</td> +<td><p>SpeedLimit-38</p></td> +<td></td> +<td><p>as defined via the “value†and “unit†attributes</p></td> +</tr> +<tr class="row-odd"><td><p>EndOfMaximumSpeedLimit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/EndOfMaximumSpeedLimit-39.svg"><img alt="../../_images/EndOfMaximumSpeedLimit-39.svg" src="../../_images/EndOfMaximumSpeedLimit-39.svg" width="400" /></a> +</figure> +</td> +<td><p>EndOfSpeedLimit-39</p></td> +<td></td> +<td><p>as defined via the “value†and “unit†attributes</p></td> +</tr> +<tr class="row-even"><td><p>AnnounceHighwayExit (1km)</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/AnnouceHighwayExit1km-50b.svg"><img alt="../../_images/AnnouceHighwayExit1km-50b.svg" src="../../_images/AnnouceHighwayExit1km-50b.svg" width="400" /></a> +</figure> +</td> +<td><p>AnnounceHighwayExit-50b</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>AnnounceHighwayExit (500m)</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/AnnouceHighwayExit500m-50c.svg"><img alt="../../_images/AnnouceHighwayExit500m-50c.svg" src="../../_images/AnnouceHighwayExit500m-50c.svg" width="400" /></a> +</figure> +</td> +<td><p>AnnounceHighwayExit-50c</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>HighWayExit</p></td> +<td><figure class="align-default"> +<a class="reference internal image-reference" href="../../_images/HighwayExit-50d.svg"><img alt="../../_images/HighwayExit-50d.svg" src="../../_images/HighwayExit-50d.svg" width="400" /></a> +</figure> +</td> +<td><p>HighwayExit-50d</p></td> +<td></td> +<td></td> +</tr> +</tbody> +</table> +<p>The following traffic lights are supported:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>TrafficLight</p></th> +<th class="head"><p>OpenDRIVE Type</p></th> +<th class="head"><p>Subtype</p></th> +<th class="head"><p>Value and Units</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Standard traffic light (red, yellow, green)</p></td> +<td><p>1.000.001</p></td> +<td><p>-</p></td> +<td><p>-</p></td> +</tr> +<tr class="row-odd"><td><p>Left arrows</p></td> +<td><p>1.000.011</p></td> +<td><p>10</p></td> +<td><p>-</p></td> +</tr> +<tr class="row-even"><td><p>Right arrows</p></td> +<td><p>1.000.011</p></td> +<td><p>20</p></td> +<td><p>-</p></td> +</tr> +<tr class="row-odd"><td><p>Upwards arrows</p></td> +<td><p>1.000.011</p></td> +<td><p>30</p></td> +<td><p>-</p></td> +</tr> +<tr class="row-even"><td><p>Left und upwards arrows</p></td> +<td><p>1.000.011</p></td> +<td><p>40</p></td> +<td><p>-</p></td> +</tr> +<tr class="row-odd"><td><p>Right und upwards arrows</p></td> +<td><p>1.000.011</p></td> +<td><p>50</p></td> +<td><p>-</p></td> +</tr> +</tbody> +</table> +<p>These traffic lights are controlled by <a class="reference external" href="https://www.asam.net/standards/detail/openscenario/">OpenSCENARIO</a>.</p> +</section> +<section id="lane-markings"> +<span id="world-lanemarkings"></span><h2>Lane Markings<a class="headerlink" href="#lane-markings" title="Link to this heading">ïƒ</a></h2> +<p>The world also supports lane markings (i.e. printed lines between two lanes) according to the <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> standard. +The following attributes of the “roadMark†tag in the scenery file are stored in the world and can be retrieved by the GetLaneMarkings query: sOffset, type, weight, color. +The weight is converted into a width in meter: 0.15 for standard and 0.3 for bold. Lane markings are also converted to OSI LaneBoundaries. +For the OpenDRIVE type “solid solidâ€, “solid brokenâ€, “broken solidâ€, and “broken broken†two LaneBoundaries are created in OSI with a fixed lateral distance of 0.15m.</p> +</section> +<section id="getobstruction"> +<span id="world-getobstruction"></span><h2>GetObstruction<a class="headerlink" href="#getobstruction" title="Link to this heading">ïƒ</a></h2> +<p>The GetObstruction function calculates the lateral distance an agent must travel in order to align with either the left or right boundary of a target object occupying the same lane.</p> +<p>The calculation adheres to the following process:</p> +<ol class="arabic simple"> +<li><p>Project the agent’s MainLaneLocator along the lane to the nearest and furthest s-coordinate of the target object, capturing the projected points</p></li> +<li><p>Create a straight line from the two captured points</p></li> +<li><p>Calculate the Euclidean distance of each of the target object’s corners to the created line</p></li> +<li><p>Return the left-most and right-most points with respect to the created line</p></li> +</ol> +<p>If the first step fails, because the ego lane does not extend to the object’s position (i.e. it ends prematurely or the objects is outside the ego’s route), then the result is invalid, which is indicated by a separate valid flag.</p> +<figure class="align-default" id="id9"> +<img alt="../../_images/GetObstruction.svg" src="../../_images/GetObstruction.svg" /><figcaption> +<p><span class="caption-text">Example for the calculation of GetObstruction</span><a class="headerlink" href="#id9" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="system_structure_and_parameterization_%28SSP%29.html" class="btn btn-neutral float-left" title="System Structure and Parameterization (SSP)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../30_testing.html" class="btn btn-neutral float-right" title="EndToEnd Test Framework" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/developer_information/10_ide_support.html b/content/html/developer_information/10_ide_support.html index 49a36acb4632146853957e35ab6abced1b632bbe..10d98d115a42296b8a0112d23ab997302c9546b2 100644 --- a/content/html/developer_information/10_ide_support.html +++ b/content/html/developer_information/10_ide_support.html @@ -1,156 +1,157 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>IDE Support — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="Working with Visual Studio Code" href="ide_support/30_vscode.html" /> - <link rel="prev" title="EndToEnd Test Framework" href="../advanced_topics/30_testing.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="current reference internal" href="#">IDE Support</a><ul> -<li class="toctree-l2"><a class="reference internal" href="ide_support/30_vscode.html">Working with Visual Studio Code</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">IDE Support</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/developer_information/10_ide_support.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="ide-support"> -<span id="id1"></span><h1>IDE Support<a class="headerlink" href="#ide-support" title="Link to this heading">ïƒ</a></h1> -<p>Development of <strong>openPASS</strong> is often done in Visual Studio Code. This section provides guides to set up your build environment.</p> -<div class="toctree-wrapper compound"> -<ul> -<li class="toctree-l1"><a class="reference internal" href="ide_support/30_vscode.html">Working with Visual Studio Code</a></li> -</ul> -</div> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../advanced_topics/30_testing.html" class="btn btn-neutral float-left" title="EndToEnd Test Framework" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="ide_support/30_vscode.html" class="btn btn-neutral float-right" title="Working with Visual Studio Code" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>IDE Support — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Working with Visual Studio Code" href="ide_support/30_vscode.html" /> + <link rel="prev" title="EndToEnd Test Framework" href="../advanced_topics/30_testing.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="current reference internal" href="#">IDE Support</a><ul> +<li class="toctree-l2"><a class="reference internal" href="ide_support/30_vscode.html">Working with Visual Studio Code</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">IDE Support</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/developer_information/10_ide_support.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="ide-support"> +<span id="id1"></span><h1>IDE Support<a class="headerlink" href="#ide-support" title="Link to this heading">ïƒ</a></h1> +<p>Development of <strong>openPASS</strong> is often done in Visual Studio Code. This section provides guides to set up your build environment.</p> +<div class="toctree-wrapper compound"> +<ul> +<li class="toctree-l1"><a class="reference internal" href="ide_support/30_vscode.html">Working with Visual Studio Code</a></li> +</ul> +</div> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../advanced_topics/30_testing.html" class="btn btn-neutral float-left" title="EndToEnd Test Framework" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="ide_support/30_vscode.html" class="btn btn-neutral float-right" title="Working with Visual Studio Code" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/developer_information/20_documentation.html b/content/html/developer_information/20_documentation.html index 382e445f134b1cd2471632c2cea2f0f6e68bf5a2..66d0fb677c055952f5c722d667fc67522128eee1 100644 --- a/content/html/developer_information/20_documentation.html +++ b/content/html/developer_information/20_documentation.html @@ -1,313 +1,315 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Documentation Concept — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="Coding Guidelines" href="30_coding_conventions.html" /> - <link rel="prev" title="Working with Visual Studio Code" href="ide_support/30_vscode.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Documentation Concept</a><ul> -<li class="toctree-l2"><a class="reference internal" href="#basic-build-mechanics">Basic Build Mechanics</a></li> -<li class="toctree-l2"><a class="reference internal" href="#openpass-as-submodule">openPASS as Submodule</a></li> -<li class="toctree-l2"><a class="reference internal" href="#docker-image">Docker Image</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Documentation Concept</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/developer_information/20_documentation.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="documentation-concept"> -<span id="documentation"></span><h1>Documentation Concept<a class="headerlink" href="#documentation-concept" title="Link to this heading">ïƒ</a></h1> -<p><strong>openPASS</strong> (Open Source) is developed under the Eclipse Public License and as such private and commercial use is allowed under certain rules (see <a class="reference external" href="https://www.eclipse.org/legal/epl-2.0/">EPL 2.0</a>). -The basic documentation concept facilitates this by providing a way to include custom content which is not necessarily part of the <strong>openPASS</strong> (Open Source) distribution. -This results in certain restrictions on how documentation is to be written. -The following sections describe this restrictions and the process of integrating proprietary documentation into the <strong>openPASS</strong> (Open Source) documentation build.</p> -<section id="basic-build-mechanics"> -<h2>Basic Build Mechanics<a class="headerlink" href="#basic-build-mechanics" title="Link to this heading">ïƒ</a></h2> -<p>The required steps to build the documentation are described in <a class="reference internal" href="../installation_guide/30_install_openpass.html#download-and-install-openpass"><span class="std std-ref">Installing openPASS</span></a>. -Before building, a temporary copy of the original documentation is made. -This temporary copy acts as <em>seam</em> for custom extension, as proprietary content is simply copied into the temporary folder (see below). -This mechanism keeps contents clearly separated during development and allows easy transition from closed to open source if desired.</p> -<p>References to files located outside of the documentation root is used at various places, as this allows to keep documentation as close to the source as possible. -These references normally would become invalid when the documentation source is copied or moved to another location. -Thus, placeholders are used to have a fixed reference to the <strong>openPASS</strong> (Open Source) tree:</p> -<blockquote> -<div><ul class="simple"> -<li><p><em>@</em><em>OP_REL_ROOT</em><em>@</em> - Root of repository (<code class="docutils literal notranslate"><span class="pre">.</span></code>)</p></li> -<li><p><em>@</em><em>OP_REL_SIM</em><em>@</em> - Folder <code class="docutils literal notranslate"><span class="pre">./sim</span></code></p></li> -</ul> -</div></blockquote> -<p>These placeholders must be used when files outside of the documentation root shall be referenced. -Note that this also makes sources more readable.</p> -<p><strong>Example</strong></p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">..</span> <span class="n">literalinclude</span><span class="p">::</span> <span class="nd">@OP_REL_SIM</span><span class="o">@/</span><span class="n">contrib</span><span class="o">/</span><span class="n">examples</span><span class="o">/</span><span class="n">Common</span><span class="o">/</span><span class="n">SceneryConfiguration</span><span class="o">.</span><span class="n">xodr</span> -</pre></div> -</div> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>Generally, when moving or deleting files, make sure to run <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">clean</span></code> prior to <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">doc</span></code> to remove any outdated files from the build directory.</p> -</div> -</section> -<section id="openpass-as-submodule"> -<h2>openPASS as Submodule<a class="headerlink" href="#openpass-as-submodule" title="Link to this heading">ïƒ</a></h2> -<ol class="arabic"> -<li><p><strong>Write the documentation</strong></p> -<p>As custom documentation simply integrates into the <strong>openPASS</strong> (Open Source) documentation, it is also written in the <em>reStructuredText</em> file format. -Thereby files have to reside in a directory structure that is a clone of the open source documentation directory structure (starting from <code class="docutils literal notranslate"><span class="pre">doc/source</span></code>). -During the build your documentation and the open source documentation will both be copied to a temporary directory.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Files existing in both source directories will be overwritten at the destination, with the custom files having higher precedence.</p> -</div> -<p>On the TOC tree level, the <strong>seam</strong> to custom files is made through <em>globbing</em> using wildcards, such as <code class="docutils literal notranslate"><span class="pre">folder/*.rst</span></code>. -Ordering of the files (and to avoid file name collisions) is established through a two digit number prefix and an underscore, e.g. <code class="docutils literal notranslate"><span class="pre">10_quickstart.rst</span></code>. -This allows injection of proprietary documentation at any position in the TOC tree, as the order of headings is determined by the (ASCII) sorting of the filenames.</p> -</li> -<li><p><strong>Referencing files</strong></p> -<p>Sphinx uses some special path format when referencing files from documentation. -All paths are relative to a single documentation root directory, but are specified like absolute paths (i.e. with a leading slash). -Due to the documentation source files being copied to a temporary directory during build, all file references have to be prefixed with a path constant:</p> -<ul class="simple"> -<li><p>When specifying a file reference relative to the <strong>openPASS</strong> (Open Source) repository, the file path has to be prefixed with custom placeholders, such as <em>@</em><em>OP_REL_ROOT</em><em>@</em> (see above).</p></li> -<li><p>When referencing files relative to a custom root, additional placeholders can be introduced in a custom <code class="docutils literal notranslate"><span class="pre">PrepareDocCustom.cmake</span></code> (see next steps).</p></li> -<li><p>These placeholders will then coexist and will be replaced with the corresponding paths during build.</p></li> -</ul> -</li> -<li><p><strong>Add a cmake file for documentation preparation</strong></p> -<p>The file <a class="reference download internal" download="" href="../_downloads/13db75188596730e5b909e7eb9b658b0/PrepareDocCustom.cmake"><code class="xref download docutils literal notranslate"><span class="pre">PrepareDocCustom.cmake</span></code></a> can be used as a template. -Just add the placeholders used in your proprietary documentation.</p> -<p>This diff highlights the important parts in comparison to the original <code class="docutils literal notranslate"><span class="pre">PrepareDoc.cmake</span></code>, used in the open source documentation build:</p> -<div class="highlight-udiff notranslate"><div class="highlight"><pre><span></span><span class="gd">--- C:/Users/genie.openpass/jenkins_agent/workspace/openPASS_simulator_build_v1.1.0/repo/doc/PrepareDoc.cmake</span> -<span class="gi">+++ C:/Users/genie.openpass/jenkins_agent/workspace/openPASS_simulator_build_v1.1.0/build/doc/source/developer_information/_static/custom_doc/PrepareDocCustom.cmake</span> -<span class="gu">@@ -19,6 +19,7 @@</span> -<span class="w"> </span># Currently supported PLACEHOLDERS -<span class="w"> </span># - @OP_REL_ROOT@ => relative path to root of the openpass repository -<span class="w"> </span># - @OP_REL_SIM@ => resolves to @OP_REL_ROOT@/sim -<span class="gi">+# - @CUSTOM_REL_SIM@ => relative path to the "custom" root (.)</span> -<span class="w"> </span> -<span class="w"> </span>macro(copy_documentation source destination) -<span class="w"> </span> message(VERBOSE "Copy ${source} to ${destination}") -<span class="gu">@@ -33,8 +34,9 @@</span> -<span class="w"> </span> string(REGEX REPLACE "(.*)/$" "\\1" target ${target}) -<span class="w"> </span> -<span class="w"> </span> # Placeholder for conf.py: no initial '/' => real relative paths -<span class="gd">- set(OP_REL_ROOT ../${target}) # relative path to repository root</span> -<span class="gi">+ set(OP_REL_ROOT ../${target}/deps/os) # relative path to the openPASS open source code, with prefix '../${target}' pointing to the custom repository root if this file is located at <root>/doc</span> -<span class="w"> </span> set(OP_REL_SIM ${OP_REL_ROOT}/sim) # relative path to simulation root -<span class="gi">+ set(CUSTOM_REL_SIM ../${target}) # relative path to the custom repository root (here, equal to custom sim root)</span> -<span class="w"> </span> -<span class="w"> </span> configure_file(${destination}/source/conf.py -<span class="w"> </span> ${destination}/source/conf.py @ONLY) -<span class="gu">@@ -43,6 +45,7 @@</span> -<span class="w"> </span> # Override old one, because we want to use the same placeholder in both contexts -<span class="w"> </span> set(OP_REL_ROOT /${OP_REL_ROOT}) -<span class="w"> </span> set(OP_REL_SIM /${OP_REL_SIM}) -<span class="gi">+ set(CUSTOM_REL_SIM /${CUSTOM_REL_SIM})</span> -<span class="w"> </span> -<span class="w"> </span> file(GLOB_RECURSE rstFiles LIST_DIRECTORIES false ${destination}/*.rst) -<span class="w"> </span> -</pre></div> -</div> -</li> -<li><p><strong>Add a ``doc`` CMake target to your custom build</strong></p> -<p>To add your custom build target, the following <code class="docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code> snippet can be used as template. -Note the usage of the <code class="docutils literal notranslate"><span class="pre">PrepareDocCustom.cmake</span></code>.</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>################################################################################ -# Copyright (c) 2021 in-tech GmbH -# -# This program and the accompanying materials are made available under the -# terms of the Eclipse Public License 2.0 which is available at -# http://www.eclipse.org/legal/epl-2.0. -# -# SPDX-License-Identifier: EPL-2.0 -################################################################################ - -if(WITH_DOC) - add_custom_target(doc - # Copy documentation and change placeholders - # (see PrepareDoc for more information) - COMMAND ${CMAKE_COMMAND} - -DSRC=${OPENPASS_OS_DIR}/doc/source - -DDST=${CMAKE_BINARY_DIR}/doc - -P ${OPENPASS_OS_DIR}/doc/PrepareDoc.cmake - COMMENT "Copy OS documentation and replace placeholders" - COMMAND ${CMAKE_COMMAND} - -DSRC=${CMAKE_CURRENT_LIST_DIR}/source - -DDST=${CMAKE_BINARY_DIR}/doc -<span class="hll"> -P ${CMAKE_CURRENT_LIST_DIR}/PrepareDocCustom.cmake -</span> COMMENT "Copy custom documentation and replace placeholders (overrides!)" - COMMAND ${SPHINX_EXECUTABLE} # sphinx-build - -M html # generate HTML - ${CMAKE_BINARY_DIR}/doc/source # source path - ${CMAKE_BINARY_DIR}/doc # destination path - -DWITH_API_DOC=${WITH_API_DOC} # turn exhale ON/OFF - COMMENT "Build sphinx documentation" - COMMAND ${CMAKE_COMMAND} - -E cmake_echo_color --green - "The HTML pages are in ${CMAKE_BINARY_DIR}/doc/html.") - - set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES - ${CMAKE_BINARY_DIR}/doc) - - # make HTML doc available on install - install(DIRECTORY ${CMAKE_BINARY_DIR}/doc/html/ - DESTINATION ${CMAKE_INSTALL_PREFIX}/doc) -endif() -</pre></div> -</div> -</li> -<li><p><strong>Provide a config file for Sphinx</strong></p> -<p>Sphinx allows to specify a configuration residing in <code class="docutils literal notranslate"><span class="pre">conf.py</span></code> in the documentation source directory. -Customization is done by providing a customized file here, with the open source version as template (<a class="reference download internal" download="" href="../_downloads/c182e909c0bef397a2a7e7c51c6f7763/conf.py"><code class="xref download docutils literal notranslate"><span class="pre">/../../../repo/doc/source/conf.py</span></code></a>).</p> -</li> -</ol> -</section> -<section id="docker-image"> -<h2>Docker Image<a class="headerlink" href="#docker-image" title="Link to this heading">ïƒ</a></h2> -<p>This documentation provides an overview of the Dockerfile used to build an image containing all the necessary packages required for building <strong>openPASS</strong> (Open Source). The resulting image can be used as a development environment.</p> -<p><strong>Usage</strong></p> -<ol class="arabic"> -<li><p>Clone the <strong>openPASS</strong> (Open Source) project</p></li> -<li><p>At the root level (the folder containing the repo), execute the following command</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">docker</span> <span class="n">build</span> <span class="o">-</span><span class="n">f</span> <span class="o">./</span><span class="n">repo</span><span class="o">/</span><span class="n">utils</span><span class="o">/</span><span class="n">Dockerfile</span> <span class="o">-</span><span class="n">t</span> <span class="o"><</span><span class="n">DockerImageName</span><span class="o">></span> <span class="o">.</span> -</pre></div> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The Dockerfile assumes the name of the repository as “repoâ€. The command and the Dockerfile should be modified accordingly, if different name is used</p> -</div> -</li> -</ol> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="ide_support/30_vscode.html" class="btn btn-neutral float-left" title="Working with Visual Studio Code" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="30_coding_conventions.html" class="btn btn-neutral float-right" title="Coding Guidelines" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Documentation Concept — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Coding Guidelines" href="30_coding_conventions.html" /> + <link rel="prev" title="Working with Visual Studio Code" href="ide_support/30_vscode.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Documentation Concept</a><ul> +<li class="toctree-l2"><a class="reference internal" href="#basic-build-mechanics">Basic Build Mechanics</a></li> +<li class="toctree-l2"><a class="reference internal" href="#openpass-as-submodule">openPASS as Submodule</a></li> +<li class="toctree-l2"><a class="reference internal" href="#docker-image">Docker Image</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Documentation Concept</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/developer_information/20_documentation.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="documentation-concept"> +<span id="documentation"></span><h1>Documentation Concept<a class="headerlink" href="#documentation-concept" title="Link to this heading">ïƒ</a></h1> +<p><strong>openPASS</strong> (Open Source) is developed under the Eclipse Public License and as such private and commercial use is allowed under certain rules (see <a class="reference external" href="https://www.eclipse.org/legal/epl-2.0/">EPL 2.0</a>). +The basic documentation concept facilitates this by providing a way to include custom content which is not necessarily part of the <strong>openPASS</strong> (Open Source) distribution. +This results in certain restrictions on how documentation is to be written. +The following sections describe this restrictions and the process of integrating proprietary documentation into the <strong>openPASS</strong> (Open Source) documentation build.</p> +<section id="basic-build-mechanics"> +<h2>Basic Build Mechanics<a class="headerlink" href="#basic-build-mechanics" title="Link to this heading">ïƒ</a></h2> +<p>The required steps to build the documentation are described in <a class="reference internal" href="../installation_guide/30_install_openpass.html#download-and-install-openpass"><span class="std std-ref">Installing openPASS</span></a>. +Before building, a temporary copy of the original documentation is made. +This temporary copy acts as <em>seam</em> for custom extension, as proprietary content is simply copied into the temporary folder (see below). +This mechanism keeps contents clearly separated during development and allows easy transition from closed to open source if desired.</p> +<p>References to files located outside of the documentation root is used at various places, as this allows to keep documentation as close to the source as possible. +These references normally would become invalid when the documentation source is copied or moved to another location. +Thus, placeholders are used to have a fixed reference to the <strong>openPASS</strong> (Open Source) tree:</p> +<blockquote> +<div><ul class="simple"> +<li><p><em>@</em><em>OP_REL_ROOT</em><em>@</em> - Root of repository (<code class="docutils literal notranslate"><span class="pre">.</span></code>)</p></li> +<li><p><em>@</em><em>OP_REL_SIM</em><em>@</em> - Folder <code class="docutils literal notranslate"><span class="pre">./sim</span></code></p></li> +</ul> +</div></blockquote> +<p>These placeholders must be used when files outside of the documentation root shall be referenced. +Note that this also makes sources more readable.</p> +<p><strong>Example</strong></p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">..</span> <span class="n">literalinclude</span><span class="p">::</span> <span class="nd">@OP_REL_SIM</span><span class="o">@/</span><span class="n">contrib</span><span class="o">/</span><span class="n">examples</span><span class="o">/</span><span class="n">Common</span><span class="o">/</span><span class="n">SceneryConfiguration</span><span class="o">.</span><span class="n">xodr</span> +</pre></div> +</div> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>Generally, when moving or deleting files, make sure to run <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">clean</span></code> prior to <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">doc</span></code> to remove any outdated files from the build directory.</p> +</div> +</section> +<section id="openpass-as-submodule"> +<h2>openPASS as Submodule<a class="headerlink" href="#openpass-as-submodule" title="Link to this heading">ïƒ</a></h2> +<ol class="arabic"> +<li><p><strong>Write the documentation</strong></p> +<p>As custom documentation simply integrates into the <strong>openPASS</strong> (Open Source) documentation, it is also written in the <em>reStructuredText</em> file format. +Thereby files have to reside in a directory structure that is a clone of the open source documentation directory structure (starting from <code class="docutils literal notranslate"><span class="pre">doc/source</span></code>). +During the build your documentation and the open source documentation will both be copied to a temporary directory.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Files existing in both source directories will be overwritten at the destination, with the custom files having higher precedence.</p> +</div> +<p>On the TOC tree level, the <strong>seam</strong> to custom files is made through <em>globbing</em> using wildcards, such as <code class="docutils literal notranslate"><span class="pre">folder/*.rst</span></code>. +Ordering of the files (and to avoid file name collisions) is established through a two digit number prefix and an underscore, e.g. <code class="docutils literal notranslate"><span class="pre">10_quickstart.rst</span></code>. +This allows injection of proprietary documentation at any position in the TOC tree, as the order of headings is determined by the (ASCII) sorting of the filenames.</p> +</li> +<li><p><strong>Referencing files</strong></p> +<p>Sphinx uses some special path format when referencing files from documentation. +All paths are relative to a single documentation root directory, but are specified like absolute paths (i.e. with a leading slash). +Due to the documentation source files being copied to a temporary directory during build, all file references have to be prefixed with a path constant:</p> +<ul class="simple"> +<li><p>When specifying a file reference relative to the <strong>openPASS</strong> (Open Source) repository, the file path has to be prefixed with custom placeholders, such as <em>@</em><em>OP_REL_ROOT</em><em>@</em> (see above).</p></li> +<li><p>When referencing files relative to a custom root, additional placeholders can be introduced in a custom <code class="docutils literal notranslate"><span class="pre">PrepareDocCustom.cmake</span></code> (see next steps).</p></li> +<li><p>These placeholders will then coexist and will be replaced with the corresponding paths during build.</p></li> +</ul> +</li> +<li><p><strong>Add a cmake file for documentation preparation</strong></p> +<p>The file <a class="reference download internal" download="" href="../_downloads/13db75188596730e5b909e7eb9b658b0/PrepareDocCustom.cmake"><code class="xref download docutils literal notranslate"><span class="pre">PrepareDocCustom.cmake</span></code></a> can be used as a template. +Just add the placeholders used in your proprietary documentation.</p> +<p>This diff highlights the important parts in comparison to the original <code class="docutils literal notranslate"><span class="pre">PrepareDoc.cmake</span></code>, used in the open source documentation build:</p> +<div class="highlight-udiff notranslate"><div class="highlight"><pre><span></span><span class="gd">--- /home/jenkins/agent/workspace/openPASS_simulator_build_v1.2.0/repo/doc/PrepareDoc.cmake</span> +<span class="gi">+++ /home/jenkins/agent/workspace/openPASS_simulator_build_v1.2.0/build/doc/source/developer_information/_static/custom_doc/PrepareDocCustom.cmake</span> +<span class="gu">@@ -19,6 +19,7 @@</span> +<span class="w"> </span># Currently supported PLACEHOLDERS +<span class="w"> </span># - @OP_REL_ROOT@ => relative path to root of the openpass repository +<span class="w"> </span># - @OP_REL_SIM@ => resolves to @OP_REL_ROOT@/sim +<span class="gi">+# - @CUSTOM_REL_SIM@ => relative path to the "custom" root (.)</span> +<span class="w"> </span> +<span class="w"> </span>macro(copy_documentation source destination) +<span class="w"> </span> message(VERBOSE "Copy ${source} to ${destination}") +<span class="gu">@@ -33,8 +34,9 @@</span> +<span class="w"> </span> string(REGEX REPLACE "(.*)/$" "\\1" target ${target}) +<span class="w"> </span> +<span class="w"> </span> # Placeholder for conf.py: no initial '/' => real relative paths +<span class="gd">- set(OP_REL_ROOT ../${target}) # relative path to repository root</span> +<span class="gi">+ set(OP_REL_ROOT ../${target}/deps/os) # relative path to the openPASS open source code, with prefix '../${target}' pointing to the custom repository root if this file is located at <root>/doc</span> +<span class="w"> </span> set(OP_REL_SIM ${OP_REL_ROOT}/sim) # relative path to simulation root +<span class="gi">+ set(CUSTOM_REL_SIM ../${target}) # relative path to the custom repository root (here, equal to custom sim root)</span> +<span class="w"> </span> +<span class="w"> </span> configure_file(${destination}/source/conf.py +<span class="w"> </span> ${destination}/source/conf.py @ONLY) +<span class="gu">@@ -43,6 +45,7 @@</span> +<span class="w"> </span> # Override old one, because we want to use the same placeholder in both contexts +<span class="w"> </span> set(OP_REL_ROOT /${OP_REL_ROOT}) +<span class="w"> </span> set(OP_REL_SIM /${OP_REL_SIM}) +<span class="gi">+ set(CUSTOM_REL_SIM /${CUSTOM_REL_SIM})</span> +<span class="w"> </span> +<span class="w"> </span> file(GLOB_RECURSE rstFiles LIST_DIRECTORIES false ${destination}/*.rst) +<span class="w"> </span> +</pre></div> +</div> +</li> +<li><p><strong>Add a ``doc`` CMake target to your custom build</strong></p> +<p>To add your custom build target, the following <code class="docutils literal notranslate"><span class="pre">CMakeLists.txt</span></code> snippet can be used as template. +Note the usage of the <code class="docutils literal notranslate"><span class="pre">PrepareDocCustom.cmake</span></code>.</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>################################################################################ +# Copyright (c) 2021 in-tech GmbH +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License 2.0 which is available at +# http://www.eclipse.org/legal/epl-2.0. +# +# SPDX-License-Identifier: EPL-2.0 +################################################################################ + +if(WITH_DOC) + add_custom_target(doc + # Copy documentation and change placeholders + # (see PrepareDoc for more information) + COMMAND ${CMAKE_COMMAND} + -DSRC=${OPENPASS_OS_DIR}/doc/source + -DDST=${CMAKE_BINARY_DIR}/doc + -P ${OPENPASS_OS_DIR}/doc/PrepareDoc.cmake + COMMENT "Copy OS documentation and replace placeholders" + COMMAND ${CMAKE_COMMAND} + -DSRC=${CMAKE_CURRENT_LIST_DIR}/source + -DDST=${CMAKE_BINARY_DIR}/doc +<span class="hll"> -P ${CMAKE_CURRENT_LIST_DIR}/PrepareDocCustom.cmake +</span> COMMENT "Copy custom documentation and replace placeholders (overrides!)" + COMMAND ${SPHINX_EXECUTABLE} # sphinx-build + -M html # generate HTML + ${CMAKE_BINARY_DIR}/doc/source # source path + ${CMAKE_BINARY_DIR}/doc # destination path + -DWITH_API_DOC=${WITH_API_DOC} # turn exhale ON/OFF + COMMENT "Build sphinx documentation" + COMMAND ${CMAKE_COMMAND} + -E cmake_echo_color --green + "The HTML pages are in ${CMAKE_BINARY_DIR}/doc/html.") + + set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES + ${CMAKE_BINARY_DIR}/doc) + + # make HTML doc available on install + install(DIRECTORY ${CMAKE_BINARY_DIR}/doc/html/ + DESTINATION ${CMAKE_INSTALL_PREFIX}/doc + MESSAGE_NEVER) +endif() +</pre></div> +</div> +</li> +<li><p><strong>Provide a config file for Sphinx</strong></p> +<p>Sphinx allows to specify a configuration residing in <code class="docutils literal notranslate"><span class="pre">conf.py</span></code> in the documentation source directory. +Customization is done by providing a customized file here, with the open source version as template (<a class="reference download internal" download="" href="../_downloads/c182e909c0bef397a2a7e7c51c6f7763/conf.py"><code class="xref download docutils literal notranslate"><span class="pre">/../../../repo/doc/source/conf.py</span></code></a>).</p> +</li> +</ol> +</section> +<section id="docker-image"> +<h2>Docker Image<a class="headerlink" href="#docker-image" title="Link to this heading">ïƒ</a></h2> +<p>This documentation provides an overview of the Dockerfile used to build an image containing all the necessary packages required for building <strong>openPASS</strong> (Open Source). The resulting image can be used as a development environment.</p> +<p><strong>Usage</strong></p> +<ol class="arabic"> +<li><p>Clone the <strong>openPASS</strong> (Open Source) project</p></li> +<li><p>At the root level (the folder containing the repo), execute the following command</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">docker</span> <span class="n">build</span> <span class="o">-</span><span class="n">f</span> <span class="o">./</span><span class="n">repo</span><span class="o">/</span><span class="n">utils</span><span class="o">/</span><span class="n">Dockerfile</span> <span class="o">-</span><span class="n">t</span> <span class="o"><</span><span class="n">DockerImageName</span><span class="o">></span> <span class="o">.</span> +</pre></div> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The Dockerfile assumes the name of the repository as “repoâ€. The command and the Dockerfile should be modified accordingly, if different name is used</p> +</div> +</li> +</ol> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="ide_support/30_vscode.html" class="btn btn-neutral float-left" title="Working with Visual Studio Code" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="30_coding_conventions.html" class="btn btn-neutral float-right" title="Coding Guidelines" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/developer_information/30_coding_conventions.html b/content/html/developer_information/30_coding_conventions.html index bde7421fbc509a762e171422feb142af80816b82..bfcc8f612d746d00086afe673eb3846ccfa9da9c 100644 --- a/content/html/developer_information/30_coding_conventions.html +++ b/content/html/developer_information/30_coding_conventions.html @@ -1,553 +1,555 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Coding Guidelines — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/tabs.js?v=3030b3cb"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="External Dependencies" href="../other_information/10_external_dependencies.html" /> - <link rel="prev" title="Documentation Concept" href="20_documentation.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Coding Guidelines</a><ul> -<li class="toctree-l2"><a class="reference internal" href="#general">General</a></li> -<li class="toctree-l2"><a class="reference internal" href="#naming-conventions">Naming Conventions</a></li> -<li class="toctree-l2"><a class="reference internal" href="#clangformat">ClangFormat</a></li> -<li class="toctree-l2"><a class="reference internal" href="#clangtidy">ClangTidy</a></li> -<li class="toctree-l2"><a class="reference internal" href="#commit-message-guidelines">Commit Message Guidelines</a></li> -<li class="toctree-l2"><a class="reference internal" href="#header-file-inclusion">Header File Inclusion</a></li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Coding Guidelines</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/developer_information/30_coding_conventions.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="coding-guidelines"> -<span id="coding-conventions"></span><h1>Coding Guidelines<a class="headerlink" href="#coding-guidelines" title="Link to this heading">ïƒ</a></h1> -<section id="general"> -<h2>General<a class="headerlink" href="#general" title="Link to this heading">ïƒ</a></h2> -<p><strong>openPASS</strong> (Open Source) is based on modern C++ (currently C++17). For coding guidelines, please refer to <a class="reference external" href="https://github.com/isocpp/CppCoreGuidelines">ISO C++ Core Guidelines</a>.</p> -<p><strong>Headers/Sources</strong></p> -<blockquote> -<div><ul class="simple"> -<li><p>Use <code class="docutils literal notranslate"><span class="pre">*.h</span></code> as file extension for header files</p></li> -<li><p>Use <code class="docutils literal notranslate"><span class="pre">*.cpp</span></code> as file extension for source files</p></li> -</ul> -</div></blockquote> -</section> -<section id="naming-conventions"> -<h2>Naming Conventions<a class="headerlink" href="#naming-conventions" title="Link to this heading">ïƒ</a></h2> -<p>Concise summarized Naming Conventions</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1">#pragma once</span> - -<span class="n">namespace</span> <span class="n">openpass</span><span class="p">::</span><span class="n">component</span><span class="p">::</span><span class="n">algorithm</span> -<span class="p">{</span> - -<span class="o">/*</span> <span class="n">fooBar</span><span class="o">.</span><span class="n">h</span> <span class="o">*/</span> <span class="o">//</span> <span class="n">File</span><span class="p">:</span> <span class="n">lowerCamelCase</span> -<span class="k">class</span> <span class="nc">FooBar</span> <span class="o">//</span> <span class="n">Class</span><span class="p">:</span> <span class="n">UpperCamelCase</span> -<span class="p">{</span> -<span class="n">private</span><span class="p">:</span> - <span class="n">static</span> <span class="n">constexpr</span> <span class="nb">int</span> <span class="n">MAGIC_NUMBER</span> <span class="p">{</span><span class="o">-</span><span class="mi">999</span><span class="p">};</span> <span class="o">//</span> <span class="n">Constants</span><span class="p">:</span> <span class="n">UPPER_CASE</span> - <span class="nb">int</span> <span class="n">myMember</span><span class="p">;</span> <span class="o">//</span> <span class="n">Members</span><span class="p">:</span> <span class="n">lowerCamelCase</span> - <span class="n">FooBar</span><span class="p">();</span> <span class="o">//</span> <span class="n">Ctor</span><span class="p">:</span> <span class="n">UpperCamelCase</span> - -<span class="n">public</span><span class="p">:</span> - <span class="n">void</span> <span class="n">Bar</span><span class="p">();</span> <span class="o">//</span> <span class="n">Methods</span><span class="p">:</span> <span class="n">UpperCamelCase</span> - <span class="n">void</span> <span class="n">BarBar</span><span class="p">(</span><span class="nb">bool</span> <span class="n">flag</span><span class="p">,</span> <span class="nb">int</span> <span class="n">counter</span><span class="p">);</span> <span class="o">//</span> <span class="n">Arguments</span><span class="p">:</span> <span class="n">lowerCamelCase</span> - <span class="n">void</span> <span class="n">YaaBar</span><span class="p">();</span> <span class="o">///</span> <span class="n">Yaa</span> <span class="o">=</span> <span class="n">Yet</span> <span class="n">Another</span> <span class="n">Abbreviation</span> <span class="o">//</span> <span class="n">Abbreviations</span><span class="p">:</span> <span class="n">UpperCamelCase</span> -<span class="p">};</span> - -<span class="p">}</span> -</pre></div> -</div> -<p><strong>Namespaces</strong></p> -<blockquote> -<div><ol class="arabic"> -<li><p>Use lowercase for namespaces</p></li> -<li><p>Use singular form for namespaces where appropriate</p></li> -<li><p>Use base namespace <code class="docutils literal notranslate"><span class="pre">openpass</span></code></p></li> -<li><p>Core uses <code class="docutils literal notranslate"><span class="pre">openpass::core::*</span></code></p></li> -<li><p>Components use <code class="docutils literal notranslate"><span class="pre">openpass::component::*</span></code></p></li> -<li><p>Use the appropriate namespace for the type your component -* <code class="docutils literal notranslate"><span class="pre">openpass::component::algorithm</span></code> -* <code class="docutils literal notranslate"><span class="pre">openpass::component::sensor</span></code> -* <code class="docutils literal notranslate"><span class="pre">openpass::component::dynamics</span></code> -* <code class="docutils literal notranslate"><span class="pre">openpass::component::driver</span></code> -* …</p></li> -<li><p>Code with shared scope (e.g. <code class="docutils literal notranslate"><span class="pre">common</span></code>) namespaces are separated in</p> -<ul class="simple"> -<li><p>For everyone <code class="docutils literal notranslate"><span class="pre">openpass::common</span></code> e.g. <code class="docutils literal notranslate"><span class="pre">openpass::common::XmlParser</span></code></p></li> -<li><p>Common for components <code class="docutils literal notranslate"><span class="pre">openpass::component::common</span></code> e.g. <code class="docutils literal notranslate"><span class="pre">openpass::components::Ports</span></code></p></li> -<li><p>For the core only <code class="docutils literal notranslate"><span class="pre">openpass::core::common</span></code> e.g. <code class="docutils literal notranslate"><span class="pre">openpass::core::common::Parameters</span></code></p></li> -</ul> -</li> -<li><p>Discussion: <code class="docutils literal notranslate"><span class="pre">openpass::type::*</span></code></p> -<p>Example: <code class="docutils literal notranslate"><span class="pre">openpass::type::Vector2D,</span> <span class="pre">openpass::type::OpenDriveId</span></code></p> -</li> -</ol> -</div></blockquote> -<p><strong>Interfaces</strong></p> -<blockquote> -<div><ol class="arabic"> -<li><p>Interfaces should be named descriptively according to the functionality they outline with an <code class="docutils literal notranslate"><span class="pre">UpperCamelCase</span></code> name</p> -<p>Example: Interface for the <strong>world</strong> = <code class="docutils literal notranslate"><span class="pre">class</span> <span class="pre">WorldInterface</span></code></p> -</li> -<li><p>Interfaces are abstract classes, and as such provide pure virtual functions only, withtout any default implementation. For example:</p> -<blockquote> -<div><p><code class="docutils literal notranslate"><span class="pre">virtual</span> <span class="pre">double</span> <span class="pre">GetDistance()</span> <span class="pre">const</span> <span class="pre">=</span> <span class="pre">0;</span></code></p> -</div></blockquote> -</li> -<li><p>Interface methods <strong>do not</strong> exibit default parameters.</p></li> -<li><p>We excessively use <strong>gmock</strong>, so for every interface a fake interface should be provided</p> -<p>Example: <code class="docutils literal notranslate"><span class="pre">class</span> <span class="pre">FakeWorld</span> <span class="pre">:</span> <span class="pre">public</span> <span class="pre">WorldInterface</span> <span class="pre">{...};</span></code></p> -<p>Note: Following <strong>*Roy Osherove*</strong>, we use Fake instead of Mock, whick allows to distinguish Mocks and -Stubs more easily in the code</p> -</li> -</ol> -</div></blockquote> -<p><strong>Classes</strong></p> -<blockquote> -<div><ol class="arabic"> -<li><p>Classes should be named descriptively according to the functionality they implement with an <code class="docutils literal notranslate"><span class="pre">UpperCamelCase</span></code> name</p></li> -<li><p>A Class implementing an Interface should have the Interfaces name (see below), with the Interface portion removed. For example: -.. code-block:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span> <span class="nc">AgentBlueprint</span> <span class="p">:</span> <span class="n">public</span> <span class="n">AgentBlueprintInterface</span> <span class="p">{</span><span class="o">...</span><span class="p">};</span> -</pre></div> -</div> -</li> -</ol> -</div></blockquote> -<p><strong>Methods</strong></p> -<blockquote> -<div><ol class="arabic"> -<li><p>Methods should be descriptively named in <code class="docutils literal notranslate"><span class="pre">UpperCamelCase</span></code></p> -<p>Example: Method for retrieving the time of day should be named <code class="docutils literal notranslate"><span class="pre">GetTimeOfDay()</span></code></p> -</li> -</ol> -</div></blockquote> -<p><strong>Member Variables</strong></p> -<blockquote> -<div><ol class="arabic"> -<li><p>Member variables should be descriptively named in <code class="docutils literal notranslate"><span class="pre">lowerCamelCase</span></code></p></li> -<li><p>Normally, it is sufficient to use the classes name directly.</p> -<p>Example: The member variable containing the AgentNetwork should be named <code class="docutils literal notranslate"><span class="pre">agentNetwork</span></code></p> -</li> -</ol> -</div></blockquote> -<p><strong>Input / Output Signal Naming</strong></p> -<blockquote> -<div><ol class="arabic"> -<li><p>Components use a special form of signal transmission. For easier use, the following abstraction is recommended: -.. code-block:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">std</span><span class="p">::</span><span class="nb">map</span><span class="o"><</span><span class="nb">int</span><span class="p">,</span> <span class="n">ComponentPort</span> <span class="o">*></span> <span class="n">outputPorts</span><span class="p">;</span> -<span class="nb">bool</span> <span class="n">success</span> <span class="o">=</span> <span class="n">outputPorts</span><span class="o">.</span><span class="n">at</span><span class="p">(</span><span class="n">localLinkId</span><span class="p">)</span><span class="o">-></span><span class="n">SetSignalValue</span><span class="p">(</span><span class="n">data</span><span class="p">);</span> -</pre></div> -</div> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">std</span><span class="p">::</span><span class="nb">map</span><span class="o"><</span><span class="nb">int</span><span class="p">,</span> <span class="n">ComponentPort</span> <span class="o">*></span> <span class="n">inputPorts</span><span class="p">;</span> -<span class="nb">bool</span> <span class="n">success</span> <span class="o">=</span> <span class="n">inputPorts</span><span class="o">.</span><span class="n">at</span><span class="p">(</span><span class="n">localLinkId</span><span class="p">)</span><span class="o">-></span><span class="n">GetSignalValue</span><span class="p">(</span><span class="n">data</span><span class="p">);</span> -</pre></div> -</div> -</li> -<li><p>Discussion: Wrap in <code class="docutils literal notranslate"><span class="pre">openpass::components::common::Port</span></code> and further -<code class="docutils literal notranslate"><span class="pre">openpass::components::common::Ports</span></code></p></li> -</ol> -</div></blockquote> -<p><strong>Additional Information</strong></p> -<blockquote> -<div><ol class="arabic simple"> -<li><p>Use <code class="docutils literal notranslate"><span class="pre">UpperCamelCase</span></code> for abbreviations used in files, classes, methods, or variables</p></li> -<li><p>This does not apply if the abbreviation is the entire name or the beginning of the name - in such a case the name is written with the rules for the appropriate type</p> -<ul class="simple"> -<li><p>int ID→int id</p></li> -<li><p>class AgentID→ class AgentId</p></li> -<li><p>ADASDriver.cpp→adasDriver.cpp</p></li> -</ul> -</li> -<li><p>Avoid public class data members. If unavoidable, use <code class="docutils literal notranslate"><span class="pre">lowerCamelCase</span></code></p></li> -<li><p>Enums should be preferably defined as enum class; as such, enum names should be in <code class="docutils literal notranslate"><span class="pre">UpperCamelCase</span></code></p></li> -<li><p>Decorate container by type aliases and use UpperCamelCase. For example:</p></li> -</ol> -<blockquote> -<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">using</span> <span class="n">FooParts</span> <span class="o">=</span> <span class="n">std</span><span class="p">::</span><span class="n">vector</span><span class="o"><</span><span class="n">FooPart</span><span class="o">></span><span class="p">;</span> -</pre></div> -</div> -</div></blockquote> -</div></blockquote> -<p><strong>Avoid</strong></p> -<blockquote> -<div><ol class="arabic simple"> -<li><p>Do <strong>not</strong> use Hungarian notation for variables names (iCounter → counter)</p></li> -<li><p>Do <strong>not</strong> specify the type of the underlying implementation (partMap→ parts)</p></li> -<li><p>Do <strong>not</strong> use magic numbers in the code; explicitly define constants instead</p></li> -<li><p>Do <strong>not</strong> use global variables</p></li> -</ol> -</div></blockquote> -<p><strong>Exceptions</strong></p> -<blockquote> -<div><ol class="arabic"> -<li><p>Autogenerated code does not need to follow the coding conventions</p> -<p>Example:: Signals/Slots (QT): <code class="docutils literal notranslate"><span class="pre">void</span> <span class="pre">on_button_clicked();</span></code></p> -</li> -</ol> -</div></blockquote> -<p><strong>Documentation</strong></p> -<blockquote> -<div><ol class="arabic"> -<li><p>The following should be documented -* Public functions and class methods -* Classes -* File headers -* Constants -* Private functions or methods with more than 3 arguments and/or complex functionality??</p></li> -<li><p>Language</p> -<ul class="simple"> -<li><p>Document “what†it does rather than describing “whyâ€</p></li> -<li><p>Third-person singular verbs should be used to describe what it does</p></li> -</ul> -</li> -<li><p>Use the below methods to comment in source code. The below 2 syntaxes must be placed just above an entity.</p> -<p>Multi line comments</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>//! … comments… -//! … comments… -//! … comments… -</pre></div> -</div> -<p>Single line comments</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">///</span> <span class="n">Comments</span><span class="o">.</span> -</pre></div> -</div> -</li> -<li><p>Use the following structural commands</p> -<table class="docutils align-default"> -<colgroup> -<col style="width: 33.3%" /> -<col style="width: 66.7%" /> -</colgroup> -<thead> -<tr class="row-odd"><th class="head"><p>Syntax</p></th> -<th class="head"><p>Definition</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>@file</p></td> -<td><p>The file name must be present in the file header</p></td> -</tr> -<tr class="row-odd"><td><p>@param[in/out]</p></td> -<td><p>Parameter documentation for functions</p></td> -</tr> -<tr class="row-even"><td><p>@page</p></td> -<td><p>Markdown page name</p></td> -</tr> -</tbody> -</table> -</li> -<li><p>Use the following syntax for parameter description</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nd">@param</span><span class="p">[</span><span class="ow">in</span><span class="o">/</span><span class="n">out</span><span class="p">]</span> <span class="o"><</span><span class="n">variable</span> <span class="n">name</span><span class="o">></span> <span class="o"><</span><span class="n">variable</span> <span class="n">description</span><span class="o">></span> -</pre></div> -</div> -</li> -<li><p>All parameters description should be aligned as shown below to make them more readable.</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nd">@param</span><span class="p">[</span><span class="ow">in</span><span class="p">]</span> <span class="n">shortName</span> <span class="n">Description</span><span class="o">.</span> -<span class="nd">@param</span><span class="p">[</span><span class="ow">in</span><span class="p">]</span> <span class="n">longerName</span> <span class="n">Description</span><span class="o">.</span> -<span class="nd">@param</span><span class="p">[</span><span class="n">out</span><span class="p">]</span> <span class="n">veryLongName</span> <span class="n">Description</span><span class="o">.</span> -</pre></div> -</div> -</li> -<li><p>Example</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>/// @file main.c -#include<stdio.h> - -/// Mathematical constant PI -#define PI 3.1415 - -/// Radius in meters -#define RADIUS_M 7.82 - -//! Calculates the area of the circle. -//! -//! @param[in] radius Radius of the circle -//! @param[out] area Area of the circle -float CalculateArea(float radius) -{ - float area; - area = PI * radius * radius; - return area; -} -</pre></div> -</div> -</li> -<li><p>Do not comment on polymorph methods (virtual base → override), unless there is a severe change</p></li> -</ol> -</div></blockquote> -<p><strong>End Of Line</strong></p> -<blockquote> -<div><ol class="arabic simple"> -<li><p>Native end of line (EOL) should be used in the working directory</p></li> -<li><p>The <code class="docutils literal notranslate"><span class="pre">.gitattributes</span></code> configuration file provides correct EOL handling for <code class="docutils literal notranslate"><span class="pre">git</span></code> related commands and actions</p></li> -<li><p>When editing files</p> -<ul class="simple"> -<li><p>Trim trailing whitespaces</p></li> -<li><p>Single EOL at end of files</p></li> -<li><p>Use spaces for tabs (use tab size according to coding guidelines or existing file contents)</p></li> -</ul> -</li> -</ol> -</div></blockquote> -<p>See <a class="reference internal" href="ide_support/30_vscode.html#vscode-user-settings"><span class="std std-ref">Example VSCode user settings</span></a>.</p> -</section> -<section id="clangformat"> -<h2>ClangFormat<a class="headerlink" href="#clangformat" title="Link to this heading">ïƒ</a></h2> -<p>To ensure consistent and readable code across the project, <strong>ClangFormat</strong> is recommended.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The following guidelines are based on ClangFormat version 15.0.7</p> -</div> -<p><strong>Installing ClangFormat</strong></p> -<p>To install <strong>ClangFormat 15.0.7</strong>, execute the following command depending on the operating system.</p> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Linux (Debian Bookworm or Ubuntu 22.04)</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pacman</span> <span class="o">-</span><span class="n">S</span> <span class="n">mingw</span><span class="o">-</span><span class="n">w64</span><span class="o">-</span><span class="n">x86_64</span><span class="o">-</span><span class="n">clang</span> -</pre></div> -</div> -</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">clang</span><span class="o">-</span><span class="nb">format</span> -</pre></div> -</div> -</div></div> -<p><strong>Configuring ClangFormat</strong></p> -<p>To configure ClangFormat, create a <cite>.clang-format</cite> file in the root directory of your project. Below is the configuration used in <strong>openPASS</strong> (Open Source):</p> -<blockquote> -<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">---</span> -<span class="n">BasedOnStyle</span><span class="p">:</span> <span class="n">Google</span> -<span class="n">AccessModifierOffset</span><span class="p">:</span> <span class="o">-</span><span class="mi">2</span> -<span class="n">AllowShortFunctionsOnASingleLine</span><span class="p">:</span> <span class="n">Inline</span> -<span class="n">AlignOperands</span><span class="p">:</span> <span class="n">AlignAfterOperator</span> -<span class="n">BinPackArguments</span><span class="p">:</span> <span class="n">false</span> -<span class="n">BinPackParameters</span><span class="p">:</span> <span class="n">false</span> -<span class="n">BreakBeforeBraces</span><span class="p">:</span> <span class="n">Allman</span> -<span class="n">BreakBeforeBinaryOperators</span><span class="p">:</span> <span class="n">All</span> -<span class="n">ColumnLimit</span><span class="p">:</span> <span class="mi">120</span> -<span class="n">SpacesInLineCommentPrefix</span><span class="p">:</span> - <span class="n">Minimum</span><span class="p">:</span> <span class="mi">0</span> - <span class="n">Maximum</span><span class="p">:</span> <span class="mi">1</span> -<span class="n">CommentPragmas</span><span class="p">:</span> <span class="s1">'^</span><span class="se">\\</span><span class="s1">.+'</span> -<span class="n">IncludeCategories</span><span class="p">:</span> - <span class="o">-</span> <span class="n">Regex</span><span class="p">:</span> <span class="s1">'^((<|")(gtest|gmock)/)'</span> - <span class="n">Priority</span><span class="p">:</span> <span class="o">-</span><span class="mi">1</span> - <span class="o">-</span> <span class="n">Regex</span><span class="p">:</span> <span class="s1">'^<[^Q]'</span> - <span class="n">Priority</span><span class="p">:</span> <span class="mi">1</span> - <span class="o">-</span> <span class="n">Regex</span><span class="p">:</span> <span class="s1">'^<Q'</span> - <span class="n">Priority</span><span class="p">:</span> <span class="mi">2</span> -</pre></div> -</div> -</div></blockquote> -<p><strong>Running ClangFormat</strong></p> -<p>To format the code using ClangFormat, run the following command in the terminal:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>clang-format<span class="w"> </span>-i<span class="w"> </span><span class="o">[</span>source_file<span class="o">(</span>s<span class="o">)]</span> -</pre></div> -</div> -<p>Replace <cite>[source_file(s)]</cite> with the path(s) to the file(s) to format. The <cite>-i</cite> option tells ClangFormat to modify the files in-place.</p> -</section> -<section id="clangtidy"> -<h2>ClangTidy<a class="headerlink" href="#clangtidy" title="Link to this heading">ïƒ</a></h2> -<p>Supported Version: 14.0.6</p> -<p>To ensure code quality and adherence to coding standards, ClangTidy is recommended.</p> -<p>The used checks are located in the <a class="reference download internal" download="" href="../_downloads/6a57e453fd078015624636244721a982/.clang-tidy"><code class="xref download docutils literal notranslate"><span class="pre">.clang-tidy</span></code></a> file, where lines starting with <code class="docutils literal notranslate"><span class="pre">-</span></code> are checks that have been deactivated. -For more details, visit the <a class="reference external" href="https://clang.llvm.org/extra/clang-tidy/#using-clang-tidy">ClangTidy official page</a>.</p> -</section> -<section id="commit-message-guidelines"> -<h2>Commit Message Guidelines<a class="headerlink" href="#commit-message-guidelines" title="Link to this heading">ïƒ</a></h2> -<p><strong>Overview</strong></p> -<p>This section outlines the guidelines for writing commit messages in openPASS repository. Following these guidelines ensures that commit messages are clear, descriptive, and help facilitate collaboration among team members. -This section uses excerpts from <a class="reference external" href="https://www.conventionalcommits.org/en/v1.0.0/">Conventional Commits</a> licensed under <a class="reference external" href="https://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a> by it’s authors.</p> -<p><strong>Commit Message Format</strong></p> -<p>Each commit message should consist of a single short summary line (recommended, up to 50 characters) followed by a more detailed description (if necessary). -The message should adhere to the following format:</p> -<blockquote> -<div><blockquote> -<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o"><</span><span class="nb">type</span><span class="o">></span><span class="p">[</span><span class="n">optional</span> <span class="n">scope</span><span class="p">]:</span> <span class="o"><</span><span class="n">description</span><span class="o">></span> - -<span class="p">[</span><span class="n">optional</span> <span class="n">body</span><span class="p">]</span> - -<span class="p">[</span><span class="n">optional</span> <span class="n">footer</span><span class="p">(</span><span class="n">s</span><span class="p">)]</span> -</pre></div> -</div> -</div></blockquote> -<ol class="arabic simple"> -<li><p>The <code class="docutils literal notranslate"><span class="pre"><type></span></code> part represents the type of the commit, which helps in categorizing the nature of the changes. The following types are allowed:</p> -<ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">feat</span></code>: A new feature or enhancement.</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">fix</span></code>: A bug fix.</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">docs</span></code>: Documentation-related changes.</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">style</span></code>: Code style changes (e.g., formatting, spacing).</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">refactor</span></code>: Code refactoring without adding new features or fixing bugs.</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">test</span></code>: Adding or improving tests.</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">chore</span></code>: Maintenance tasks, build changes, or other non-functional modifications.</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">ci</span></code>: Changes related to CI.</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">build</span></code>: Modifications related to build step.</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">perf</span></code>: Modifications related to performance improvements.</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">revert</span></code>: Revert any code changes.</p></li> -</ul> -</li> -<li><p>The <code class="docutils literal notranslate"><span class="pre"><optional</span> <span class="pre">scope></span></code> section is optional but is used to provide additional contextual information and is contained within parenthesis.</p></li> -<li><p>The <code class="docutils literal notranslate"><span class="pre"><description></span></code> is a brief description of the changes made in the commit. It should be concise yet informative and is recommended to not exceed 50 characters.</p></li> -<li><p>The <code class="docutils literal notranslate"><span class="pre"><optional</span> <span class="pre">body></span></code> section is optional but recommended, especially for complex changes or when further explanation is needed. This section should provide additional context, justification, and details about the changes made. Use bullet points for better readability when necessary.</p></li> -<li><p>The <code class="docutils literal notranslate"><span class="pre"><optional</span> <span class="pre">footer></span></code> section is also optional but can be used to provide supplementary information related to the commit.</p></li> -</ol> -</div></blockquote> -</section> -<section id="header-file-inclusion"> -<h2>Header File Inclusion<a class="headerlink" href="#header-file-inclusion" title="Link to this heading">ïƒ</a></h2> -<p><strong>Overview</strong></p> -<p>When working on a C/C++ project, it’s essential to include header files correctly. This documentation explains the various ways to include header files, depending on their source.</p> -<p><strong>System Libraries</strong></p> -<p>Header files from system libraries should be enclosed in angular brackets (<cite>< ></cite>). This syntax informs the compiler to search for the headers in the system’s standard include directories.</p> -<blockquote> -<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1">#include <stdio.h></span> -<span class="c1">#include <stdlib.h></span> -</pre></div> -</div> -</div></blockquote> -<p><strong>Dependencies in CMAKE_PREFIX_PATH</strong></p> -<p>If the header files are from dependencies that are part of the <cite>CMAKE_PREFIX_PATH</cite>, use angular brackets (<cite>< ></cite>) as well. This indicates to the compiler that the headers are part of external dependencies.</p> -<blockquote> -<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1">#include <dependency/header.h></span> -</pre></div> -</div> -</div></blockquote> -<p><strong>Repository Header Files</strong></p> -<p>If the header files are from project’s repository then, use double quotes (<cite>†“â€</cite>).</p> -<blockquote> -<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1">#include "my_component/header.h"</span> -</pre></div> -</div> -</div></blockquote> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="20_documentation.html" class="btn btn-neutral float-left" title="Documentation Concept" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="../other_information/10_external_dependencies.html" class="btn btn-neutral float-right" title="External Dependencies" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Coding Guidelines — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + <link rel="stylesheet" type="text/css" href="../_static/tabs.css?v=a5c4661c" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/tabs.js?v=3030b3cb"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="External Dependencies" href="../other_information/10_external_dependencies.html" /> + <link rel="prev" title="Documentation Concept" href="20_documentation.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Coding Guidelines</a><ul> +<li class="toctree-l2"><a class="reference internal" href="#general">General</a></li> +<li class="toctree-l2"><a class="reference internal" href="#naming-conventions">Naming Conventions</a></li> +<li class="toctree-l2"><a class="reference internal" href="#clangformat">ClangFormat</a></li> +<li class="toctree-l2"><a class="reference internal" href="#clangtidy">ClangTidy</a></li> +<li class="toctree-l2"><a class="reference internal" href="#commit-message-guidelines">Commit Message Guidelines</a></li> +<li class="toctree-l2"><a class="reference internal" href="#header-file-inclusion">Header File Inclusion</a></li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Coding Guidelines</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/developer_information/30_coding_conventions.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="coding-guidelines"> +<span id="coding-conventions"></span><h1>Coding Guidelines<a class="headerlink" href="#coding-guidelines" title="Link to this heading">ïƒ</a></h1> +<section id="general"> +<h2>General<a class="headerlink" href="#general" title="Link to this heading">ïƒ</a></h2> +<p><strong>openPASS</strong> (Open Source) is based on modern C++ (currently C++17). For coding guidelines, please refer to <a class="reference external" href="https://github.com/isocpp/CppCoreGuidelines">ISO C++ Core Guidelines</a>.</p> +<p><strong>Headers/Sources</strong></p> +<blockquote> +<div><ul class="simple"> +<li><p>Use <code class="docutils literal notranslate"><span class="pre">*.h</span></code> as file extension for header files</p></li> +<li><p>Use <code class="docutils literal notranslate"><span class="pre">*.cpp</span></code> as file extension for source files</p></li> +</ul> +</div></blockquote> +</section> +<section id="naming-conventions"> +<h2>Naming Conventions<a class="headerlink" href="#naming-conventions" title="Link to this heading">ïƒ</a></h2> +<p>Concise summarized Naming Conventions</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1">#pragma once</span> + +<span class="n">namespace</span> <span class="n">openpass</span><span class="p">::</span><span class="n">component</span><span class="p">::</span><span class="n">algorithm</span> +<span class="p">{</span> + +<span class="o">/*</span> <span class="n">fooBar</span><span class="o">.</span><span class="n">h</span> <span class="o">*/</span> <span class="o">//</span> <span class="n">File</span><span class="p">:</span> <span class="n">lowerCamelCase</span> +<span class="k">class</span><span class="w"> </span><span class="nc">FooBar</span> <span class="o">//</span> <span class="n">Class</span><span class="p">:</span> <span class="n">UpperCamelCase</span> +<span class="p">{</span> +<span class="n">private</span><span class="p">:</span> + <span class="n">static</span> <span class="n">constexpr</span> <span class="nb">int</span> <span class="n">MAGIC_NUMBER</span> <span class="p">{</span><span class="o">-</span><span class="mi">999</span><span class="p">};</span> <span class="o">//</span> <span class="n">Constants</span><span class="p">:</span> <span class="n">UPPER_CASE</span> + <span class="nb">int</span> <span class="n">myMember</span><span class="p">;</span> <span class="o">//</span> <span class="n">Members</span><span class="p">:</span> <span class="n">lowerCamelCase</span> + <span class="n">FooBar</span><span class="p">();</span> <span class="o">//</span> <span class="n">Ctor</span><span class="p">:</span> <span class="n">UpperCamelCase</span> + +<span class="n">public</span><span class="p">:</span> + <span class="n">void</span> <span class="n">Bar</span><span class="p">();</span> <span class="o">//</span> <span class="n">Methods</span><span class="p">:</span> <span class="n">UpperCamelCase</span> + <span class="n">void</span> <span class="n">BarBar</span><span class="p">(</span><span class="nb">bool</span> <span class="n">flag</span><span class="p">,</span> <span class="nb">int</span> <span class="n">counter</span><span class="p">);</span> <span class="o">//</span> <span class="n">Arguments</span><span class="p">:</span> <span class="n">lowerCamelCase</span> + <span class="n">void</span> <span class="n">YaaBar</span><span class="p">();</span> <span class="o">///</span> <span class="n">Yaa</span> <span class="o">=</span> <span class="n">Yet</span> <span class="n">Another</span> <span class="n">Abbreviation</span> <span class="o">//</span> <span class="n">Abbreviations</span><span class="p">:</span> <span class="n">UpperCamelCase</span> +<span class="p">};</span> + +<span class="p">}</span> +</pre></div> +</div> +<p><strong>Namespaces</strong></p> +<blockquote> +<div><ol class="arabic"> +<li><p>Use lowercase for namespaces</p></li> +<li><p>Use singular form for namespaces where appropriate</p></li> +<li><p>Use base namespace <code class="docutils literal notranslate"><span class="pre">openpass</span></code></p></li> +<li><p>Core uses <code class="docutils literal notranslate"><span class="pre">openpass::core::*</span></code></p></li> +<li><p>Components use <code class="docutils literal notranslate"><span class="pre">openpass::component::*</span></code></p></li> +<li><p>Use the appropriate namespace for the type your component +* <code class="docutils literal notranslate"><span class="pre">openpass::component::algorithm</span></code> +* <code class="docutils literal notranslate"><span class="pre">openpass::component::sensor</span></code> +* <code class="docutils literal notranslate"><span class="pre">openpass::component::dynamics</span></code> +* <code class="docutils literal notranslate"><span class="pre">openpass::component::driver</span></code> +* …</p></li> +<li><p>Code with shared scope (e.g. <code class="docutils literal notranslate"><span class="pre">common</span></code>) namespaces are separated in</p> +<ul class="simple"> +<li><p>For everyone <code class="docutils literal notranslate"><span class="pre">openpass::common</span></code> e.g. <code class="docutils literal notranslate"><span class="pre">openpass::common::XmlParser</span></code></p></li> +<li><p>Common for components <code class="docutils literal notranslate"><span class="pre">openpass::component::common</span></code> e.g. <code class="docutils literal notranslate"><span class="pre">openpass::components::Ports</span></code></p></li> +<li><p>For the core only <code class="docutils literal notranslate"><span class="pre">openpass::core::common</span></code> e.g. <code class="docutils literal notranslate"><span class="pre">openpass::core::common::Parameters</span></code></p></li> +</ul> +</li> +<li><p>Discussion: <code class="docutils literal notranslate"><span class="pre">openpass::type::*</span></code></p> +<p>Example: <code class="docutils literal notranslate"><span class="pre">openpass::type::Vector2D,</span> <span class="pre">openpass::type::OpenDriveId</span></code></p> +</li> +</ol> +</div></blockquote> +<p><strong>Interfaces</strong></p> +<blockquote> +<div><ol class="arabic"> +<li><p>Interfaces should be named descriptively according to the functionality they outline with an <code class="docutils literal notranslate"><span class="pre">UpperCamelCase</span></code> name</p> +<p>Example: Interface for the <strong>world</strong> = <code class="docutils literal notranslate"><span class="pre">class</span> <span class="pre">WorldInterface</span></code></p> +</li> +<li><p>Interfaces are abstract classes, and as such provide pure virtual functions only, withtout any default implementation. For example:</p> +<blockquote> +<div><p><code class="docutils literal notranslate"><span class="pre">virtual</span> <span class="pre">double</span> <span class="pre">GetDistance()</span> <span class="pre">const</span> <span class="pre">=</span> <span class="pre">0;</span></code></p> +</div></blockquote> +</li> +<li><p>Interface methods <strong>do not</strong> exibit default parameters.</p></li> +<li><p>We excessively use <strong>gmock</strong>, so for every interface a fake interface should be provided</p> +<p>Example: <code class="docutils literal notranslate"><span class="pre">class</span> <span class="pre">FakeWorld</span> <span class="pre">:</span> <span class="pre">public</span> <span class="pre">WorldInterface</span> <span class="pre">{...};</span></code></p> +<p>Note: Following <strong>*Roy Osherove*</strong>, we use Fake instead of Mock, whick allows to distinguish Mocks and +Stubs more easily in the code</p> +</li> +</ol> +</div></blockquote> +<p><strong>Classes</strong></p> +<blockquote> +<div><ol class="arabic"> +<li><p>Classes should be named descriptively according to the functionality they implement with an <code class="docutils literal notranslate"><span class="pre">UpperCamelCase</span></code> name</p></li> +<li><p>A Class implementing an Interface should have the Interfaces name (see below), with the Interface portion removed. For example: +.. code-block:</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="nc">AgentBlueprint</span> <span class="p">:</span> <span class="n">public</span> <span class="n">AgentBlueprintInterface</span> <span class="p">{</span><span class="o">...</span><span class="p">};</span> +</pre></div> +</div> +</li> +</ol> +</div></blockquote> +<p><strong>Methods</strong></p> +<blockquote> +<div><ol class="arabic"> +<li><p>Methods should be descriptively named in <code class="docutils literal notranslate"><span class="pre">UpperCamelCase</span></code></p> +<p>Example: Method for retrieving the time of day should be named <code class="docutils literal notranslate"><span class="pre">GetTimeOfDay()</span></code></p> +</li> +</ol> +</div></blockquote> +<p><strong>Member Variables</strong></p> +<blockquote> +<div><ol class="arabic"> +<li><p>Member variables should be descriptively named in <code class="docutils literal notranslate"><span class="pre">lowerCamelCase</span></code></p></li> +<li><p>Normally, it is sufficient to use the classes name directly.</p> +<p>Example: The member variable containing the AgentNetwork should be named <code class="docutils literal notranslate"><span class="pre">agentNetwork</span></code></p> +</li> +</ol> +</div></blockquote> +<p><strong>Input / Output Signal Naming</strong></p> +<blockquote> +<div><ol class="arabic"> +<li><p>Components use a special form of signal transmission. For easier use, the following abstraction is recommended: +.. code-block:</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">std</span><span class="p">::</span><span class="nb">map</span><span class="o"><</span><span class="nb">int</span><span class="p">,</span> <span class="n">ComponentPort</span> <span class="o">*></span> <span class="n">outputPorts</span><span class="p">;</span> +<span class="nb">bool</span> <span class="n">success</span> <span class="o">=</span> <span class="n">outputPorts</span><span class="o">.</span><span class="n">at</span><span class="p">(</span><span class="n">localLinkId</span><span class="p">)</span><span class="o">-></span><span class="n">SetSignalValue</span><span class="p">(</span><span class="n">data</span><span class="p">);</span> +</pre></div> +</div> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">std</span><span class="p">::</span><span class="nb">map</span><span class="o"><</span><span class="nb">int</span><span class="p">,</span> <span class="n">ComponentPort</span> <span class="o">*></span> <span class="n">inputPorts</span><span class="p">;</span> +<span class="nb">bool</span> <span class="n">success</span> <span class="o">=</span> <span class="n">inputPorts</span><span class="o">.</span><span class="n">at</span><span class="p">(</span><span class="n">localLinkId</span><span class="p">)</span><span class="o">-></span><span class="n">GetSignalValue</span><span class="p">(</span><span class="n">data</span><span class="p">);</span> +</pre></div> +</div> +</li> +<li><p>Discussion: Wrap in <code class="docutils literal notranslate"><span class="pre">openpass::components::common::Port</span></code> and further +<code class="docutils literal notranslate"><span class="pre">openpass::components::common::Ports</span></code></p></li> +</ol> +</div></blockquote> +<p><strong>Additional Information</strong></p> +<blockquote> +<div><ol class="arabic simple"> +<li><p>Use <code class="docutils literal notranslate"><span class="pre">UpperCamelCase</span></code> for abbreviations used in files, classes, methods, or variables</p></li> +<li><p>This does not apply if the abbreviation is the entire name or the beginning of the name - in such a case the name is written with the rules for the appropriate type</p> +<ul class="simple"> +<li><p>int ID→int id</p></li> +<li><p>class AgentID→ class AgentId</p></li> +<li><p>ADASDriver.cpp→adasDriver.cpp</p></li> +</ul> +</li> +<li><p>Avoid public class data members. If unavoidable, use <code class="docutils literal notranslate"><span class="pre">lowerCamelCase</span></code></p></li> +<li><p>Enums should be preferably defined as enum class; as such, enum names should be in <code class="docutils literal notranslate"><span class="pre">UpperCamelCase</span></code></p></li> +<li><p>Decorate container by type aliases and use UpperCamelCase. For example:</p></li> +</ol> +<blockquote> +<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">using</span> <span class="n">FooParts</span> <span class="o">=</span> <span class="n">std</span><span class="p">::</span><span class="n">vector</span><span class="o"><</span><span class="n">FooPart</span><span class="o">></span><span class="p">;</span> +</pre></div> +</div> +</div></blockquote> +</div></blockquote> +<p><strong>Avoid</strong></p> +<blockquote> +<div><ol class="arabic simple"> +<li><p>Do <strong>not</strong> use Hungarian notation for variables names (iCounter → counter)</p></li> +<li><p>Do <strong>not</strong> specify the type of the underlying implementation (partMap→ parts)</p></li> +<li><p>Do <strong>not</strong> use magic numbers in the code; explicitly define constants instead</p></li> +<li><p>Do <strong>not</strong> use global variables</p></li> +</ol> +</div></blockquote> +<p><strong>Exceptions</strong></p> +<blockquote> +<div><ol class="arabic"> +<li><p>Autogenerated code does not need to follow the coding conventions</p> +<p>Example:: osi3: <code class="docutils literal notranslate"><span class="pre">::osi3::DetectedEntityHeader*</span> <span class="pre">mutable_moving_object_header()</span></code></p> +</li> +</ol> +</div></blockquote> +<p><strong>Documentation</strong></p> +<blockquote> +<div><ol class="arabic"> +<li><p>The following should be documented +* Public functions and class methods +* Classes +* File headers +* Constants +* Private functions or methods with more than 3 arguments and/or complex functionality??</p></li> +<li><p>Language</p> +<ul class="simple"> +<li><p>Document “what†it does rather than describing “whyâ€</p></li> +<li><p>Third-person singular verbs should be used to describe what it does</p></li> +</ul> +</li> +<li><p>Use the below methods to comment in source code. The below 2 syntaxes must be placed just above an entity.</p> +<p>Multi line comments</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>//! … comments… +//! … comments… +//! … comments… +</pre></div> +</div> +<p>Single line comments</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">///</span> <span class="n">Comments</span><span class="o">.</span> +</pre></div> +</div> +</li> +<li><p>Use the following structural commands</p> +<table class="docutils align-default"> +<colgroup> +<col style="width: 33.3%" /> +<col style="width: 66.7%" /> +</colgroup> +<thead> +<tr class="row-odd"><th class="head"><p>Syntax</p></th> +<th class="head"><p>Definition</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>@file</p></td> +<td><p>The file name must be present in the file header</p></td> +</tr> +<tr class="row-odd"><td><p>@param[in/out]</p></td> +<td><p>Parameter documentation for functions</p></td> +</tr> +<tr class="row-even"><td><p>@page</p></td> +<td><p>Markdown page name</p></td> +</tr> +</tbody> +</table> +</li> +<li><p>Use the following syntax for parameter description</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nd">@param</span><span class="p">[</span><span class="ow">in</span><span class="o">/</span><span class="n">out</span><span class="p">]</span> <span class="o"><</span><span class="n">variable</span> <span class="n">name</span><span class="o">></span> <span class="o"><</span><span class="n">variable</span> <span class="n">description</span><span class="o">></span> +</pre></div> +</div> +</li> +<li><p>All parameters description should be aligned as shown below to make them more readable.</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="nd">@param</span><span class="p">[</span><span class="ow">in</span><span class="p">]</span> <span class="n">shortName</span> <span class="n">Description</span><span class="o">.</span> +<span class="nd">@param</span><span class="p">[</span><span class="ow">in</span><span class="p">]</span> <span class="n">longerName</span> <span class="n">Description</span><span class="o">.</span> +<span class="nd">@param</span><span class="p">[</span><span class="n">out</span><span class="p">]</span> <span class="n">veryLongName</span> <span class="n">Description</span><span class="o">.</span> +</pre></div> +</div> +</li> +<li><p>Example</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>/// @file main.c +#include<stdio.h> + +/// Mathematical constant PI +#define PI 3.1415 + +/// Radius in meters +#define RADIUS_M 7.82 + +//! Calculates the area of the circle. +//! +//! @param[in] radius Radius of the circle +//! @param[out] area Area of the circle +float CalculateArea(float radius) +{ + float area; + area = PI * radius * radius; + return area; +} +</pre></div> +</div> +</li> +<li><p>Do not comment on polymorph methods (virtual base → override), unless there is a severe change</p></li> +</ol> +</div></blockquote> +<p><strong>End Of Line</strong></p> +<blockquote> +<div><ol class="arabic simple"> +<li><p>Native end of line (EOL) should be used in the working directory</p></li> +<li><p>The <code class="docutils literal notranslate"><span class="pre">.gitattributes</span></code> configuration file provides correct EOL handling for <code class="docutils literal notranslate"><span class="pre">git</span></code> related commands and actions</p></li> +<li><p>When editing files</p> +<ul class="simple"> +<li><p>Trim trailing whitespaces</p></li> +<li><p>Single EOL at end of files</p></li> +<li><p>Use spaces for tabs (use tab size according to coding guidelines or existing file contents)</p></li> +</ul> +</li> +</ol> +</div></blockquote> +<p>See <a class="reference internal" href="ide_support/30_vscode.html#vscode-user-settings"><span class="std std-ref">Example VSCode user settings</span></a>.</p> +</section> +<section id="clangformat"> +<h2>ClangFormat<a class="headerlink" href="#clangformat" title="Link to this heading">ïƒ</a></h2> +<p>To ensure consistent and readable code across the project, <strong>ClangFormat</strong> is recommended.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The following guidelines are based on ClangFormat version 15.0.7</p> +</div> +<p><strong>Installing ClangFormat</strong></p> +<p>To install <strong>ClangFormat 15.0.7</strong>, execute the following command depending on the operating system.</p> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Linux (Debian Bookworm or Ubuntu 22.04)</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pacman</span> <span class="o">-</span><span class="n">S</span> <span class="n">mingw</span><span class="o">-</span><span class="n">w64</span><span class="o">-</span><span class="n">x86_64</span><span class="o">-</span><span class="n">clang</span> +</pre></div> +</div> +</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">clang</span><span class="o">-</span><span class="nb">format</span> +</pre></div> +</div> +</div></div> +<p><strong>Configuring ClangFormat</strong></p> +<p>To configure ClangFormat, create a <cite>.clang-format</cite> file in the root directory of your project. Below is the configuration used in <strong>openPASS</strong> (Open Source):</p> +<blockquote> +<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">---</span> +<span class="n">BasedOnStyle</span><span class="p">:</span> <span class="n">Google</span> +<span class="n">AccessModifierOffset</span><span class="p">:</span> <span class="o">-</span><span class="mi">2</span> +<span class="n">AllowShortFunctionsOnASingleLine</span><span class="p">:</span> <span class="n">Inline</span> +<span class="n">AlignOperands</span><span class="p">:</span> <span class="n">AlignAfterOperator</span> +<span class="n">BinPackArguments</span><span class="p">:</span> <span class="n">false</span> +<span class="n">BinPackParameters</span><span class="p">:</span> <span class="n">false</span> +<span class="n">BreakBeforeBraces</span><span class="p">:</span> <span class="n">Allman</span> +<span class="n">BreakBeforeBinaryOperators</span><span class="p">:</span> <span class="n">All</span> +<span class="n">ColumnLimit</span><span class="p">:</span> <span class="mi">120</span> +<span class="n">SpacesInLineCommentPrefix</span><span class="p">:</span> + <span class="n">Minimum</span><span class="p">:</span> <span class="mi">0</span> + <span class="n">Maximum</span><span class="p">:</span> <span class="mi">1</span> +<span class="n">CommentPragmas</span><span class="p">:</span> <span class="s1">'^</span><span class="se">\\</span><span class="s1">.+'</span> +<span class="n">IncludeCategories</span><span class="p">:</span> + <span class="o">-</span> <span class="n">Regex</span><span class="p">:</span> <span class="s1">'^((<|")(gtest|gmock)/)'</span> + <span class="n">Priority</span><span class="p">:</span> <span class="o">-</span><span class="mi">1</span> + <span class="o">-</span> <span class="n">Regex</span><span class="p">:</span> <span class="s1">'^<[^Q]'</span> + <span class="n">Priority</span><span class="p">:</span> <span class="mi">1</span> + <span class="o">-</span> <span class="n">Regex</span><span class="p">:</span> <span class="s1">'^<Q'</span> + <span class="n">Priority</span><span class="p">:</span> <span class="mi">2</span> +</pre></div> +</div> +</div></blockquote> +<p><strong>Running ClangFormat</strong></p> +<p>To format the code using ClangFormat, run the following command in the terminal:</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>clang-format<span class="w"> </span>-i<span class="w"> </span><span class="o">[</span>source_file<span class="o">(</span>s<span class="o">)]</span> +</pre></div> +</div> +<p>Replace <cite>[source_file(s)]</cite> with the path(s) to the file(s) to format. The <cite>-i</cite> option tells ClangFormat to modify the files in-place.</p> +</section> +<section id="clangtidy"> +<h2>ClangTidy<a class="headerlink" href="#clangtidy" title="Link to this heading">ïƒ</a></h2> +<p>Supported Version: 14.0.6</p> +<p>To ensure code quality and adherence to coding standards, ClangTidy is recommended.</p> +<p>The used checks are located in the <a class="reference download internal" download="" href="../_downloads/6a57e453fd078015624636244721a982/.clang-tidy"><code class="xref download docutils literal notranslate"><span class="pre">.clang-tidy</span></code></a> file, where lines starting with <code class="docutils literal notranslate"><span class="pre">-</span></code> are checks that have been deactivated. +For more details, visit the <a class="reference external" href="https://clang.llvm.org/extra/clang-tidy/#using-clang-tidy">ClangTidy official page</a>.</p> +</section> +<section id="commit-message-guidelines"> +<h2>Commit Message Guidelines<a class="headerlink" href="#commit-message-guidelines" title="Link to this heading">ïƒ</a></h2> +<p><strong>Overview</strong></p> +<p>This section outlines the guidelines for writing commit messages in openPASS repository. Following these guidelines ensures that commit messages are clear, descriptive, and help facilitate collaboration among team members. +This section uses excerpts from <a class="reference external" href="https://www.conventionalcommits.org/en/v1.0.0/">Conventional Commits</a> licensed under <a class="reference external" href="https://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a> by it’s authors.</p> +<p><strong>Commit Message Format</strong></p> +<p>Each commit message should consist of a single short summary line (recommended, up to 50 characters) followed by a more detailed description (if necessary). +The message should adhere to the following format:</p> +<blockquote> +<div><blockquote> +<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o"><</span><span class="nb">type</span><span class="o">></span><span class="p">[</span><span class="n">optional</span> <span class="n">scope</span><span class="p">]:</span> <span class="o"><</span><span class="n">description</span><span class="o">></span> + +<span class="p">[</span><span class="n">optional</span> <span class="n">body</span><span class="p">]</span> + +<span class="p">[</span><span class="n">optional</span> <span class="n">footer</span><span class="p">(</span><span class="n">s</span><span class="p">)]</span> +</pre></div> +</div> +</div></blockquote> +<ol class="arabic simple"> +<li><p>The <code class="docutils literal notranslate"><span class="pre"><type></span></code> part represents the type of the commit, which helps in categorizing the nature of the changes. The following types are allowed:</p> +<ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">feat</span></code>: A new feature or enhancement.</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">fix</span></code>: A bug fix.</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">docs</span></code>: Documentation-related changes.</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">style</span></code>: Code style changes (e.g., formatting, spacing).</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">refactor</span></code>: Code refactoring without adding new features or fixing bugs.</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">test</span></code>: Adding or improving tests.</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">chore</span></code>: Maintenance tasks, build changes, or other non-functional modifications.</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">ci</span></code>: Changes related to CI.</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">build</span></code>: Modifications related to build step.</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">perf</span></code>: Modifications related to performance improvements.</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">revert</span></code>: Revert any code changes.</p></li> +</ul> +</li> +<li><p>The <code class="docutils literal notranslate"><span class="pre"><optional</span> <span class="pre">scope></span></code> section is optional but is used to provide additional contextual information and is contained within parenthesis.</p></li> +<li><p>The <code class="docutils literal notranslate"><span class="pre"><description></span></code> is a brief description of the changes made in the commit. It should be concise yet informative and is recommended to not exceed 50 characters.</p></li> +<li><p>The <code class="docutils literal notranslate"><span class="pre"><optional</span> <span class="pre">body></span></code> section is optional but recommended, especially for complex changes or when further explanation is needed. This section should provide additional context, justification, and details about the changes made. Use bullet points for better readability when necessary.</p></li> +<li><p>The <code class="docutils literal notranslate"><span class="pre"><optional</span> <span class="pre">footer></span></code> section is also optional but can be used to provide supplementary information related to the commit.</p></li> +</ol> +</div></blockquote> +</section> +<section id="header-file-inclusion"> +<h2>Header File Inclusion<a class="headerlink" href="#header-file-inclusion" title="Link to this heading">ïƒ</a></h2> +<p><strong>Overview</strong></p> +<p>When working on a C/C++ project, it’s essential to include header files correctly. This documentation explains the various ways to include header files, depending on their source.</p> +<p><strong>System Libraries</strong></p> +<p>Header files from system libraries should be enclosed in angular brackets (<cite>< ></cite>). This syntax informs the compiler to search for the headers in the system’s standard include directories.</p> +<blockquote> +<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1">#include <stdio.h></span> +<span class="c1">#include <stdlib.h></span> +</pre></div> +</div> +</div></blockquote> +<p><strong>Dependencies in CMAKE_PREFIX_PATH</strong></p> +<p>If the header files are from dependencies that are part of the <cite>CMAKE_PREFIX_PATH</cite>, use angular brackets (<cite>< ></cite>) as well. This indicates to the compiler that the headers are part of external dependencies.</p> +<blockquote> +<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1">#include <dependency/header.h></span> +</pre></div> +</div> +</div></blockquote> +<p><strong>Repository Header Files</strong></p> +<p>If the header files are from project’s repository then, use double quotes (<cite>†“â€</cite>).</p> +<blockquote> +<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1">#include "my_component/header.h"</span> +</pre></div> +</div> +</div></blockquote> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="20_documentation.html" class="btn btn-neutral float-left" title="Documentation Concept" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../other_information/10_external_dependencies.html" class="btn btn-neutral float-right" title="External Dependencies" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/developer_information/ide_support/30_vscode.html b/content/html/developer_information/ide_support/30_vscode.html index c22b87cbe79f791452147682350abf37def0fb07..8e83860a4402505c2bd6cf5b73a90e6178b5e8ff 100644 --- a/content/html/developer_information/ide_support/30_vscode.html +++ b/content/html/developer_information/ide_support/30_vscode.html @@ -1,849 +1,850 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Working with Visual Studio Code — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/tabs.js?v=3030b3cb"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Documentation Concept" href="../20_documentation.html" /> - <link rel="prev" title="IDE Support" href="../10_ide_support.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="reference internal" href="../10_ide_support.html">IDE Support</a><ul class="current"> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Working with Visual Studio Code</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#assumptions">Assumptions</a></li> -<li class="toctree-l3"><a class="reference internal" href="#installation">Installation</a></li> -<li class="toctree-l3"><a class="reference internal" href="#set-up-development-containers-in-visual-studio-code">Set Up Development Containers in Visual Studio Code</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#introduction">Introduction</a></li> -<li class="toctree-l4"><a class="reference internal" href="#prerequisites">Prerequisites</a></li> -<li class="toctree-l4"><a class="reference internal" href="#devcontainers">DevContainers</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#configuration">Configuration</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#win-only-msys2-path"> MSYS2 Path</a></li> -<li class="toctree-l4"><a class="reference internal" href="#build-kit">Build Kit</a></li> -<li class="toctree-l4"><a class="reference internal" href="#user-settings">User Settings</a></li> -<li class="toctree-l4"><a class="reference internal" href="#c-and-intellisense">C++ and IntelliSense</a></li> -<li class="toctree-l4"><a class="reference internal" href="#configure-the-build">Configure the Build</a></li> -<li class="toctree-l4"><a class="reference internal" href="#debug-targets">Debug Targets</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#troubleshooting">Troubleshooting</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../10_ide_support.html">IDE Support</a></li> - <li class="breadcrumb-item active">Working with Visual Studio Code</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/developer_information/ide_support/30_vscode.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="working-with-visual-studio-code"> -<span id="vscode"></span><h1>Working with Visual Studio Code<a class="headerlink" href="#working-with-visual-studio-code" title="Link to this heading">ïƒ</a></h1> -<p>This section describes the basic setup for Visual Studio Code.</p> -<figure class="align-center" id="id1"> -<img alt="../../_images/vscode_quick_intro.png" src="../../_images/vscode_quick_intro.png" /> -<figcaption> -<p><span class="caption-text">Correctly configured Visual Studio Code showing – among other things – <strong>left</strong>, debugging, testmate, and cmake pane selectors, and at the <strong>bottom</strong>, build type, kit, current target, and CTest runner.</span><a class="headerlink" href="#id1" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<section id="assumptions"> -<h2>Assumptions<a class="headerlink" href="#assumptions" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>For brevity, non-standard libraries are expected to be in the folder <code class="docutils literal notranslate"><span class="pre">./deps/thirdParty</span></code>.</p></li> -<li><p><img alt="win_only" src="../../_images/win_only.png" /> <strong>MSYS2/MinGW 64 Bit</strong> is used.</p></li> -</ul> -</section> -<section id="installation"> -<h2>Installation<a class="headerlink" href="#installation" title="Link to this heading">ïƒ</a></h2> -<ol class="arabic simple"> -<li><p>Install Visual Studio Code (<a class="reference external" href="https://code.visualstudio.com">https://code.visualstudio.com</a>)</p></li> -<li><p>Install Extensions</p></li> -</ol> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Name</p></th> -<th class="head"><p>Purpose</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p><a class="reference external" href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools">C/C++</a></p></td> -<td><p>Support for C/C++, including IntelliSense and debugging</p></td> -</tr> -<tr class="row-odd"><td><p><a class="reference external" href="https://vector-of-bool.github.io/docs/vscode-cmake-tools">CMake Tools</a></p></td> -<td><p>Extended CMake support</p></td> -</tr> -<tr class="row-even"><td><p><a class="reference external" href="https://marketplace.visualstudio.com/items?itemName=matepek.vscode-catch2-test-adapter">C++ Testmate</a></p></td> -<td><p>Run and debug GoogleTest</p></td> -</tr> -<tr class="row-odd"><td><p><a class="reference external" href="https://marketplace.visualstudio.com/items?itemName=fougas.msys2">MSYS2/Cygwin/MinGW/Clang support</a></p></td> -<td><p><img alt="win_only" src="../../_images/win_only.png" /> MSYS2/MinGW configuration adapter</p></td> -</tr> -<tr class="row-even"><td><p><a class="reference external" href="https://code.visualstudio.com/docs/devcontainers/containers">Remote Development</a></p></td> -<td><p>Development using DevContainers</p></td> -</tr> -<tr class="row-odd"><td><p><a class="reference external" href="https://code.visualstudio.com/docs/containers/overview">Docker</a></p></td> -<td><p>Additional information for DevContainer prerequisites</p></td> -</tr> -</tbody> -</table> -</section> -<section id="set-up-development-containers-in-visual-studio-code"> -<h2>Set Up Development Containers in Visual Studio Code<a class="headerlink" href="#set-up-development-containers-in-visual-studio-code" title="Link to this heading">ïƒ</a></h2> -<section id="introduction"> -<h3>Introduction<a class="headerlink" href="#introduction" title="Link to this heading">ïƒ</a></h3> -<p>This section provides step-by-step instructions on setting up development containers in Visual Studio Code (VSCode). Development containers allow you to define and manage your development environment using Docker containers, ensuring consistent and reproducible setups across different machines.</p> -</section> -<section id="prerequisites"> -<h3>Prerequisites<a class="headerlink" href="#prerequisites" title="Link to this heading">ïƒ</a></h3> -<p>Before you begin, make sure <code class="docutils literal notranslate"><span class="pre">docker</span></code> is installed in your system. If <code class="docutils literal notranslate"><span class="pre">docker</span></code> is not installed, follow the below steps.</p> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><ol class="arabic"> -<li><p>Open PowerShell in Administrator Mode by right-clicking and selecting “Run as administrator.â€.</p></li> -<li><p>To install wsl, run the following command and then restart the machine:</p> -<div class="highlight-powershell notranslate"><div class="highlight"><pre><span></span><span class="n">wsl</span> <span class="p">-</span><span class="n">-install</span> -</pre></div> -</div> -<p>The above command only works if WSL is not installed at all. -If you run <code class="docutils literal notranslate"><span class="pre">wsl</span> <span class="pre">--install</span></code> and see the WSL help text, try running <code class="docutils literal notranslate"><span class="pre">wsl</span> <span class="pre">--list</span> <span class="pre">--online</span></code> to see a list of available distros and run <code class="docutils literal notranslate"><span class="pre">wsl</span> <span class="pre">--install</span> <span class="pre">-d</span> <span class="pre"><Linux</span> <span class="pre">DistroName></span></code> to install a distro. The recommended distro is <code class="docutils literal notranslate"><span class="pre">Ubuntu</span></code> and the following steps assumes the distro as <code class="docutils literal notranslate"><span class="pre">Ubuntu</span></code></p> -</li> -<li><p>Once the distro is installed, check the version of the installed distro</p> -<div class="highlight-powershell notranslate"><div class="highlight"><pre><span></span><span class="n">wsl</span> <span class="n">-l</span> <span class="n">-v</span> -</pre></div> -</div> -<p>If the version is 1, then change it to 2 using the command <code class="docutils literal notranslate"><span class="pre">wsl</span> <span class="pre">--set-version</span> <span class="pre"><distro></span> <span class="pre">2</span></code></p> -</li> -<li><p>After successful installation, open Ubuntu by searching <code class="docutils literal notranslate"><span class="pre">Ubuntu</span></code> in windows search bar</p></li> -<li><p>Install the dependencies to run docker on the distro using the following command</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>--no-install-recommends<span class="w"> </span>apt-transport-https<span class="w"> </span>ca-certificates<span class="w"> </span>curl -</pre></div> -</div> -</li> -<li><p>On Debian or Ubuntu, first temporarily set some OS-specific variables:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>.<span class="w"> </span>/etc/os-release -</pre></div> -</div> -<p>Then, make sure <code class="docutils literal notranslate"><span class="pre">apt</span></code> trust the docker repo</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>curl<span class="w"> </span>-fsSL<span class="w"> </span>https://download.docker.com/linux/<span class="si">${</span><span class="nv">ID</span><span class="si">}</span>/gpg<span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/apt/trusted.gpg.d/docker.asc -</pre></div> -</div> -<p>ID will be either <code class="docutils literal notranslate"><span class="pre">ubuntu</span></code> or <code class="docutils literal notranslate"><span class="pre">debian</span></code>, as appropriate, depending on what is in <code class="docutils literal notranslate"><span class="pre">/etc/os-release</span></code>.</p> -</li> -<li><p>Add docker repo information to the <code class="docutils literal notranslate"><span class="pre">apt</span></code> to install docker.</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">echo</span><span class="w"> </span><span class="s2">"deb [arch=amd64] https://download.docker.com/linux/</span><span class="si">${</span><span class="nv">ID</span><span class="si">}</span><span class="s2"> </span><span class="si">${</span><span class="nv">VERSION_CODENAME</span><span class="si">}</span><span class="s2"> stable"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/apt/sources.list.d/docker.list -sudo<span class="w"> </span>apt<span class="w"> </span>update -</pre></div> -</div> -</li> -<li><p>Install Docker and add user to the <code class="docutils literal notranslate"><span class="pre">docker</span></code> group</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>docker-ce<span class="w"> </span>docker-ce-cli<span class="w"> </span>containerd.io -sudo<span class="w"> </span>usermod<span class="w"> </span>-aG<span class="w"> </span>docker<span class="w"> </span><span class="nv">$USER</span> -</pre></div> -</div> -<p>Replace <code class="docutils literal notranslate"><span class="pre">$USER</span></code> with your user name on distro. Then close the WSL window, and launch WSL again. You should see <code class="docutils literal notranslate"><span class="pre">docker</span></code> when you run the command <code class="docutils literal notranslate"><span class="pre">groups</span></code> on command prompt to list group memberships.</p> -</li> -<li><p>Launch <code class="docutils literal notranslate"><span class="pre">dockerd</span></code> using the following command</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>dockerd -</pre></div> -</div> -<p>There should be several lines of info, warnings related to cgroup blkio, and the like, with something like API listen on /var/run/docker.sock at the end. If so, you have success. -If there is any network controller issue, execute the following compile_commands</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s2">"[network]\ngenerateResolvConf = false"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>-a<span class="w"> </span>/etc/wsl.conf -sudo<span class="w"> </span>unlink<span class="w"> </span>/etc/resolv.conf -<span class="nb">echo</span><span class="w"> </span>nameserver<span class="w"> </span><span class="m">1</span>.1.1.1<span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/resolv.conf -</pre></div> -</div> -<p>Also switch to legacy iptables using the following command</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>update-alternatives<span class="w"> </span>--config<span class="w"> </span>iptables -</pre></div> -</div> -<p>And select iptables-legacy -Rerun the command <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">dockerd</span></code> and check if it is succeeded.</p> -</li> -<li><p>To check if <code class="docutils literal notranslate"><span class="pre">docker</span></code> is running from Windows, in PowerShell execute the following command.</p></li> -</ol> -<blockquote> -<div><div class="highlight-powershell notranslate"><div class="highlight"><pre><span></span><span class="n">wsl</span> <span class="n">-d</span> <span class="n">Ubuntu</span> <span class="n">docker</span> <span class="n">-H</span> <span class="n">unix</span><span class="p">:///</span><span class="n">var</span><span class="p">/</span><span class="n">run</span><span class="p">/</span><span class="n">docker</span><span class="p">.</span><span class="n">sock</span> <span class="p">-</span><span class="n">-version</span> -</pre></div> -</div> -</div></blockquote> -</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><ol class="arabic"> -<li><p>Open a terminal window.</p></li> -<li><p>Execute the following command</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>--version -</pre></div> -</div> -<p>If Docker is installed, you will see the version information displayed in the terminal.</p> -</li> -<li><p>If Docker is not installed, you can install it using the following steps:</p> -<ol class="arabic"> -<li><p>Update your package list using the command:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>update -</pre></div> -</div> -</li> -<li><p>Install Docker using the following command:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>docker.io -</pre></div> -</div> -</li> -<li><p>You may need to add your user to the “docker†group to use Docker without sudo. Run the following command to add your user to the group (replace <cite><username></cite> with your actual username):</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>usermod<span class="w"> </span>-aG<span class="w"> </span>docker<span class="w"> </span><username> -</pre></div> -</div> -</li> -</ol> -</li> -</ol> -</div></div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>For more detailed instructions and troubleshooting related to Docker, refer to the official Docker documentation: <a class="reference external" href="https://docs.docker.com/get-docker/">https://docs.docker.com/get-docker/</a></p> -</div> -</section> -<section id="devcontainers"> -<h3>DevContainers<a class="headerlink" href="#devcontainers" title="Link to this heading">ïƒ</a></h3> -<p>Open the repository in VSCode as folder, e.g. by calling <code class="docutils literal notranslate"><span class="pre">code</span> <span class="pre">openpass</span></code> after checking out and then define the development container configuration.</p> -<ol class="arabic"> -<li><p>Open the repository as folder, e.g. by calling <code class="docutils literal notranslate"><span class="pre">code</span> <span class="pre">openpass</span></code> after checking out.</p></li> -<li><p>Create the folder <code class="docutils literal notranslate"><span class="pre">.devcontainer</span></code> at the root of the project and configure your development container using JSON format. Below is an example configuration:</p> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-1-1-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-1-1-0" name="1-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-1-1-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-1-1-1" name="1-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-1-1-0" class="sphinx-tabs-panel" id="panel-1-1-0" name="1-0" role="tabpanel" tabindex="0"><div class="literal-block-wrapper docutils container" id="id2"> -<div class="code-block-caption"><span class="caption-text">devcontainer.json</span><a class="headerlink" href="#id2" title="Link to this code">ïƒ</a></div> -<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span><span class="p">{</span> -<span class="linenos">2</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"openPASS DevContainer"</span><span class="p">,</span> -<span class="linenos">3</span><span class="w"> </span><span class="s2">"dockerFile"</span><span class="o">:</span><span class="w"> </span><span class="s2">"../utils/Dockerfile"</span><span class="p">,</span> -<span class="linenos">4</span><span class="w"> </span><span class="s2">"workspaceFolder"</span><span class="o">:</span><span class="w"> </span><span class="s2">"/workspaces/openPASS"</span> -<span class="linenos">5</span><span class="p">}</span> -</pre></div> -</div> -</div> -<p><a class="reference download internal" download="" href="../../_downloads/a65389c511a382161f2a161fdf5ea53f/devcontainer.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>To use docker daemons running on WSL, open <code class="docutils literal notranslate"><span class="pre">settings</span></code> in VSCode and search for <code class="docutils literal notranslate"><span class="pre">Execute</span> <span class="pre">In</span> <span class="pre">WSL</span></code> and select the option to execute in WSL. Also, under <code class="docutils literal notranslate"><span class="pre">Execute</span> <span class="pre">in</span> <span class="pre">WSLDistro</span></code> enter your distro name, for example: <code class="docutils literal notranslate"><span class="pre">Ubuntu</span></code></p> -</div> -</div><div aria-labelledby="tab-1-1-1" class="sphinx-tabs-panel" hidden="true" id="panel-1-1-1" name="1-1" role="tabpanel" tabindex="0"><div class="literal-block-wrapper docutils container" id="id3"> -<div class="code-block-caption"><span class="caption-text">devcontainer.json</span><a class="headerlink" href="#id3" title="Link to this code">ïƒ</a></div> -<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span><span class="p">{</span> -<span class="linenos">2</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"openPASS DevContainer"</span><span class="p">,</span> -<span class="linenos">3</span><span class="w"> </span><span class="s2">"dockerFile"</span><span class="o">:</span><span class="w"> </span><span class="s2">"../utils/Dockerfile"</span><span class="p">,</span> -<span class="linenos">4</span><span class="w"> </span><span class="s2">"workspaceFolder"</span><span class="o">:</span><span class="w"> </span><span class="s2">"/workspaces/openPASS"</span> -<span class="linenos">5</span><span class="p">}</span> -</pre></div> -</div> -</div> -<p><a class="reference download internal" download="" href="../../_downloads/a65389c511a382161f2a161fdf5ea53f/devcontainer.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> -</div></div> -</li> -<li><p>Open Your Project in a Development Container:</p> -<ol class="arabic simple"> -<li><p>Open the command palette by pressing <cite>Ctrl+Shift+P</cite>.</p></li> -<li><p>Type “Dev Containers: Open Folder in Container†and select your project folder.</p></li> -<li><p>VSCode will build the Docker container based on the configuration and open your project inside it.</p></li> -</ol> -</li> -<li><p>Developing in the Container:</p> -<ol class="arabic simple"> -<li><p>You can now edit files, install packages, and run code within the development container.</p></li> -<li><p>Installed extensions and settings in the container will be isolated from your local environment.</p></li> -</ol> -</li> -<li><p>To exit the container, click on the bottom left status bar where it shows the container name and click “Close Remote Connection.â€</p></li> -</ol> -</section> -</section> -<section id="configuration"> -<h2>Configuration<a class="headerlink" href="#configuration" title="Link to this heading">ïƒ</a></h2> -<section id="win-only-msys2-path"> -<h3><img alt="win_only" src="../../_images/win_only.png" /> MSYS2 Path<a class="headerlink" href="#win-only-msys2-path" title="Link to this heading">ïƒ</a></h3> -<p>Normally, runtime dependencies (DLLs) are not copied into the executables folder within the build process. -This means, that programs cannot be executed natively from Windows shells or the explorer. -It is therefore highly recommended, to set the environmental variable <code class="docutils literal notranslate"><span class="pre">MSYSTEM=MINGW64</span></code> and <code class="docutils literal notranslate"><span class="pre">CHERE_INVOKING=1</span></code>. -The setting of <code class="docutils literal notranslate"><span class="pre">MSYSTEM</span></code> will cause the environment to be set up correctly for MinGW64. -Windows will then look for DLLs within the msys64 folders, allowing native execution. -<code class="docutils literal notranslate"><span class="pre">CHERE_INVOKING</span></code> makes sure the shell stays in the current working directory. -As investigated recently, the <code class="docutils literal notranslate"><span class="pre">C:\msys64\usr\bin``must</span> <span class="pre">also</span> <span class="pre">be</span> <span class="pre">added</span> <span class="pre">to</span> <span class="pre">the</span> <span class="pre">``PATH</span></code> environment variable in order to resolve dependencies to <code class="docutils literal notranslate"><span class="pre">cygpath.exe</span></code>.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>If <code class="docutils literal notranslate"><span class="pre">C:\msys64</span></code> is not already listed in <code class="docutils literal notranslate"><span class="pre">PATH</span></code> variable, then add <code class="docutils literal notranslate"><span class="pre">C:\msys64</span></code> in <code class="docutils literal notranslate"><span class="pre">PATH</span></code> variable before adding <code class="docutils literal notranslate"><span class="pre">C:\msys64\usr\bin</span></code> to the <code class="docutils literal notranslate"><span class="pre">PATH</span></code> variable. -If there are any other Unix like environments installed on Windows operating systems (example: cygwin), there might even be file collisions when calling certain cmake commands. -Therefore, it is suggested to add <code class="docutils literal notranslate"><span class="pre">C:\msys64</span></code> in <code class="docutils literal notranslate"><span class="pre">PATH</span></code> variable before any other Unix like environmental calls.</p> -</div> -<p>Either set environment variable through the <code class="docutils literal notranslate"><span class="pre">Windows</span> <span class="pre">PowerShell</span></code></p> -<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="c1"># check if set</span> -<span class="nb">echo</span><span class="w"> </span><span class="si">${</span><span class="nv">env</span><span class="p">:</span><span class="nv">path</span><span class="si">}</span> -<span class="nb">echo</span><span class="w"> </span><span class="si">${</span><span class="nv">env</span><span class="p">:</span><span class="nv">MSYSTEM</span><span class="si">}</span> -<span class="nb">echo</span><span class="w"> </span><span class="si">${</span><span class="nv">env</span><span class="p">:</span><span class="nv">CHERE_INVOKING</span><span class="si">}</span> - -<span class="c1"># if not</span> -setx<span class="w"> </span>path<span class="w"> </span><span class="s2">"%PATH%;C:\msys64\usr\bin"</span> -setx<span class="w"> </span>MSYSTEM<span class="w"> </span><span class="s2">"MINGW64"</span> -setx<span class="w"> </span>CHERE_INVOKING<span class="w"> </span><span class="s2">"1"</span> -</pre></div> -</div> -<p>or</p> -<ol class="arabic simple"> -<li><p>Open the start search</p></li> -<li><p>Type in “env†and choose “Edit the system environment variablesâ€</p></li> -<li><p>Choose “Environment Variables…â€</p></li> -<li><p>Set the environment variables:</p> -<ol class="lowerroman simple"> -<li><p>MSYSTEM=MINGW64</p></li> -<li><p>CHERE_INVOKING=1</p></li> -<li><p>Add <code class="docutils literal notranslate"><span class="pre">C:\msys64\usr\bin</span></code> to PATH</p></li> -</ol> -</li> -</ol> -<p>Visual Studio Code needs to be reloaded/restarted after the path update.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>An optimal solution would be to set the system environment variables in VSCode under <code class="docutils literal notranslate"><span class="pre">settings.json</span></code>. This is currently not possible. Please contact us if you find a better solution.</p> -</div> -</section> -<section id="build-kit"> -<h3>Build Kit<a class="headerlink" href="#build-kit" title="Link to this heading">ïƒ</a></h3> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-2-2-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-2-2-0" name="2-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-2-2-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-2-2-1" name="2-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-2-2-0" class="sphinx-tabs-panel" id="panel-2-2-0" name="2-0" role="tabpanel" tabindex="0"><p><strong>Add and select MSYS2/MinGW64 Build Kit:</strong></p> -<ol class="arabic"> -<li><p>Execute <code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code>: <code class="docutils literal notranslate"><span class="pre">CMake:</span> <span class="pre">Edit</span> <span class="pre">User-Local</span> <span class="pre">CMake</span> <span class="pre">Kits</span></code></p></li> -<li><p>Insert/Update:</p> -<div class="literal-block-wrapper docutils container" id="id4"> -<div class="code-block-caption"><span class="caption-text">cmake-tools-kits.json</span><a class="headerlink" href="#id4" title="Link to this code">ïƒ</a></div> -<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">[</span> -<span class="linenos"> 2</span><span class="w"> </span><span class="p">{</span> -<span class="linenos"> 3</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"MinGW64"</span><span class="p">,</span> -<span class="linenos"> 4</span><span class="w"> </span><span class="s2">"preferredGenerator"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="linenos"> 5</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"MSYS Makefiles"</span> -<span class="linenos"> 6</span><span class="w"> </span><span class="p">},</span> -<span class="linenos"> 7</span><span class="w"> </span><span class="s2">"environmentVariables"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="s2">"PATH"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:mingw64.path}"</span><span class="w"> </span><span class="p">},</span> -<span class="linenos"> 8</span><span class="w"> </span><span class="s2">"compilers"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="linenos"> 9</span><span class="w"> </span><span class="s2">"C"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:mingw64.cc.exe}"</span><span class="p">,</span> -<span class="linenos">10</span><span class="w"> </span><span class="s2">"CXX"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:mingw64.cxx.exe}"</span><span class="p">,</span> -<span class="linenos">11</span><span class="w"> </span><span class="s2">"Fortran"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:mingw64.fc.exe}"</span> -<span class="linenos">12</span><span class="w"> </span><span class="p">},</span> -<span class="linenos">13</span><span class="w"> </span><span class="s2">"keep"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> -<span class="linenos">14</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">15</span><span class="p">]</span> -</pre></div> -</div> -</div> -<p><a class="reference download internal" download="" href="../../_downloads/0434e3ab992f6eea8e1df4ae553aa93d/cmake-tools-kits.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> -</li> -<li><p><code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code>: <code class="docutils literal notranslate"><span class="pre">CMake:</span> <span class="pre">Select</span> <span class="pre">a</span> <span class="pre">Kit</span></code> = <code class="docutils literal notranslate"><span class="pre">MinGW64</span></code></p></li> -</ol> -</div><div aria-labelledby="tab-2-2-1" class="sphinx-tabs-panel" hidden="true" id="panel-2-2-1" name="2-1" role="tabpanel" tabindex="0"><p><strong>Select System Build Kit:</strong></p> -<p><code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code>: <code class="docutils literal notranslate"><span class="pre">CMake:</span> <span class="pre">Select</span> <span class="pre">a</span> <span class="pre">Kit</span></code> = <code class="docutils literal notranslate"><span class="pre">GCC</span> <span class="pre">10.2.0</span></code></p> -<p>See also <a class="reference internal" href="../../installation_guide/20_install_prerequisites.html#prerequisites"><span class="std std-ref">Installing Prerequisites</span></a>.</p> -</div></div> -</section> -<section id="user-settings"> -<span id="vscode-user-settings"></span><h3>User Settings<a class="headerlink" href="#user-settings" title="Link to this heading">ïƒ</a></h3> -<ol class="arabic"> -<li><p>Execute <code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code>: <code class="docutils literal notranslate"><span class="pre">Preferences</span> <span class="pre">Open</span> <span class="pre">Workspace</span> <span class="pre">Settings</span> <span class="pre">(JSON)</span></code></p></li> -<li><p>Insert/Update:</p> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-3-3-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-3-3-0" name="3-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-3-3-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-3-3-1" name="3-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-3-3-0" class="sphinx-tabs-panel" id="panel-3-3-0" name="3-0" role="tabpanel" tabindex="0"><div class="literal-block-wrapper docutils container" id="id5"> -<div class="code-block-caption"><span class="caption-text">settings.json</span><a class="headerlink" href="#id5" title="Link to this code">ïƒ</a></div> -<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">{</span> -<span class="linenos"> 2</span><span class="w"> </span><span class="c1">//</span> -<span class="linenos"> 3</span><span class="w"> </span><span class="c1">// CMAKE</span> -<span class="linenos"> 4</span><span class="w"> </span><span class="c1">//</span> -<span class="linenos"> 5</span><span class="w"> </span><span class="c1">// Following settings are from the MSYS2 extension documentation</span> -<span class="linenos"> 6</span><span class="w"> </span><span class="s2">"cmake.cmakePath"</span><span class="o">:</span><span class="w"> </span><span class="s2">"C:\\msys64\\mingw64\\bin\\cmake.exe"</span><span class="p">,</span> -<span class="linenos"> 7</span><span class="w"> </span><span class="s2">"cmake.preferredGenerators"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos"> 8</span><span class="w"> </span><span class="s2">"MSYS Makefiles"</span> -<span class="linenos"> 9</span><span class="w"> </span><span class="p">],</span> -<span class="linenos">10</span><span class="w"> </span><span class="s2">"cmake.configureSettings"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">11</span><span class="w"> </span><span class="s2">"CMAKE_MAKE_PROGRAM"</span><span class="o">:</span><span class="w"> </span><span class="s2">"C:\\msys64\\mingw64\\bin\\make.exe"</span><span class="p">,</span> -<span class="linenos">12</span><span class="w"> </span><span class="s2">"CMAKE_PREFIX_PATH"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos">13</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/Yase"</span><span class="p">,</span> -<span class="linenos">14</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/FMILibrary"</span><span class="p">,</span> -<span class="linenos">15</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/MantleAPI"</span><span class="p">,</span> -<span class="linenos">16</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/osi"</span><span class="p">,</span> -<span class="linenos">17</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/protobuf"</span><span class="p">,</span> -<span class="linenos">18</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/protobuf-shared"</span><span class="p">,</span> -<span class="linenos">19</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/googletest"</span><span class="p">,</span> -<span class="linenos">20</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/minizip"</span><span class="p">,</span> -<span class="linenos">21</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/openscenario_engine/release"</span><span class="p">,</span> -<span class="linenos">22</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/openscenario_api"</span><span class="p">,</span> -<span class="linenos">23</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/zlib"</span><span class="p">,</span> -<span class="linenos">24</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/open-simulation-interface"</span><span class="p">,</span> -<span class="linenos">25</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/units"</span><span class="p">,</span> -<span class="linenos">26</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/scmThirdParty/win64/stochastics"</span><span class="p">,</span> -<span class="linenos">27</span><span class="w"> </span><span class="s2">"C:/msys64/mingw64/bin"</span> -<span class="linenos">28</span><span class="w"> </span><span class="p">],</span> -<span class="linenos">29</span><span class="w"> </span><span class="s2">"CMAKE_INSTALL_PREFIX"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${workspaceRoot}/bin/core"</span><span class="p">,</span> -<span class="linenos">30</span><span class="w"> </span><span class="s2">"CMAKE_BUILD_TYPE"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Debug"</span><span class="p">,</span> -<span class="linenos">31</span><span class="w"> </span><span class="s2">"USE_CCACHE"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">32</span><span class="w"> </span><span class="s2">"WITH_DEBUG_POSTFIX"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">33</span><span class="w"> </span><span class="s2">"OPENPASS_ADJUST_OUTPUT"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">34</span><span class="w"> </span><span class="s2">"WITH_API_DOC"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">35</span><span class="w"> </span><span class="s2">"WITH_DOC"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">36</span><span class="w"> </span><span class="s2">"INSTALL_EXTRA_RUNTIME_DEPS"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">37</span><span class="w"> </span><span class="s2">"INSTALL_SYSTEM_RUNTIME_DEPS"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">38</span><span class="w"> </span><span class="c1">// For integration with IntelliSense (see c_cpp_properties.json)</span> -<span class="linenos">39</span><span class="w"> </span><span class="s2">"CMAKE_EXPORT_COMPILE_COMMANDS"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> -<span class="linenos">40</span><span class="w"> </span><span class="p">},</span> -<span class="linenos">41</span><span class="w"> </span><span class="c1">// Optional: Adjust to your needs</span> -<span class="linenos">42</span><span class="w"> </span><span class="s2">"cmake.parallelJobs"</span><span class="o">:</span><span class="w"> </span><span class="mf">4</span><span class="p">,</span> -<span class="linenos">43</span><span class="w"> </span><span class="c1">//</span> -<span class="linenos">44</span><span class="w"> </span><span class="c1">// TESTMATE</span> -<span class="linenos">45</span><span class="w"> </span><span class="c1">//</span> -<span class="linenos">46</span><span class="w"> </span><span class="c1">// Optional: Adjust to your needs</span> -<span class="linenos">47</span><span class="w"> </span><span class="s2">"testMate.cpp.test.parallelExecutionLimit"</span><span class="o">:</span><span class="w"> </span><span class="mf">4</span><span class="p">,</span> -<span class="linenos">48</span><span class="w"> </span><span class="s2">"testMate.cpp.test.parallelExecutionOfExecutableLimit"</span><span class="o">:</span><span class="w"> </span><span class="mf">2</span><span class="p">,</span> -<span class="linenos">49</span><span class="w"> </span><span class="c1">// Optional: Set, if you like to debug test discovery and test start issues</span> -<span class="linenos">50</span><span class="w"> </span><span class="s2">"testMate.cpp.log.logfile"</span><span class="o">:</span><span class="w"> </span><span class="s2">"C:\\temp\\cpp.testmate.log"</span><span class="p">,</span> -<span class="linenos">51</span><span class="w"> </span><span class="c1">// Optional: As CTest triggers the install step, dependencies between test executables</span> -<span class="linenos">52</span><span class="w"> </span><span class="c1">// and openpass libraries can be resolved by linking text executables to</span> -<span class="linenos">53</span><span class="w"> </span><span class="c1">// openpass install directory</span> -<span class="linenos">54</span><span class="w"> </span><span class="c1">// Alternative: Check dependencies of test executables by 'ldd <_Tests.exe> and copy</span> -<span class="linenos">55</span><span class="w"> </span><span class="c1">// libraries right next to test executable within build direcory</span> -<span class="linenos">56</span><span class="w"> </span><span class="s2">"testMate.cpp.test.advancedExecutables"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos">57</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">58</span><span class="w"> </span><span class="s2">"pattern"</span><span class="o">:</span><span class="w"> </span><span class="s2">"build/**/*{tests,Tests,TESTS}*"</span><span class="p">,</span> -<span class="linenos">59</span><span class="w"> </span><span class="s2">"env"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">60</span><span class="w"> </span><span class="s2">"Path"</span><span class="o">:</span><span class="w"> </span><span class="s2">"C:\\msys64\\mingw64\\bin;${workspaceFolder}\\bin\\core;${workspaceFolder}\\bin\\core\\lib;${os_env:PATH};${workspaceFolder}\\deps\\thirdParty\\win64\\FMILibrary\\lib;${workspaceFolder}\\deps\\thirdParty\\win64\\osi\\lib\\osi3"</span> -<span class="linenos">61</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">62</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">63</span><span class="w"> </span><span class="p">],</span> -<span class="linenos">64</span><span class="w"> </span><span class="c1">//</span> -<span class="linenos">65</span><span class="w"> </span><span class="c1">// VSCODE</span> -<span class="linenos">66</span><span class="w"> </span><span class="c1">//</span> -<span class="linenos">67</span><span class="w"> </span><span class="c1">// Optional: Integration of MinGW64 Terminal in VS Code</span> -<span class="linenos">68</span><span class="w"> </span><span class="s2">"terminal.integrated.profiles.windows"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">69</span><span class="w"> </span><span class="s2">"MinGW64"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">70</span><span class="w"> </span><span class="s2">"overrideName"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">71</span><span class="w"> </span><span class="s2">"path"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos">72</span><span class="w"> </span><span class="s2">"C:\\msys64\\usr\\bin\\bash.exe"</span> -<span class="linenos">73</span><span class="w"> </span><span class="p">],</span> -<span class="linenos">74</span><span class="w"> </span><span class="s2">"args"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"--login"</span><span class="p">,</span><span class="w"> </span><span class="s2">"-i"</span><span class="p">],</span> -<span class="linenos">75</span><span class="w"> </span><span class="s2">"icon"</span><span class="o">:</span><span class="w"> </span><span class="s2">"terminal-bash"</span><span class="p">,</span> -<span class="linenos">76</span><span class="w"> </span><span class="s2">"env"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">77</span><span class="w"> </span><span class="s2">"MSYSTEM"</span><span class="o">:</span><span class="w"> </span><span class="s2">"MINGW64"</span><span class="p">,</span> -<span class="linenos">78</span><span class="w"> </span><span class="s2">"CHERE_INVOKING"</span><span class="o">:</span><span class="w"> </span><span class="s2">"1"</span><span class="p">,</span> -<span class="linenos">79</span><span class="w"> </span><span class="s2">"MSYS2_PATH_TYPE"</span><span class="o">:</span><span class="w"> </span><span class="s2">"inherit"</span> -<span class="linenos">80</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">81</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">82</span><span class="w"> </span><span class="p">},</span> -<span class="linenos">83</span><span class="w"> </span><span class="s2">"terminal.integrated.defaultProfile.windows"</span><span class="o">:</span><span class="w"> </span><span class="s2">"MinGW64"</span><span class="p">,</span> -<span class="linenos">84</span><span class="w"> </span><span class="c1">// Enforce usage of .clang-format of modified code</span> -<span class="linenos">85</span><span class="w"> </span><span class="s2">"editor.formatOnSave"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">86</span><span class="w"> </span><span class="s2">"editor.formatOnSaveMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"modifications"</span><span class="p">,</span> -<span class="linenos">87</span><span class="w"> </span><span class="c1">// EOL and whitespace enforcement</span> -<span class="linenos">88</span><span class="w"> </span><span class="s2">"editor.detectIndentation"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">89</span><span class="w"> </span><span class="s2">"editor.insertSpaces"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">90</span><span class="w"> </span><span class="s2">"editor.renderFinalNewline"</span><span class="o">:</span><span class="w"> </span><span class="s2">"dimmed"</span><span class="p">,</span> -<span class="linenos">91</span><span class="w"> </span><span class="s2">"files.insertFinalNewline"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">92</span><span class="w"> </span><span class="s2">"files.trimFinalNewlines"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">93</span><span class="w"> </span><span class="s2">"files.trimTrailingWhitespace"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> -<span class="linenos">94</span><span class="p">}</span> -</pre></div> -</div> -</div> -<p><a class="reference download internal" download="" href="../../_downloads/cf3a708e6048855aab4490b408d22f7c/settings.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> -</div><div aria-labelledby="tab-3-3-1" class="sphinx-tabs-panel" hidden="true" id="panel-3-3-1" name="3-1" role="tabpanel" tabindex="0"><div class="literal-block-wrapper docutils container" id="id6"> -<div class="code-block-caption"><span class="caption-text">settings.json</span><a class="headerlink" href="#id6" title="Link to this code">ïƒ</a></div> -<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">{</span> -<span class="linenos"> 2</span><span class="w"> </span><span class="c1">//</span> -<span class="linenos"> 3</span><span class="w"> </span><span class="c1">// CMAKE</span> -<span class="linenos"> 4</span><span class="w"> </span><span class="c1">//</span> -<span class="linenos"> 5</span><span class="w"> </span><span class="c1">// Optional: Adjust to your needs</span> -<span class="linenos"> 6</span><span class="w"> </span><span class="s2">"cmake.parallelJobs"</span><span class="o">:</span><span class="w"> </span><span class="mf">4</span><span class="p">,</span> -<span class="linenos"> 7</span><span class="w"> </span><span class="c1">// See openPASS documentation for individual WITH_* settings</span> -<span class="linenos"> 8</span><span class="w"> </span><span class="s2">"cmake.configureSettings"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> -<span class="linenos"> 9</span><span class="w"> </span><span class="c1">// Adjust paths depending on your system</span> -<span class="linenos">10</span><span class="w"> </span><span class="s2">"CMAKE_PREFIX_PATH"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos">11</span><span class="w"> </span><span class="s2">"/usr/lib/qt5/bin"</span><span class="p">,</span> -<span class="linenos">12</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/Yase"</span><span class="p">,</span> -<span class="linenos">13</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/scmThirdParty/linux64/stochastics"</span><span class="p">,</span> -<span class="linenos">14</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/MantleAPI"</span><span class="p">,</span> -<span class="linenos">15</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/FMILibrary"</span><span class="p">,</span> -<span class="linenos">16</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/protobuf"</span><span class="p">,</span> -<span class="linenos">17</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/protobuf-shared"</span><span class="p">,</span> -<span class="linenos">18</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/googletest"</span><span class="p">,</span> -<span class="linenos">19</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/minizip"</span><span class="p">,</span> -<span class="linenos">20</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/openscenario_api"</span><span class="p">,</span> -<span class="linenos">21</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/openscenario_engine/release"</span><span class="p">,</span> -<span class="linenos">22</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/open-simulation-interface"</span><span class="p">,</span> -<span class="linenos">23</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/zlib"</span><span class="p">,</span> -<span class="linenos">24</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/units"</span> -<span class="linenos">25</span><span class="w"> </span><span class="p">],</span> -<span class="linenos">26</span><span class="w"> </span><span class="s2">"CMAKE_INSTALL_PREFIX"</span><span class="o">:</span><span class="w"> </span><span class="s2">"/usr/local/openPASS/bin/core"</span><span class="p">,</span> -<span class="linenos">27</span><span class="w"> </span><span class="s2">"CMAKE_BUILD_TYPE"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Debug"</span><span class="p">,</span> -<span class="linenos">28</span><span class="w"> </span><span class="s2">"USE_CCACHE"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">29</span><span class="w"> </span><span class="s2">"WITH_DEBUG_POSTFIX"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">30</span><span class="w"> </span><span class="s2">"OPENPASS_ADJUST_OUTPUT"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">31</span><span class="w"> </span><span class="s2">"INSTALL_EXTRA_RUNTIME_DEPS"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">32</span><span class="w"> </span><span class="s2">"WITH_API_DOC"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">33</span><span class="w"> </span><span class="s2">"WITH_DOC"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">34</span><span class="w"> </span><span class="s2">"WITH_TESTS"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">35</span><span class="w"> </span><span class="c1">// For integration with IntelliSense (see c_cpp_properties.json)</span> -<span class="linenos">36</span><span class="w"> </span><span class="s2">"CMAKE_EXPORT_COMPILE_COMMANDS"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> -<span class="linenos">37</span><span class="w"> </span><span class="p">},</span> -<span class="linenos">38</span><span class="w"> </span><span class="c1">//</span> -<span class="linenos">39</span><span class="w"> </span><span class="c1">// TESTMATE</span> -<span class="linenos">40</span><span class="w"> </span><span class="c1">//</span> -<span class="linenos">41</span><span class="w"> </span><span class="c1">// Optional: Adjust to your needs</span> -<span class="linenos">42</span><span class="w"> </span><span class="s2">"testMate.cpp.test.parallelExecutionLimit"</span><span class="o">:</span><span class="w"> </span><span class="mf">4</span><span class="p">,</span> -<span class="linenos">43</span><span class="w"> </span><span class="s2">"testMate.cpp.test.parallelExecutionOfExecutableLimit"</span><span class="o">:</span><span class="w"> </span><span class="mf">2</span><span class="p">,</span> -<span class="linenos">44</span><span class="w"> </span><span class="c1">// Optional: Set, if you like to debug test discovery and test start issues</span> -<span class="linenos">45</span><span class="w"> </span><span class="s2">"testMate.cpp.log.logfile"</span><span class="o">:</span><span class="w"> </span><span class="s2">"/tmp/cpp.testmate.log"</span><span class="p">,</span> -<span class="linenos">46</span><span class="w"> </span><span class="c1">//</span> -<span class="linenos">47</span><span class="w"> </span><span class="c1">// VSCODE</span> -<span class="linenos">48</span><span class="w"> </span><span class="c1">//</span> -<span class="linenos">49</span><span class="w"> </span><span class="c1">// Enforce usage of .clang-format of modified code</span> -<span class="linenos">50</span><span class="w"> </span><span class="s2">"editor.formatOnSave"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">51</span><span class="w"> </span><span class="s2">"editor.formatOnSaveMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"modifications"</span><span class="p">,</span> -<span class="linenos">52</span><span class="w"> </span><span class="c1">// EOL and whitespace enforcement</span> -<span class="linenos">53</span><span class="w"> </span><span class="s2">"editor.detectIndentation"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">54</span><span class="w"> </span><span class="s2">"editor.insertSpaces"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">55</span><span class="w"> </span><span class="s2">"editor.renderFinalNewline"</span><span class="o">:</span><span class="w"> </span><span class="s2">"dimmed"</span><span class="p">,</span> -<span class="linenos">56</span><span class="w"> </span><span class="s2">"editor.renderWhitespace"</span><span class="o">:</span><span class="w"> </span><span class="s2">"all"</span><span class="p">,</span> -<span class="linenos">57</span><span class="w"> </span><span class="s2">"editor.trimAutoWhitespace"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">58</span><span class="w"> </span><span class="s2">"files.insertFinalNewline"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">59</span><span class="w"> </span><span class="s2">"files.trimFinalNewlines"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> -<span class="linenos">60</span><span class="w"> </span><span class="s2">"files.trimTrailingWhitespace"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> -<span class="linenos">61</span><span class="p">}</span> -</pre></div> -</div> -</div> -<p><a class="reference download internal" download="" href="../../_downloads/631d97fb2e9fb8f8491268ef3e6ec616/settings.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> -</div></div> -</li> -</ol> -</section> -<section id="c-and-intellisense"> -<h3>C++ and IntelliSense<a class="headerlink" href="#c-and-intellisense" title="Link to this heading">ïƒ</a></h3> -<ol class="arabic"> -<li><p>Execute <code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code>: <code class="docutils literal notranslate"><span class="pre">C/C++:</span> <span class="pre">Edit</span> <span class="pre">Configurations</span> <span class="pre">(JSON)</span></code></p></li> -<li><div class="literal-block-wrapper docutils container" id="id7"> -<div class="code-block-caption"><span class="caption-text">c_cpp_properties.json</span><a class="headerlink" href="#id7" title="Link to this code">ïƒ</a></div> -<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">{</span> -<span class="linenos"> 2</span><span class="w"> </span><span class="s2">"configurations"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos"> 3</span><span class="w"> </span><span class="p">{</span> -<span class="linenos"> 4</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"openpass"</span><span class="p">,</span> -<span class="linenos"> 5</span><span class="w"> </span><span class="s2">"cStandard"</span><span class="o">:</span><span class="w"> </span><span class="s2">"c99"</span><span class="p">,</span> -<span class="linenos"> 6</span><span class="w"> </span><span class="s2">"cppStandard"</span><span class="o">:</span><span class="w"> </span><span class="s2">"c++17"</span><span class="p">,</span> -<span class="linenos"> 7</span><span class="w"> </span><span class="s2">"configurationProvider"</span><span class="o">:</span><span class="w"> </span><span class="s2">"ms-vscode.cmake-tools"</span><span class="p">,</span> -<span class="linenos"> 8</span><span class="w"> </span><span class="s2">"compileCommands"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${workspaceFolder}/build/compile_commands.json"</span><span class="p">,</span> -<span class="linenos"> 9</span><span class="w"> </span><span class="s2">"intelliSenseMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"linux-gcc-x64"</span> -<span class="linenos">10</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">11</span><span class="w"> </span><span class="p">],</span> -<span class="linenos">12</span><span class="w"> </span><span class="s2">"version"</span><span class="o">:</span><span class="w"> </span><span class="mf">4</span> -<span class="linenos">13</span><span class="p">}</span> -</pre></div> -</div> -</div> -<p><a class="reference download internal" download="" href="../../_downloads/dca649c6abf7935b694a9b820bb4efc5/c_cpp_properties.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> -</li> -</ol> -</section> -<section id="configure-the-build"> -<h3>Configure the Build<a class="headerlink" href="#configure-the-build" title="Link to this heading">ïƒ</a></h3> -<p>Execute <code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code>: <code class="docutils literal notranslate"><span class="pre">CMake:</span> <span class="pre">Configure</span></code></p> -<p>CMake should now be able to configure the project. -If not, cmake should give you at least a hint, what’s missing (normally external libraries). -Read <a class="reference internal" href="../../installation_guide/further_guidance/10_cmake.html#cmake"><span class="std std-ref">CMake Variables and Options</span></a> or <a class="reference internal" href="../../installation_guide/20_install_prerequisites.html#prerequisites"><span class="std std-ref">Installing Prerequisites</span></a> for more information.</p> -<div class="admonition-cmake admonition"> -<p class="admonition-title">CMake</p> -<p>Some changes such as changing the build type (Debug/Release) will cause CMake to updates the configuration automatically. -Other changes won’t trigger an update, such as changing the paths to libraries (<cite>CMAKE_PREFIX_PATH</cite>), the cmake cache needs to be cleared before reconfiguration: -<code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code> > <code class="docutils literal notranslate"><span class="pre">CMake:</span> <span class="pre">Delete</span> <span class="pre">Cache</span> <span class="pre">and</span> <span class="pre">Reconfigure</span></code></p> -</div> -</section> -<section id="debug-targets"> -<h3>Debug Targets<a class="headerlink" href="#debug-targets" title="Link to this heading">ïƒ</a></h3> -<p>CMake Tools and C++ Testmate automatically use custom launch configurations, if available. -When using the debugging functionality, the according executable will be executed from where they are built (per default inside the <code class="docutils literal notranslate"><span class="pre">build</span></code> folder).</p> -<ul> -<li><p>This is acceptable for unit test, which do not require openPASS specific libraries. -The corresponding config is <code class="docutils literal notranslate"><span class="pre">CMake</span> <span class="pre">Target</span></code>.</p></li> -<li><p>For the core, located at <code class="docutils literal notranslate"><span class="pre">./build/sim/src/core/opSimulation/opSimulation</span></code>, this does not work, as no libraries and no configurations are available. -As a solution, a second debug target <code class="docutils literal notranslate"><span class="pre">opsimulation</span></code> points at the installed executable instead.</p> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>Don’t forget to run the target <code class="docutils literal notranslate"><span class="pre">install</span></code> before debugging .</p> -</div> -</li> -</ul> -<ol class="arabic simple"> -<li><p>Got to “Run and Debug†(<code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+D</span></code>) and <em>create a launch.json file</em>.</p></li> -<li><p>Insert/Update:</p></li> -</ol> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-4-4-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-4-4-0" name="4-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-4-4-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-4-4-1" name="4-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-4-4-0" class="sphinx-tabs-panel" id="panel-4-4-0" name="4-0" role="tabpanel" tabindex="0"><div class="literal-block-wrapper docutils container" id="id8"> -<div class="code-block-caption"><span class="caption-text">launch.json</span><a class="headerlink" href="#id8" title="Link to this code">ïƒ</a></div> -<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">{</span> -<span class="linenos"> 2</span><span class="w"> </span><span class="s2">"version"</span><span class="o">:</span><span class="w"> </span><span class="s2">"0.2.0"</span><span class="p">,</span> -<span class="linenos"> 3</span><span class="w"> </span><span class="s2">"configurations"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos"> 4</span><span class="w"> </span><span class="p">{</span> -<span class="linenos"> 5</span><span class="w"> </span><span class="c1">// FOR TESTMATE (SELECTED TEST) AND CMAKE (DEBUG CMAKE TARGET)</span> -<span class="linenos"> 6</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"CMake Target"</span><span class="p">,</span> -<span class="linenos"> 7</span><span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"cppdbg"</span><span class="p">,</span> -<span class="linenos"> 8</span><span class="w"> </span><span class="s2">"request"</span><span class="o">:</span><span class="w"> </span><span class="s2">"launch"</span><span class="p">,</span> -<span class="linenos"> 9</span><span class="w"> </span><span class="s2">"program"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:cmake.launchTargetPath}"</span><span class="p">,</span> -<span class="linenos">10</span><span class="w"> </span><span class="s2">"args"</span><span class="o">:</span><span class="w"> </span><span class="p">[],</span> -<span class="linenos">11</span><span class="w"> </span><span class="s2">"stopAtEntry"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">12</span><span class="w"> </span><span class="s2">"cwd"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${workspaceFolder}"</span><span class="p">,</span> -<span class="linenos">13</span><span class="w"> </span><span class="s2">"environment"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos">14</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">15</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"PATH"</span><span class="p">,</span> -<span class="linenos">16</span><span class="w"> </span><span class="s2">"value"</span><span class="o">:</span><span class="w"> </span><span class="s2">"$PATH:${command:msys2.root}\\bin;${command:mingw64.root}\\x86_64-w64-mingw32\\lib${command:cmake.buildkit.launch.path}"</span> -<span class="linenos">17</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">18</span><span class="w"> </span><span class="p">],</span> -<span class="linenos">19</span><span class="w"> </span><span class="s2">"externalConsole"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">20</span><span class="w"> </span><span class="s2">"MIMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"gdb"</span><span class="p">,</span> -<span class="linenos">21</span><span class="w"> </span><span class="s2">"miDebuggerPath"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:cmake.buildkit.gdb.exe}"</span><span class="p">,</span> -<span class="linenos">22</span><span class="w"> </span><span class="s2">"setupCommands"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos">23</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">24</span><span class="w"> </span><span class="s2">"description"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Enable pretty-printing for gdb"</span><span class="p">,</span> -<span class="linenos">25</span><span class="w"> </span><span class="s2">"text"</span><span class="o">:</span><span class="w"> </span><span class="s2">"-enable-pretty-printing"</span><span class="p">,</span> -<span class="linenos">26</span><span class="w"> </span><span class="s2">"ignoreFailures"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> -<span class="linenos">27</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">28</span><span class="w"> </span><span class="p">]</span> -<span class="linenos">29</span><span class="w"> </span><span class="p">},</span> -<span class="linenos">30</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">31</span><span class="w"> </span><span class="c1">// FOR DEBUGGING opSimulation (DON'T FORGET TO CALL make install)</span> -<span class="linenos">32</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"opsimulation"</span><span class="p">,</span> -<span class="linenos">33</span><span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"cppdbg"</span><span class="p">,</span> -<span class="linenos">34</span><span class="w"> </span><span class="s2">"request"</span><span class="o">:</span><span class="w"> </span><span class="s2">"launch"</span><span class="p">,</span> -<span class="linenos">35</span><span class="w"> </span><span class="s2">"program"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${workspaceFolder}\\bin\\core\\opSimulation.exe"</span><span class="p">,</span> -<span class="linenos">36</span><span class="w"> </span><span class="s2">"args"</span><span class="o">:</span><span class="w"> </span><span class="p">[],</span> -<span class="linenos">37</span><span class="w"> </span><span class="s2">"stopAtEntry"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">38</span><span class="w"> </span><span class="s2">"cwd"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${workspaceFolder}\\bin\\core"</span><span class="p">,</span> -<span class="linenos">39</span><span class="w"> </span><span class="s2">"environment"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos">40</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">41</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"PATH"</span><span class="p">,</span> -<span class="linenos">42</span><span class="w"> </span><span class="s2">"value"</span><span class="o">:</span><span class="w"> </span><span class="s2">"$PATH:${command:msys2.root}\\bin;${command:mingw64.root}\\x86_64-w64-mingw32\\lib${command:cmake.buildkit.launch.path}"</span> -<span class="linenos">43</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">44</span><span class="w"> </span><span class="p">],</span> -<span class="linenos">45</span><span class="w"> </span><span class="s2">"externalConsole"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">46</span><span class="w"> </span><span class="s2">"MIMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"gdb"</span><span class="p">,</span> -<span class="linenos">47</span><span class="w"> </span><span class="s2">"miDebuggerPath"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:cmake.buildkit.gdb.exe}"</span><span class="p">,</span> -<span class="linenos">48</span><span class="w"> </span><span class="s2">"setupCommands"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos">49</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">50</span><span class="w"> </span><span class="s2">"description"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Enable pretty-printing for gdb"</span><span class="p">,</span> -<span class="linenos">51</span><span class="w"> </span><span class="s2">"text"</span><span class="o">:</span><span class="w"> </span><span class="s2">"-enable-pretty-printing"</span><span class="p">,</span> -<span class="linenos">52</span><span class="w"> </span><span class="s2">"ignoreFailures"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> -<span class="linenos">53</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">54</span><span class="w"> </span><span class="p">]</span> -<span class="linenos">55</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">56</span><span class="w"> </span><span class="p">]</span> -<span class="linenos">57</span><span class="p">}</span> -</pre></div> -</div> -</div> -<p><a class="reference download internal" download="" href="../../_downloads/29dd021e0bdb423fc1a0b9b1d8df02f7/launch.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> -</div><div aria-labelledby="tab-4-4-1" class="sphinx-tabs-panel" hidden="true" id="panel-4-4-1" name="4-1" role="tabpanel" tabindex="0"><div class="literal-block-wrapper docutils container" id="id9"> -<div class="code-block-caption"><span class="caption-text">launch.json</span><a class="headerlink" href="#id9" title="Link to this code">ïƒ</a></div> -<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">{</span> -<span class="linenos"> 2</span><span class="w"> </span><span class="s2">"version"</span><span class="o">:</span><span class="w"> </span><span class="s2">"0.2.0"</span><span class="p">,</span> -<span class="linenos"> 3</span><span class="w"> </span><span class="s2">"configurations"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos"> 4</span><span class="w"> </span><span class="p">{</span> -<span class="linenos"> 5</span><span class="w"> </span><span class="c1">// FOR TESTMATE (SELECTED TEST) AND CMAKE (DEBUG CMAKE TARGET)</span> -<span class="linenos"> 6</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"CMake Target"</span><span class="p">,</span> -<span class="linenos"> 7</span><span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"cppdbg"</span><span class="p">,</span> -<span class="linenos"> 8</span><span class="w"> </span><span class="s2">"request"</span><span class="o">:</span><span class="w"> </span><span class="s2">"launch"</span><span class="p">,</span> -<span class="linenos"> 9</span><span class="w"> </span><span class="s2">"program"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:cmake.launchTargetPath}"</span><span class="p">,</span> -<span class="linenos">10</span><span class="w"> </span><span class="s2">"args"</span><span class="o">:</span><span class="w"> </span><span class="p">[],</span> -<span class="linenos">11</span><span class="w"> </span><span class="s2">"stopAtEntry"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">12</span><span class="w"> </span><span class="s2">"cwd"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${workspaceFolder}"</span><span class="p">,</span> -<span class="linenos">13</span><span class="w"> </span><span class="s2">"externalConsole"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">14</span><span class="w"> </span><span class="s2">"MIMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"gdb"</span><span class="p">,</span> -<span class="linenos">15</span><span class="w"> </span><span class="s2">"setupCommands"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos">16</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">17</span><span class="w"> </span><span class="s2">"description"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Enable pretty-printing for gdb"</span><span class="p">,</span> -<span class="linenos">18</span><span class="w"> </span><span class="s2">"text"</span><span class="o">:</span><span class="w"> </span><span class="s2">"-enable-pretty-printing"</span><span class="p">,</span> -<span class="linenos">19</span><span class="w"> </span><span class="s2">"ignoreFailures"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> -<span class="linenos">20</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">21</span><span class="w"> </span><span class="p">]</span> -<span class="linenos">22</span><span class="w"> </span><span class="p">},</span> -<span class="linenos">23</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">24</span><span class="w"> </span><span class="c1">// FOR DEBUGGING opSimulation (DON'T FORGET TO CALL make install)</span> -<span class="linenos">25</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"opsimulation"</span><span class="p">,</span> -<span class="linenos">26</span><span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"cppdbg"</span><span class="p">,</span> -<span class="linenos">27</span><span class="w"> </span><span class="s2">"request"</span><span class="o">:</span><span class="w"> </span><span class="s2">"launch"</span><span class="p">,</span> -<span class="linenos">28</span><span class="w"> </span><span class="s2">"program"</span><span class="o">:</span><span class="w"> </span><span class="s2">"/usr/local/openPASS/bin/core/opSimulation"</span><span class="p">,</span> -<span class="linenos">29</span><span class="w"> </span><span class="s2">"args"</span><span class="o">:</span><span class="w"> </span><span class="p">[],</span> -<span class="linenos">30</span><span class="w"> </span><span class="s2">"stopAtEntry"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">31</span><span class="w"> </span><span class="s2">"cwd"</span><span class="o">:</span><span class="w"> </span><span class="s2">"/usr/local/openPASS/bin/core/"</span><span class="p">,</span> -<span class="linenos">32</span><span class="w"> </span><span class="s2">"externalConsole"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> -<span class="linenos">33</span><span class="w"> </span><span class="s2">"MIMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"gdb"</span><span class="p">,</span> -<span class="linenos">34</span><span class="w"> </span><span class="s2">"setupCommands"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> -<span class="linenos">35</span><span class="w"> </span><span class="p">{</span> -<span class="linenos">36</span><span class="w"> </span><span class="s2">"description"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Enable pretty-printing for gdb"</span><span class="p">,</span> -<span class="linenos">37</span><span class="w"> </span><span class="s2">"text"</span><span class="o">:</span><span class="w"> </span><span class="s2">"-enable-pretty-printing"</span><span class="p">,</span> -<span class="linenos">38</span><span class="w"> </span><span class="s2">"ignoreFailures"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> -<span class="linenos">39</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">40</span><span class="w"> </span><span class="p">]</span> -<span class="linenos">41</span><span class="w"> </span><span class="p">}</span> -<span class="linenos">42</span><span class="w"> </span><span class="p">]</span> -<span class="linenos">43</span><span class="p">}</span> -</pre></div> -</div> -</div> -<p><a class="reference download internal" download="" href="../../_downloads/f717c80213b149820a0dc8e07e803940/launch.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> -</div></div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>IntelliSense uses the <code class="docutils literal notranslate"><span class="pre">compile_commands.json</span></code> of generated through <code class="docutils literal notranslate"><span class="pre">CMAKE_EXPORT_COMPILE_COMMANDS=ON</span></code> (see <code class="docutils literal notranslate"><span class="pre">settings.json</span></code>). -This is necessary for proper resolution of the include files.</p> -</div> -</section> -</section> -<section id="troubleshooting"> -<h2>Troubleshooting<a class="headerlink" href="#troubleshooting" title="Link to this heading">ïƒ</a></h2> -<p><img alt="win_only" src="../../_images/win_only.png" /> <strong>Program does not start</strong></p> -<p>The most effective way to debug startup issues is by means of the <a class="reference external" href="https://docs.microsoft.com/en-us/sysinternals/downloads/procmon">Process Monitor</a>.</p> -<p>But normally, its a missing DLL. When executing the program via command line or explorer a message box should prompt which DLLs are missing. -A simple solution is to copy the according DLLs into the folder of the executable. -Another solution is to make the path available by extending the <code class="docutils literal notranslate"><span class="pre">PATH</span></code> environment variable. -Potential sources for missing DLLs are <code class="docutils literal notranslate"><span class="pre">C:\msys64\mingw64\bin</span></code>, <code class="docutils literal notranslate"><span class="pre">C:\msys64\mingw64\x86_64-w64-mingw32\lib</span></code>, and the <code class="docutils literal notranslate"><span class="pre">build</span></code> folder itself.</p> -<p><strong>Tests are not listed</strong></p> -<p>For test discovery, C++ Testmate needs to know the location of all additional dependencies. -This information is retrieved from the current debug configuration.</p> -<ol class="arabic simple"> -<li><p>Testmate discovers tests only after they are built. -It pays to <code class="docutils literal notranslate"><span class="pre">Run</span> <span class="pre">CTest</span></code> to build all test targets. -After this, you should see all tests in the testing pane on the left.</p></li> -<li><p>Still not listed? Set <code class="docutils literal notranslate"><span class="pre">testMate.cpp.log.logfile</span></code> in <code class="docutils literal notranslate"><span class="pre">settings.json</span></code> and check log.</p> -<ol class="arabic simple"> -<li><p>Test executable not mentioned at all: -Executable name might not fit (check glob pattern in <code class="docutils literal notranslate"><span class="pre">testMate.cpp.test.executables</span></code>).</p></li> -<li><p>Log reports <em>Error: Not a supported test executable</em>: a library/DLL might be missing.</p></li> -</ol> -</li> -</ol> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../10_ide_support.html" class="btn btn-neutral float-left" title="IDE Support" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="../20_documentation.html" class="btn btn-neutral float-right" title="Documentation Concept" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Working with Visual Studio Code — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + <link rel="stylesheet" type="text/css" href="../../_static/tabs.css?v=a5c4661c" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/tabs.js?v=3030b3cb"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Documentation Concept" href="../20_documentation.html" /> + <link rel="prev" title="IDE Support" href="../10_ide_support.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="reference internal" href="../10_ide_support.html">IDE Support</a><ul class="current"> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Working with Visual Studio Code</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#assumptions">Assumptions</a></li> +<li class="toctree-l3"><a class="reference internal" href="#installation">Installation</a></li> +<li class="toctree-l3"><a class="reference internal" href="#set-up-development-containers-in-visual-studio-code">Set Up Development Containers in Visual Studio Code</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#introduction">Introduction</a></li> +<li class="toctree-l4"><a class="reference internal" href="#prerequisites">Prerequisites</a></li> +<li class="toctree-l4"><a class="reference internal" href="#devcontainers">DevContainers</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#configuration">Configuration</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#win-only-msys2-path"> MSYS2 Path</a></li> +<li class="toctree-l4"><a class="reference internal" href="#build-kit">Build Kit</a></li> +<li class="toctree-l4"><a class="reference internal" href="#user-settings">User Settings</a></li> +<li class="toctree-l4"><a class="reference internal" href="#c-and-intellisense">C++ and IntelliSense</a></li> +<li class="toctree-l4"><a class="reference internal" href="#configure-the-build">Configure the Build</a></li> +<li class="toctree-l4"><a class="reference internal" href="#debug-targets">Debug Targets</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#troubleshooting">Troubleshooting</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../10_ide_support.html">IDE Support</a></li> + <li class="breadcrumb-item active">Working with Visual Studio Code</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/developer_information/ide_support/30_vscode.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="working-with-visual-studio-code"> +<span id="vscode"></span><h1>Working with Visual Studio Code<a class="headerlink" href="#working-with-visual-studio-code" title="Link to this heading">ïƒ</a></h1> +<p>This section describes the basic setup for Visual Studio Code.</p> +<figure class="align-center" id="id1"> +<img alt="../../_images/vscode_quick_intro.png" src="../../_images/vscode_quick_intro.png" /> +<figcaption> +<p><span class="caption-text">Correctly configured Visual Studio Code showing – among other things – <strong>left</strong>, debugging, testmate, and cmake pane selectors, and at the <strong>bottom</strong>, build type, kit, current target, and CTest runner.</span><a class="headerlink" href="#id1" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<section id="assumptions"> +<h2>Assumptions<a class="headerlink" href="#assumptions" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>For brevity, non-standard libraries are expected to be in the folder <code class="docutils literal notranslate"><span class="pre">./deps/thirdParty</span></code>.</p></li> +<li><p><img alt="win_only" src="../../_images/win_only.png" /> <strong>MSYS2/MinGW 64 Bit</strong> is used.</p></li> +</ul> +</section> +<section id="installation"> +<h2>Installation<a class="headerlink" href="#installation" title="Link to this heading">ïƒ</a></h2> +<ol class="arabic simple"> +<li><p>Install Visual Studio Code (<a class="reference external" href="https://code.visualstudio.com">https://code.visualstudio.com</a>)</p></li> +<li><p>Install Extensions</p></li> +</ol> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Name</p></th> +<th class="head"><p>Purpose</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p><a class="reference external" href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools">C/C++</a></p></td> +<td><p>Support for C/C++, including IntelliSense and debugging</p></td> +</tr> +<tr class="row-odd"><td><p><a class="reference external" href="https://vector-of-bool.github.io/docs/vscode-cmake-tools">CMake Tools</a></p></td> +<td><p>Extended CMake support</p></td> +</tr> +<tr class="row-even"><td><p><a class="reference external" href="https://marketplace.visualstudio.com/items?itemName=matepek.vscode-catch2-test-adapter">C++ Testmate</a></p></td> +<td><p>Run and debug GoogleTest</p></td> +</tr> +<tr class="row-odd"><td><p><a class="reference external" href="https://marketplace.visualstudio.com/items?itemName=fougas.msys2">MSYS2/Cygwin/MinGW/Clang support</a></p></td> +<td><p><img alt="win_only" src="../../_images/win_only.png" /> MSYS2/MinGW configuration adapter</p></td> +</tr> +<tr class="row-even"><td><p><a class="reference external" href="https://code.visualstudio.com/docs/devcontainers/containers">Remote Development</a></p></td> +<td><p>Development using DevContainers</p></td> +</tr> +<tr class="row-odd"><td><p><a class="reference external" href="https://code.visualstudio.com/docs/containers/overview">Docker</a></p></td> +<td><p>Additional information for DevContainer prerequisites</p></td> +</tr> +</tbody> +</table> +</section> +<section id="set-up-development-containers-in-visual-studio-code"> +<h2>Set Up Development Containers in Visual Studio Code<a class="headerlink" href="#set-up-development-containers-in-visual-studio-code" title="Link to this heading">ïƒ</a></h2> +<section id="introduction"> +<h3>Introduction<a class="headerlink" href="#introduction" title="Link to this heading">ïƒ</a></h3> +<p>This section provides step-by-step instructions on setting up development containers in Visual Studio Code (VSCode). Development containers allow you to define and manage your development environment using Docker containers, ensuring consistent and reproducible setups across different machines.</p> +</section> +<section id="prerequisites"> +<h3>Prerequisites<a class="headerlink" href="#prerequisites" title="Link to this heading">ïƒ</a></h3> +<p>Before you begin, make sure <code class="docutils literal notranslate"><span class="pre">docker</span></code> is installed in your system. If <code class="docutils literal notranslate"><span class="pre">docker</span></code> is not installed, follow the below steps.</p> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><ol class="arabic"> +<li><p>Open PowerShell in Administrator Mode by right-clicking and selecting “Run as administrator.â€.</p></li> +<li><p>To install wsl, run the following command and then restart the machine:</p> +<div class="highlight-powershell notranslate"><div class="highlight"><pre><span></span><span class="n">wsl</span> <span class="p">-</span><span class="n">-install</span> +</pre></div> +</div> +<p>The above command only works if WSL is not installed at all. +If you run <code class="docutils literal notranslate"><span class="pre">wsl</span> <span class="pre">--install</span></code> and see the WSL help text, try running <code class="docutils literal notranslate"><span class="pre">wsl</span> <span class="pre">--list</span> <span class="pre">--online</span></code> to see a list of available distros and run <code class="docutils literal notranslate"><span class="pre">wsl</span> <span class="pre">--install</span> <span class="pre">-d</span> <span class="pre"><Linux</span> <span class="pre">DistroName></span></code> to install a distro. The recommended distro is <code class="docutils literal notranslate"><span class="pre">Ubuntu</span></code> and the following steps assumes the distro as <code class="docutils literal notranslate"><span class="pre">Ubuntu</span></code></p> +</li> +<li><p>Once the distro is installed, check the version of the installed distro</p> +<div class="highlight-powershell notranslate"><div class="highlight"><pre><span></span><span class="n">wsl</span> <span class="n">-l</span> <span class="n">-v</span> +</pre></div> +</div> +<p>If the version is 1, then change it to 2 using the command <code class="docutils literal notranslate"><span class="pre">wsl</span> <span class="pre">--set-version</span> <span class="pre"><distro></span> <span class="pre">2</span></code></p> +</li> +<li><p>After successful installation, open Ubuntu by searching <code class="docutils literal notranslate"><span class="pre">Ubuntu</span></code> in windows search bar</p></li> +<li><p>Install the dependencies to run docker on the distro using the following command</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>--no-install-recommends<span class="w"> </span>apt-transport-https<span class="w"> </span>ca-certificates<span class="w"> </span>curl +</pre></div> +</div> +</li> +<li><p>On Debian or Ubuntu, first temporarily set some OS-specific variables:</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>.<span class="w"> </span>/etc/os-release +</pre></div> +</div> +<p>Then, make sure <code class="docutils literal notranslate"><span class="pre">apt</span></code> trust the docker repo</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>curl<span class="w"> </span>-fsSL<span class="w"> </span>https://download.docker.com/linux/<span class="si">${</span><span class="nv">ID</span><span class="si">}</span>/gpg<span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/apt/trusted.gpg.d/docker.asc +</pre></div> +</div> +<p>ID will be either <code class="docutils literal notranslate"><span class="pre">ubuntu</span></code> or <code class="docutils literal notranslate"><span class="pre">debian</span></code>, as appropriate, depending on what is in <code class="docutils literal notranslate"><span class="pre">/etc/os-release</span></code>.</p> +</li> +<li><p>Add docker repo information to the <code class="docutils literal notranslate"><span class="pre">apt</span></code> to install docker.</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">echo</span><span class="w"> </span><span class="s2">"deb [arch=amd64] https://download.docker.com/linux/</span><span class="si">${</span><span class="nv">ID</span><span class="si">}</span><span class="s2"> </span><span class="si">${</span><span class="nv">VERSION_CODENAME</span><span class="si">}</span><span class="s2"> stable"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/apt/sources.list.d/docker.list +sudo<span class="w"> </span>apt<span class="w"> </span>update +</pre></div> +</div> +</li> +<li><p>Install Docker and add user to the <code class="docutils literal notranslate"><span class="pre">docker</span></code> group</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>docker-ce<span class="w"> </span>docker-ce-cli<span class="w"> </span>containerd.io +sudo<span class="w"> </span>usermod<span class="w"> </span>-aG<span class="w"> </span>docker<span class="w"> </span><span class="nv">$USER</span> +</pre></div> +</div> +<p>Replace <code class="docutils literal notranslate"><span class="pre">$USER</span></code> with your user name on distro. Then close the WSL window, and launch WSL again. You should see <code class="docutils literal notranslate"><span class="pre">docker</span></code> when you run the command <code class="docutils literal notranslate"><span class="pre">groups</span></code> on command prompt to list group memberships.</p> +</li> +<li><p>Launch <code class="docutils literal notranslate"><span class="pre">dockerd</span></code> using the following command</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>dockerd +</pre></div> +</div> +<p>There should be several lines of info, warnings related to cgroup blkio, and the like, with something like API listen on /var/run/docker.sock at the end. If so, you have success. +If there is any network controller issue, execute the following compile_commands</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s2">"[network]\ngenerateResolvConf = false"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>-a<span class="w"> </span>/etc/wsl.conf +sudo<span class="w"> </span>unlink<span class="w"> </span>/etc/resolv.conf +<span class="nb">echo</span><span class="w"> </span>nameserver<span class="w"> </span><span class="m">1</span>.1.1.1<span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/resolv.conf +</pre></div> +</div> +<p>Also switch to legacy iptables using the following command</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>update-alternatives<span class="w"> </span>--config<span class="w"> </span>iptables +</pre></div> +</div> +<p>And select iptables-legacy +Rerun the command <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">dockerd</span></code> and check if it is succeeded.</p> +</li> +<li><p>To check if <code class="docutils literal notranslate"><span class="pre">docker</span></code> is running from Windows, in PowerShell execute the following command.</p></li> +</ol> +<blockquote> +<div><div class="highlight-powershell notranslate"><div class="highlight"><pre><span></span><span class="n">wsl</span> <span class="n">-d</span> <span class="n">Ubuntu</span> <span class="n">docker</span> <span class="n">-H</span> <span class="n">unix</span><span class="p">:///</span><span class="n">var</span><span class="p">/</span><span class="n">run</span><span class="p">/</span><span class="n">docker</span><span class="p">.</span><span class="n">sock</span> <span class="p">-</span><span class="n">-version</span> +</pre></div> +</div> +</div></blockquote> +</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><ol class="arabic"> +<li><p>Open a terminal window.</p></li> +<li><p>Execute the following command</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>--version +</pre></div> +</div> +<p>If Docker is installed, you will see the version information displayed in the terminal.</p> +</li> +<li><p>If Docker is not installed, you can install it using the following steps:</p> +<ol class="arabic"> +<li><p>Update your package list using the command:</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>update +</pre></div> +</div> +</li> +<li><p>Install Docker using the following command:</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>apt<span class="w"> </span>install<span class="w"> </span>docker.io +</pre></div> +</div> +</li> +<li><p>You may need to add your user to the “docker†group to use Docker without sudo. Run the following command to add your user to the group (replace <cite><username></cite> with your actual username):</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo<span class="w"> </span>usermod<span class="w"> </span>-aG<span class="w"> </span>docker<span class="w"> </span><username> +</pre></div> +</div> +</li> +</ol> +</li> +</ol> +</div></div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>For more detailed instructions and troubleshooting related to Docker, refer to the official Docker documentation: <a class="reference external" href="https://docs.docker.com/get-docker/">https://docs.docker.com/get-docker/</a></p> +</div> +</section> +<section id="devcontainers"> +<h3>DevContainers<a class="headerlink" href="#devcontainers" title="Link to this heading">ïƒ</a></h3> +<p>Open the repository in VSCode as folder, e.g. by calling <code class="docutils literal notranslate"><span class="pre">code</span> <span class="pre">openpass</span></code> after checking out and then define the development container configuration.</p> +<ol class="arabic"> +<li><p>Open the repository as folder, e.g. by calling <code class="docutils literal notranslate"><span class="pre">code</span> <span class="pre">openpass</span></code> after checking out.</p></li> +<li><p>Create the folder <code class="docutils literal notranslate"><span class="pre">.devcontainer</span></code> at the root of the project and configure your development container using JSON format. Below is an example configuration:</p> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-1-1-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-1-1-0" name="1-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-1-1-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-1-1-1" name="1-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-1-1-0" class="sphinx-tabs-panel" id="panel-1-1-0" name="1-0" role="tabpanel" tabindex="0"><div class="literal-block-wrapper docutils container" id="id2"> +<div class="code-block-caption"><span class="caption-text">devcontainer.json</span><a class="headerlink" href="#id2" title="Link to this code">ïƒ</a></div> +<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span><span class="p">{</span> +<span class="linenos">2</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"openPASS DevContainer"</span><span class="p">,</span> +<span class="linenos">3</span><span class="w"> </span><span class="s2">"dockerFile"</span><span class="o">:</span><span class="w"> </span><span class="s2">"../utils/Dockerfile"</span><span class="p">,</span> +<span class="linenos">4</span><span class="w"> </span><span class="s2">"workspaceFolder"</span><span class="o">:</span><span class="w"> </span><span class="s2">"/workspaces/openPASS"</span> +<span class="linenos">5</span><span class="p">}</span> +</pre></div> +</div> +</div> +<p><a class="reference download internal" download="" href="../../_downloads/a65389c511a382161f2a161fdf5ea53f/devcontainer.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>To use docker daemons running on WSL, open <code class="docutils literal notranslate"><span class="pre">settings</span></code> in VSCode and search for <code class="docutils literal notranslate"><span class="pre">Execute</span> <span class="pre">In</span> <span class="pre">WSL</span></code> and select the option to execute in WSL. Also, under <code class="docutils literal notranslate"><span class="pre">Execute</span> <span class="pre">in</span> <span class="pre">WSLDistro</span></code> enter your distro name, for example: <code class="docutils literal notranslate"><span class="pre">Ubuntu</span></code></p> +</div> +</div><div aria-labelledby="tab-1-1-1" class="sphinx-tabs-panel" hidden="true" id="panel-1-1-1" name="1-1" role="tabpanel" tabindex="0"><div class="literal-block-wrapper docutils container" id="id3"> +<div class="code-block-caption"><span class="caption-text">devcontainer.json</span><a class="headerlink" href="#id3" title="Link to this code">ïƒ</a></div> +<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span><span class="p">{</span> +<span class="linenos">2</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"openPASS DevContainer"</span><span class="p">,</span> +<span class="linenos">3</span><span class="w"> </span><span class="s2">"dockerFile"</span><span class="o">:</span><span class="w"> </span><span class="s2">"../utils/Dockerfile"</span><span class="p">,</span> +<span class="linenos">4</span><span class="w"> </span><span class="s2">"workspaceFolder"</span><span class="o">:</span><span class="w"> </span><span class="s2">"/workspaces/openPASS"</span> +<span class="linenos">5</span><span class="p">}</span> +</pre></div> +</div> +</div> +<p><a class="reference download internal" download="" href="../../_downloads/a65389c511a382161f2a161fdf5ea53f/devcontainer.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> +</div></div> +</li> +<li><p>Open Your Project in a Development Container:</p> +<ol class="arabic simple"> +<li><p>Open the command palette by pressing <cite>Ctrl+Shift+P</cite>.</p></li> +<li><p>Type “Dev Containers: Open Folder in Container†and select your project folder.</p></li> +<li><p>VSCode will build the Docker container based on the configuration and open your project inside it.</p></li> +</ol> +</li> +<li><p>Developing in the Container:</p> +<ol class="arabic simple"> +<li><p>You can now edit files, install packages, and run code within the development container.</p></li> +<li><p>Installed extensions and settings in the container will be isolated from your local environment.</p></li> +</ol> +</li> +<li><p>To exit the container, click on the bottom left status bar where it shows the container name and click “Close Remote Connection.â€</p></li> +</ol> +</section> +</section> +<section id="configuration"> +<h2>Configuration<a class="headerlink" href="#configuration" title="Link to this heading">ïƒ</a></h2> +<section id="win-only-msys2-path"> +<h3><img alt="win_only" src="../../_images/win_only.png" /> MSYS2 Path<a class="headerlink" href="#win-only-msys2-path" title="Link to this heading">ïƒ</a></h3> +<p>Normally, runtime dependencies (DLLs) are not copied into the executables folder within the build process. +This means, that programs cannot be executed natively from Windows shells or the explorer. +It is therefore highly recommended, to set the environmental variable <code class="docutils literal notranslate"><span class="pre">MSYSTEM=MINGW64</span></code> and <code class="docutils literal notranslate"><span class="pre">CHERE_INVOKING=1</span></code>. +The setting of <code class="docutils literal notranslate"><span class="pre">MSYSTEM</span></code> will cause the environment to be set up correctly for MinGW64. +Windows will then look for DLLs within the msys64 folders, allowing native execution. +<code class="docutils literal notranslate"><span class="pre">CHERE_INVOKING</span></code> makes sure the shell stays in the current working directory. +As investigated recently, the <code class="docutils literal notranslate"><span class="pre">C:\msys64\usr\bin``must</span> <span class="pre">also</span> <span class="pre">be</span> <span class="pre">added</span> <span class="pre">to</span> <span class="pre">the</span> <span class="pre">``PATH</span></code> environment variable in order to resolve dependencies to <code class="docutils literal notranslate"><span class="pre">cygpath.exe</span></code>.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>If <code class="docutils literal notranslate"><span class="pre">C:\msys64</span></code> is not already listed in <code class="docutils literal notranslate"><span class="pre">PATH</span></code> variable, then add <code class="docutils literal notranslate"><span class="pre">C:\msys64</span></code> in <code class="docutils literal notranslate"><span class="pre">PATH</span></code> variable before adding <code class="docutils literal notranslate"><span class="pre">C:\msys64\usr\bin</span></code> to the <code class="docutils literal notranslate"><span class="pre">PATH</span></code> variable. +If there are any other Unix like environments installed on Windows operating systems (example: cygwin), there might even be file collisions when calling certain cmake commands. +Therefore, it is suggested to add <code class="docutils literal notranslate"><span class="pre">C:\msys64</span></code> in <code class="docutils literal notranslate"><span class="pre">PATH</span></code> variable before any other Unix like environmental calls.</p> +</div> +<p>Either set environment variable through the <code class="docutils literal notranslate"><span class="pre">Windows</span> <span class="pre">PowerShell</span></code></p> +<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="c1"># check if set</span> +<span class="nb">echo</span><span class="w"> </span><span class="si">${</span><span class="nv">env</span><span class="p">:</span><span class="nv">path</span><span class="si">}</span> +<span class="nb">echo</span><span class="w"> </span><span class="si">${</span><span class="nv">env</span><span class="p">:</span><span class="nv">MSYSTEM</span><span class="si">}</span> +<span class="nb">echo</span><span class="w"> </span><span class="si">${</span><span class="nv">env</span><span class="p">:</span><span class="nv">CHERE_INVOKING</span><span class="si">}</span> + +<span class="c1"># if not</span> +setx<span class="w"> </span>path<span class="w"> </span><span class="s2">"%PATH%;C:\msys64\usr\bin"</span> +setx<span class="w"> </span>MSYSTEM<span class="w"> </span><span class="s2">"MINGW64"</span> +setx<span class="w"> </span>CHERE_INVOKING<span class="w"> </span><span class="s2">"1"</span> +</pre></div> +</div> +<p>or</p> +<ol class="arabic simple"> +<li><p>Open the start search</p></li> +<li><p>Type in “env†and choose “Edit the system environment variablesâ€</p></li> +<li><p>Choose “Environment Variables…â€</p></li> +<li><p>Set the environment variables:</p> +<ol class="lowerroman simple"> +<li><p>MSYSTEM=MINGW64</p></li> +<li><p>CHERE_INVOKING=1</p></li> +<li><p>Add <code class="docutils literal notranslate"><span class="pre">C:\msys64\usr\bin</span></code> to PATH</p></li> +</ol> +</li> +</ol> +<p>Visual Studio Code needs to be reloaded/restarted after the path update.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>An optimal solution would be to set the system environment variables in VSCode under <code class="docutils literal notranslate"><span class="pre">settings.json</span></code>. This is currently not possible. Please contact us if you find a better solution.</p> +</div> +</section> +<section id="build-kit"> +<h3>Build Kit<a class="headerlink" href="#build-kit" title="Link to this heading">ïƒ</a></h3> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-2-2-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-2-2-0" name="2-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-2-2-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-2-2-1" name="2-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-2-2-0" class="sphinx-tabs-panel" id="panel-2-2-0" name="2-0" role="tabpanel" tabindex="0"><p><strong>Add and select MSYS2/MinGW64 Build Kit:</strong></p> +<ol class="arabic"> +<li><p>Execute <code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code>: <code class="docutils literal notranslate"><span class="pre">CMake:</span> <span class="pre">Edit</span> <span class="pre">User-Local</span> <span class="pre">CMake</span> <span class="pre">Kits</span></code></p></li> +<li><p>Insert/Update:</p> +<div class="literal-block-wrapper docutils container" id="id4"> +<div class="code-block-caption"><span class="caption-text">cmake-tools-kits.json</span><a class="headerlink" href="#id4" title="Link to this code">ïƒ</a></div> +<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">[</span> +<span class="linenos"> 2</span><span class="w"> </span><span class="p">{</span> +<span class="linenos"> 3</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"MinGW64"</span><span class="p">,</span> +<span class="linenos"> 4</span><span class="w"> </span><span class="s2">"preferredGenerator"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="linenos"> 5</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"MSYS Makefiles"</span> +<span class="linenos"> 6</span><span class="w"> </span><span class="p">},</span> +<span class="linenos"> 7</span><span class="w"> </span><span class="s2">"environmentVariables"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="s2">"PATH"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:mingw64.path}"</span><span class="w"> </span><span class="p">},</span> +<span class="linenos"> 8</span><span class="w"> </span><span class="s2">"compilers"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="linenos"> 9</span><span class="w"> </span><span class="s2">"C"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:mingw64.cc.exe}"</span><span class="p">,</span> +<span class="linenos">10</span><span class="w"> </span><span class="s2">"CXX"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:mingw64.cxx.exe}"</span><span class="p">,</span> +<span class="linenos">11</span><span class="w"> </span><span class="s2">"Fortran"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:mingw64.fc.exe}"</span> +<span class="linenos">12</span><span class="w"> </span><span class="p">},</span> +<span class="linenos">13</span><span class="w"> </span><span class="s2">"keep"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> +<span class="linenos">14</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">15</span><span class="p">]</span> +</pre></div> +</div> +</div> +<p><a class="reference download internal" download="" href="../../_downloads/0434e3ab992f6eea8e1df4ae553aa93d/cmake-tools-kits.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> +</li> +<li><p><code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code>: <code class="docutils literal notranslate"><span class="pre">CMake:</span> <span class="pre">Select</span> <span class="pre">a</span> <span class="pre">Kit</span></code> = <code class="docutils literal notranslate"><span class="pre">MinGW64</span></code></p></li> +</ol> +</div><div aria-labelledby="tab-2-2-1" class="sphinx-tabs-panel" hidden="true" id="panel-2-2-1" name="2-1" role="tabpanel" tabindex="0"><p><strong>Select System Build Kit:</strong></p> +<p><code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code>: <code class="docutils literal notranslate"><span class="pre">CMake:</span> <span class="pre">Select</span> <span class="pre">a</span> <span class="pre">Kit</span></code> = <code class="docutils literal notranslate"><span class="pre">GCC</span> <span class="pre">10.2.0</span></code></p> +<p>See also <a class="reference internal" href="../../installation_guide/20_install_prerequisites.html#prerequisites"><span class="std std-ref">Installing Prerequisites</span></a>.</p> +</div></div> +</section> +<section id="user-settings"> +<span id="vscode-user-settings"></span><h3>User Settings<a class="headerlink" href="#user-settings" title="Link to this heading">ïƒ</a></h3> +<ol class="arabic"> +<li><p>Execute <code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code>: <code class="docutils literal notranslate"><span class="pre">Preferences</span> <span class="pre">Open</span> <span class="pre">Workspace</span> <span class="pre">Settings</span> <span class="pre">(JSON)</span></code></p></li> +<li><p>Insert/Update:</p> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-3-3-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-3-3-0" name="3-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-3-3-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-3-3-1" name="3-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-3-3-0" class="sphinx-tabs-panel" id="panel-3-3-0" name="3-0" role="tabpanel" tabindex="0"><div class="literal-block-wrapper docutils container" id="id5"> +<div class="code-block-caption"><span class="caption-text">settings.json</span><a class="headerlink" href="#id5" title="Link to this code">ïƒ</a></div> +<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">{</span> +<span class="linenos"> 2</span><span class="w"> </span><span class="c1">//</span> +<span class="linenos"> 3</span><span class="w"> </span><span class="c1">// CMAKE</span> +<span class="linenos"> 4</span><span class="w"> </span><span class="c1">//</span> +<span class="linenos"> 5</span><span class="w"> </span><span class="c1">// Following settings are from the MSYS2 extension documentation</span> +<span class="linenos"> 6</span><span class="w"> </span><span class="s2">"cmake.cmakePath"</span><span class="o">:</span><span class="w"> </span><span class="s2">"C:\\msys64\\mingw64\\bin\\cmake.exe"</span><span class="p">,</span> +<span class="linenos"> 7</span><span class="w"> </span><span class="s2">"cmake.preferredGenerators"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos"> 8</span><span class="w"> </span><span class="s2">"MSYS Makefiles"</span> +<span class="linenos"> 9</span><span class="w"> </span><span class="p">],</span> +<span class="linenos">10</span><span class="w"> </span><span class="s2">"cmake.configureSettings"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">11</span><span class="w"> </span><span class="s2">"CMAKE_MAKE_PROGRAM"</span><span class="o">:</span><span class="w"> </span><span class="s2">"C:\\msys64\\mingw64\\bin\\make.exe"</span><span class="p">,</span> +<span class="linenos">12</span><span class="w"> </span><span class="s2">"CMAKE_PREFIX_PATH"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos">13</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/Yase"</span><span class="p">,</span> +<span class="linenos">14</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/FMILibrary"</span><span class="p">,</span> +<span class="linenos">15</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/MantleAPI"</span><span class="p">,</span> +<span class="linenos">16</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/osi"</span><span class="p">,</span> +<span class="linenos">17</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/protobuf"</span><span class="p">,</span> +<span class="linenos">18</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/protobuf-shared"</span><span class="p">,</span> +<span class="linenos">19</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/googletest"</span><span class="p">,</span> +<span class="linenos">20</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/minizip"</span><span class="p">,</span> +<span class="linenos">21</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/openscenario_engine/release"</span><span class="p">,</span> +<span class="linenos">22</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/openscenario_api"</span><span class="p">,</span> +<span class="linenos">23</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/zlib"</span><span class="p">,</span> +<span class="linenos">24</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/open-simulation-interface"</span><span class="p">,</span> +<span class="linenos">25</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/thirdParty/win64/units"</span><span class="p">,</span> +<span class="linenos">26</span><span class="w"> </span><span class="s2">"${workspaceRoot}/deps/scmThirdParty/win64/stochastics"</span><span class="p">,</span> +<span class="linenos">27</span><span class="w"> </span><span class="s2">"C:/msys64/mingw64/bin"</span> +<span class="linenos">28</span><span class="w"> </span><span class="p">],</span> +<span class="linenos">29</span><span class="w"> </span><span class="s2">"CMAKE_INSTALL_PREFIX"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${workspaceRoot}/bin/core"</span><span class="p">,</span> +<span class="linenos">30</span><span class="w"> </span><span class="s2">"CMAKE_BUILD_TYPE"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Debug"</span><span class="p">,</span> +<span class="linenos">31</span><span class="w"> </span><span class="s2">"USE_CCACHE"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">32</span><span class="w"> </span><span class="s2">"WITH_DEBUG_POSTFIX"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">33</span><span class="w"> </span><span class="s2">"OPENPASS_ADJUST_OUTPUT"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">34</span><span class="w"> </span><span class="s2">"WITH_API_DOC"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">35</span><span class="w"> </span><span class="s2">"WITH_DOC"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">36</span><span class="w"> </span><span class="s2">"INSTALL_EXTRA_RUNTIME_DEPS"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">37</span><span class="w"> </span><span class="s2">"INSTALL_SYSTEM_RUNTIME_DEPS"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">38</span><span class="w"> </span><span class="c1">// For integration with IntelliSense (see c_cpp_properties.json)</span> +<span class="linenos">39</span><span class="w"> </span><span class="s2">"CMAKE_EXPORT_COMPILE_COMMANDS"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> +<span class="linenos">40</span><span class="w"> </span><span class="p">},</span> +<span class="linenos">41</span><span class="w"> </span><span class="c1">// Optional: Adjust to your needs</span> +<span class="linenos">42</span><span class="w"> </span><span class="s2">"cmake.parallelJobs"</span><span class="o">:</span><span class="w"> </span><span class="mf">4</span><span class="p">,</span> +<span class="linenos">43</span><span class="w"> </span><span class="c1">//</span> +<span class="linenos">44</span><span class="w"> </span><span class="c1">// TESTMATE</span> +<span class="linenos">45</span><span class="w"> </span><span class="c1">//</span> +<span class="linenos">46</span><span class="w"> </span><span class="c1">// Optional: Adjust to your needs</span> +<span class="linenos">47</span><span class="w"> </span><span class="s2">"testMate.cpp.test.parallelExecutionLimit"</span><span class="o">:</span><span class="w"> </span><span class="mf">4</span><span class="p">,</span> +<span class="linenos">48</span><span class="w"> </span><span class="s2">"testMate.cpp.test.parallelExecutionOfExecutableLimit"</span><span class="o">:</span><span class="w"> </span><span class="mf">2</span><span class="p">,</span> +<span class="linenos">49</span><span class="w"> </span><span class="c1">// Optional: Set, if you like to debug test discovery and test start issues</span> +<span class="linenos">50</span><span class="w"> </span><span class="s2">"testMate.cpp.log.logfile"</span><span class="o">:</span><span class="w"> </span><span class="s2">"C:\\temp\\cpp.testmate.log"</span><span class="p">,</span> +<span class="linenos">51</span><span class="w"> </span><span class="c1">// Optional: As CTest triggers the install step, dependencies between test executables</span> +<span class="linenos">52</span><span class="w"> </span><span class="c1">// and openpass libraries can be resolved by linking text executables to</span> +<span class="linenos">53</span><span class="w"> </span><span class="c1">// openpass install directory</span> +<span class="linenos">54</span><span class="w"> </span><span class="c1">// Alternative: Check dependencies of test executables by 'ldd <_Tests.exe> and copy</span> +<span class="linenos">55</span><span class="w"> </span><span class="c1">// libraries right next to test executable within build direcory</span> +<span class="linenos">56</span><span class="w"> </span><span class="s2">"testMate.cpp.test.advancedExecutables"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos">57</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">58</span><span class="w"> </span><span class="s2">"pattern"</span><span class="o">:</span><span class="w"> </span><span class="s2">"build/**/*{tests,Tests,TESTS}*"</span><span class="p">,</span> +<span class="linenos">59</span><span class="w"> </span><span class="s2">"env"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">60</span><span class="w"> </span><span class="s2">"Path"</span><span class="o">:</span><span class="w"> </span><span class="s2">"C:\\msys64\\mingw64\\bin;${workspaceFolder}\\bin\\core;${workspaceFolder}\\bin\\core\\lib;${os_env:PATH};${workspaceFolder}\\deps\\thirdParty\\win64\\FMILibrary\\lib;${workspaceFolder}\\deps\\thirdParty\\win64\\osi\\lib\\osi3"</span> +<span class="linenos">61</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">62</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">63</span><span class="w"> </span><span class="p">],</span> +<span class="linenos">64</span><span class="w"> </span><span class="c1">//</span> +<span class="linenos">65</span><span class="w"> </span><span class="c1">// VSCODE</span> +<span class="linenos">66</span><span class="w"> </span><span class="c1">//</span> +<span class="linenos">67</span><span class="w"> </span><span class="c1">// Optional: Integration of MinGW64 Terminal in VS Code</span> +<span class="linenos">68</span><span class="w"> </span><span class="s2">"terminal.integrated.profiles.windows"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">69</span><span class="w"> </span><span class="s2">"MinGW64"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">70</span><span class="w"> </span><span class="s2">"overrideName"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">71</span><span class="w"> </span><span class="s2">"path"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos">72</span><span class="w"> </span><span class="s2">"C:\\msys64\\usr\\bin\\bash.exe"</span> +<span class="linenos">73</span><span class="w"> </span><span class="p">],</span> +<span class="linenos">74</span><span class="w"> </span><span class="s2">"args"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"--login"</span><span class="p">,</span><span class="w"> </span><span class="s2">"-i"</span><span class="p">],</span> +<span class="linenos">75</span><span class="w"> </span><span class="s2">"icon"</span><span class="o">:</span><span class="w"> </span><span class="s2">"terminal-bash"</span><span class="p">,</span> +<span class="linenos">76</span><span class="w"> </span><span class="s2">"env"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">77</span><span class="w"> </span><span class="s2">"MSYSTEM"</span><span class="o">:</span><span class="w"> </span><span class="s2">"MINGW64"</span><span class="p">,</span> +<span class="linenos">78</span><span class="w"> </span><span class="s2">"CHERE_INVOKING"</span><span class="o">:</span><span class="w"> </span><span class="s2">"1"</span><span class="p">,</span> +<span class="linenos">79</span><span class="w"> </span><span class="s2">"MSYS2_PATH_TYPE"</span><span class="o">:</span><span class="w"> </span><span class="s2">"inherit"</span> +<span class="linenos">80</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">81</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">82</span><span class="w"> </span><span class="p">},</span> +<span class="linenos">83</span><span class="w"> </span><span class="s2">"terminal.integrated.defaultProfile.windows"</span><span class="o">:</span><span class="w"> </span><span class="s2">"MinGW64"</span><span class="p">,</span> +<span class="linenos">84</span><span class="w"> </span><span class="c1">// Enforce usage of .clang-format of modified code</span> +<span class="linenos">85</span><span class="w"> </span><span class="s2">"editor.formatOnSave"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">86</span><span class="w"> </span><span class="s2">"editor.formatOnSaveMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"modifications"</span><span class="p">,</span> +<span class="linenos">87</span><span class="w"> </span><span class="c1">// EOL and whitespace enforcement</span> +<span class="linenos">88</span><span class="w"> </span><span class="s2">"editor.detectIndentation"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">89</span><span class="w"> </span><span class="s2">"editor.insertSpaces"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">90</span><span class="w"> </span><span class="s2">"editor.renderFinalNewline"</span><span class="o">:</span><span class="w"> </span><span class="s2">"dimmed"</span><span class="p">,</span> +<span class="linenos">91</span><span class="w"> </span><span class="s2">"files.insertFinalNewline"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">92</span><span class="w"> </span><span class="s2">"files.trimFinalNewlines"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">93</span><span class="w"> </span><span class="s2">"files.trimTrailingWhitespace"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> +<span class="linenos">94</span><span class="p">}</span> +</pre></div> +</div> +</div> +<p><a class="reference download internal" download="" href="../../_downloads/cf3a708e6048855aab4490b408d22f7c/settings.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> +</div><div aria-labelledby="tab-3-3-1" class="sphinx-tabs-panel" hidden="true" id="panel-3-3-1" name="3-1" role="tabpanel" tabindex="0"><div class="literal-block-wrapper docutils container" id="id6"> +<div class="code-block-caption"><span class="caption-text">settings.json</span><a class="headerlink" href="#id6" title="Link to this code">ïƒ</a></div> +<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">{</span> +<span class="linenos"> 2</span><span class="w"> </span><span class="c1">//</span> +<span class="linenos"> 3</span><span class="w"> </span><span class="c1">// CMAKE</span> +<span class="linenos"> 4</span><span class="w"> </span><span class="c1">//</span> +<span class="linenos"> 5</span><span class="w"> </span><span class="c1">// Optional: Adjust to your needs</span> +<span class="linenos"> 6</span><span class="w"> </span><span class="s2">"cmake.parallelJobs"</span><span class="o">:</span><span class="w"> </span><span class="mf">4</span><span class="p">,</span> +<span class="linenos"> 7</span><span class="w"> </span><span class="c1">// See openPASS documentation for individual WITH_* settings</span> +<span class="linenos"> 8</span><span class="w"> </span><span class="s2">"cmake.configureSettings"</span><span class="o">:</span><span class="w"> </span><span class="p">{</span> +<span class="linenos"> 9</span><span class="w"> </span><span class="c1">// Adjust paths depending on your system</span> +<span class="linenos">10</span><span class="w"> </span><span class="s2">"CMAKE_PREFIX_PATH"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos">11</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/Yase"</span><span class="p">,</span> +<span class="linenos">12</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/scmThirdParty/linux64/stochastics"</span><span class="p">,</span> +<span class="linenos">13</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/MantleAPI"</span><span class="p">,</span> +<span class="linenos">14</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/FMILibrary"</span><span class="p">,</span> +<span class="linenos">15</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/protobuf"</span><span class="p">,</span> +<span class="linenos">16</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/protobuf-shared"</span><span class="p">,</span> +<span class="linenos">17</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/googletest"</span><span class="p">,</span> +<span class="linenos">18</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/minizip"</span><span class="p">,</span> +<span class="linenos">19</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/openscenario_api"</span><span class="p">,</span> +<span class="linenos">20</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/openscenario_engine/release"</span><span class="p">,</span> +<span class="linenos">21</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/open-simulation-interface"</span><span class="p">,</span> +<span class="linenos">22</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/zlib"</span><span class="p">,</span> +<span class="linenos">23</span><span class="w"> </span><span class="s2">"${workspaceFolder}/deps/thirdParty/linux64/units"</span> +<span class="linenos">24</span><span class="w"> </span><span class="p">],</span> +<span class="linenos">25</span><span class="w"> </span><span class="s2">"CMAKE_INSTALL_PREFIX"</span><span class="o">:</span><span class="w"> </span><span class="s2">"/usr/local/openPASS/bin/core"</span><span class="p">,</span> +<span class="linenos">26</span><span class="w"> </span><span class="s2">"CMAKE_BUILD_TYPE"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Debug"</span><span class="p">,</span> +<span class="linenos">27</span><span class="w"> </span><span class="s2">"USE_CCACHE"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">28</span><span class="w"> </span><span class="s2">"WITH_DEBUG_POSTFIX"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">29</span><span class="w"> </span><span class="s2">"OPENPASS_ADJUST_OUTPUT"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">30</span><span class="w"> </span><span class="s2">"INSTALL_EXTRA_RUNTIME_DEPS"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">31</span><span class="w"> </span><span class="s2">"WITH_API_DOC"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">32</span><span class="w"> </span><span class="s2">"WITH_DOC"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">33</span><span class="w"> </span><span class="s2">"WITH_TESTS"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">34</span><span class="w"> </span><span class="c1">// For integration with IntelliSense (see c_cpp_properties.json)</span> +<span class="linenos">35</span><span class="w"> </span><span class="s2">"CMAKE_EXPORT_COMPILE_COMMANDS"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> +<span class="linenos">36</span><span class="w"> </span><span class="p">},</span> +<span class="linenos">37</span><span class="w"> </span><span class="c1">//</span> +<span class="linenos">38</span><span class="w"> </span><span class="c1">// TESTMATE</span> +<span class="linenos">39</span><span class="w"> </span><span class="c1">//</span> +<span class="linenos">40</span><span class="w"> </span><span class="c1">// Optional: Adjust to your needs</span> +<span class="linenos">41</span><span class="w"> </span><span class="s2">"testMate.cpp.test.parallelExecutionLimit"</span><span class="o">:</span><span class="w"> </span><span class="mf">4</span><span class="p">,</span> +<span class="linenos">42</span><span class="w"> </span><span class="s2">"testMate.cpp.test.parallelExecutionOfExecutableLimit"</span><span class="o">:</span><span class="w"> </span><span class="mf">2</span><span class="p">,</span> +<span class="linenos">43</span><span class="w"> </span><span class="c1">// Optional: Set, if you like to debug test discovery and test start issues</span> +<span class="linenos">44</span><span class="w"> </span><span class="s2">"testMate.cpp.log.logfile"</span><span class="o">:</span><span class="w"> </span><span class="s2">"/tmp/cpp.testmate.log"</span><span class="p">,</span> +<span class="linenos">45</span><span class="w"> </span><span class="c1">//</span> +<span class="linenos">46</span><span class="w"> </span><span class="c1">// VSCODE</span> +<span class="linenos">47</span><span class="w"> </span><span class="c1">//</span> +<span class="linenos">48</span><span class="w"> </span><span class="c1">// Enforce usage of .clang-format of modified code</span> +<span class="linenos">49</span><span class="w"> </span><span class="s2">"editor.formatOnSave"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">50</span><span class="w"> </span><span class="s2">"editor.formatOnSaveMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"modifications"</span><span class="p">,</span> +<span class="linenos">51</span><span class="w"> </span><span class="c1">// EOL and whitespace enforcement</span> +<span class="linenos">52</span><span class="w"> </span><span class="s2">"editor.detectIndentation"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">53</span><span class="w"> </span><span class="s2">"editor.insertSpaces"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">54</span><span class="w"> </span><span class="s2">"editor.renderFinalNewline"</span><span class="o">:</span><span class="w"> </span><span class="s2">"dimmed"</span><span class="p">,</span> +<span class="linenos">55</span><span class="w"> </span><span class="s2">"editor.renderWhitespace"</span><span class="o">:</span><span class="w"> </span><span class="s2">"all"</span><span class="p">,</span> +<span class="linenos">56</span><span class="w"> </span><span class="s2">"editor.trimAutoWhitespace"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">57</span><span class="w"> </span><span class="s2">"files.insertFinalNewline"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">58</span><span class="w"> </span><span class="s2">"files.trimFinalNewlines"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span><span class="p">,</span> +<span class="linenos">59</span><span class="w"> </span><span class="s2">"files.trimTrailingWhitespace"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> +<span class="linenos">60</span><span class="p">}</span> +</pre></div> +</div> +</div> +<p><a class="reference download internal" download="" href="../../_downloads/631d97fb2e9fb8f8491268ef3e6ec616/settings.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> +</div></div> +</li> +</ol> +</section> +<section id="c-and-intellisense"> +<h3>C++ and IntelliSense<a class="headerlink" href="#c-and-intellisense" title="Link to this heading">ïƒ</a></h3> +<ol class="arabic"> +<li><p>Execute <code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code>: <code class="docutils literal notranslate"><span class="pre">C/C++:</span> <span class="pre">Edit</span> <span class="pre">Configurations</span> <span class="pre">(JSON)</span></code></p></li> +<li><div class="literal-block-wrapper docutils container" id="id7"> +<div class="code-block-caption"><span class="caption-text">c_cpp_properties.json</span><a class="headerlink" href="#id7" title="Link to this code">ïƒ</a></div> +<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">{</span> +<span class="linenos"> 2</span><span class="w"> </span><span class="s2">"configurations"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos"> 3</span><span class="w"> </span><span class="p">{</span> +<span class="linenos"> 4</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"openpass"</span><span class="p">,</span> +<span class="linenos"> 5</span><span class="w"> </span><span class="s2">"cStandard"</span><span class="o">:</span><span class="w"> </span><span class="s2">"c99"</span><span class="p">,</span> +<span class="linenos"> 6</span><span class="w"> </span><span class="s2">"cppStandard"</span><span class="o">:</span><span class="w"> </span><span class="s2">"c++17"</span><span class="p">,</span> +<span class="linenos"> 7</span><span class="w"> </span><span class="s2">"configurationProvider"</span><span class="o">:</span><span class="w"> </span><span class="s2">"ms-vscode.cmake-tools"</span><span class="p">,</span> +<span class="linenos"> 8</span><span class="w"> </span><span class="s2">"compileCommands"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${workspaceFolder}/build/compile_commands.json"</span><span class="p">,</span> +<span class="linenos"> 9</span><span class="w"> </span><span class="s2">"intelliSenseMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"linux-gcc-x64"</span> +<span class="linenos">10</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">11</span><span class="w"> </span><span class="p">],</span> +<span class="linenos">12</span><span class="w"> </span><span class="s2">"version"</span><span class="o">:</span><span class="w"> </span><span class="mf">4</span> +<span class="linenos">13</span><span class="p">}</span> +</pre></div> +</div> +</div> +<p><a class="reference download internal" download="" href="../../_downloads/dca649c6abf7935b694a9b820bb4efc5/c_cpp_properties.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> +</li> +</ol> +</section> +<section id="configure-the-build"> +<h3>Configure the Build<a class="headerlink" href="#configure-the-build" title="Link to this heading">ïƒ</a></h3> +<p>Execute <code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code>: <code class="docutils literal notranslate"><span class="pre">CMake:</span> <span class="pre">Configure</span></code></p> +<p>CMake should now be able to configure the project. +If not, cmake should give you at least a hint, what’s missing (normally external libraries). +Read <a class="reference internal" href="../../installation_guide/further_guidance/10_cmake.html#cmake"><span class="std std-ref">CMake Variables and Options</span></a> or <a class="reference internal" href="../../installation_guide/20_install_prerequisites.html#prerequisites"><span class="std std-ref">Installing Prerequisites</span></a> for more information.</p> +<div class="admonition-cmake admonition"> +<p class="admonition-title">CMake</p> +<p>Some changes such as changing the build type (Debug/Release) will cause CMake to updates the configuration automatically. +Other changes won’t trigger an update, such as changing the paths to libraries (<cite>CMAKE_PREFIX_PATH</cite>), the cmake cache needs to be cleared before reconfiguration: +<code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+P</span></code> > <code class="docutils literal notranslate"><span class="pre">CMake:</span> <span class="pre">Delete</span> <span class="pre">Cache</span> <span class="pre">and</span> <span class="pre">Reconfigure</span></code></p> +</div> +</section> +<section id="debug-targets"> +<h3>Debug Targets<a class="headerlink" href="#debug-targets" title="Link to this heading">ïƒ</a></h3> +<p>CMake Tools and C++ Testmate automatically use custom launch configurations, if available. +When using the debugging functionality, the according executable will be executed from where they are built (per default inside the <code class="docutils literal notranslate"><span class="pre">build</span></code> folder).</p> +<ul> +<li><p>This is acceptable for unit test, which do not require openPASS specific libraries. +The corresponding config is <code class="docutils literal notranslate"><span class="pre">CMake</span> <span class="pre">Target</span></code>.</p></li> +<li><p>For the core, located at <code class="docutils literal notranslate"><span class="pre">./build/sim/src/core/opSimulation/opSimulation</span></code>, this does not work, as no libraries and no configurations are available. +As a solution, a second debug target <code class="docutils literal notranslate"><span class="pre">opsimulation</span></code> points at the installed executable instead.</p> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>Don’t forget to run the target <code class="docutils literal notranslate"><span class="pre">install</span></code> before debugging .</p> +</div> +</li> +</ul> +<ol class="arabic simple"> +<li><p>Got to “Run and Debug†(<code class="docutils literal notranslate"><span class="pre">Ctrl+Shift+D</span></code>) and <em>create a launch.json file</em>.</p></li> +<li><p>Insert/Update:</p></li> +</ol> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-4-4-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-4-4-0" name="4-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-4-4-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-4-4-1" name="4-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-4-4-0" class="sphinx-tabs-panel" id="panel-4-4-0" name="4-0" role="tabpanel" tabindex="0"><div class="literal-block-wrapper docutils container" id="id8"> +<div class="code-block-caption"><span class="caption-text">launch.json</span><a class="headerlink" href="#id8" title="Link to this code">ïƒ</a></div> +<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">{</span> +<span class="linenos"> 2</span><span class="w"> </span><span class="s2">"version"</span><span class="o">:</span><span class="w"> </span><span class="s2">"0.2.0"</span><span class="p">,</span> +<span class="linenos"> 3</span><span class="w"> </span><span class="s2">"configurations"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos"> 4</span><span class="w"> </span><span class="p">{</span> +<span class="linenos"> 5</span><span class="w"> </span><span class="c1">// FOR TESTMATE (SELECTED TEST) AND CMAKE (DEBUG CMAKE TARGET)</span> +<span class="linenos"> 6</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"CMake Target"</span><span class="p">,</span> +<span class="linenos"> 7</span><span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"cppdbg"</span><span class="p">,</span> +<span class="linenos"> 8</span><span class="w"> </span><span class="s2">"request"</span><span class="o">:</span><span class="w"> </span><span class="s2">"launch"</span><span class="p">,</span> +<span class="linenos"> 9</span><span class="w"> </span><span class="s2">"program"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:cmake.launchTargetPath}"</span><span class="p">,</span> +<span class="linenos">10</span><span class="w"> </span><span class="s2">"args"</span><span class="o">:</span><span class="w"> </span><span class="p">[],</span> +<span class="linenos">11</span><span class="w"> </span><span class="s2">"stopAtEntry"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">12</span><span class="w"> </span><span class="s2">"cwd"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${workspaceFolder}"</span><span class="p">,</span> +<span class="linenos">13</span><span class="w"> </span><span class="s2">"environment"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos">14</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">15</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"PATH"</span><span class="p">,</span> +<span class="linenos">16</span><span class="w"> </span><span class="s2">"value"</span><span class="o">:</span><span class="w"> </span><span class="s2">"$PATH:${command:msys2.root}\\bin;${command:mingw64.root}\\x86_64-w64-mingw32\\lib${command:cmake.buildkit.launch.path}"</span> +<span class="linenos">17</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">18</span><span class="w"> </span><span class="p">],</span> +<span class="linenos">19</span><span class="w"> </span><span class="s2">"externalConsole"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">20</span><span class="w"> </span><span class="s2">"MIMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"gdb"</span><span class="p">,</span> +<span class="linenos">21</span><span class="w"> </span><span class="s2">"miDebuggerPath"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:cmake.buildkit.gdb.exe}"</span><span class="p">,</span> +<span class="linenos">22</span><span class="w"> </span><span class="s2">"setupCommands"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos">23</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">24</span><span class="w"> </span><span class="s2">"description"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Enable pretty-printing for gdb"</span><span class="p">,</span> +<span class="linenos">25</span><span class="w"> </span><span class="s2">"text"</span><span class="o">:</span><span class="w"> </span><span class="s2">"-enable-pretty-printing"</span><span class="p">,</span> +<span class="linenos">26</span><span class="w"> </span><span class="s2">"ignoreFailures"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> +<span class="linenos">27</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">28</span><span class="w"> </span><span class="p">]</span> +<span class="linenos">29</span><span class="w"> </span><span class="p">},</span> +<span class="linenos">30</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">31</span><span class="w"> </span><span class="c1">// FOR DEBUGGING opSimulation (DON'T FORGET TO CALL make install)</span> +<span class="linenos">32</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"opsimulation"</span><span class="p">,</span> +<span class="linenos">33</span><span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"cppdbg"</span><span class="p">,</span> +<span class="linenos">34</span><span class="w"> </span><span class="s2">"request"</span><span class="o">:</span><span class="w"> </span><span class="s2">"launch"</span><span class="p">,</span> +<span class="linenos">35</span><span class="w"> </span><span class="s2">"program"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${workspaceFolder}\\bin\\core\\opSimulation.exe"</span><span class="p">,</span> +<span class="linenos">36</span><span class="w"> </span><span class="s2">"args"</span><span class="o">:</span><span class="w"> </span><span class="p">[],</span> +<span class="linenos">37</span><span class="w"> </span><span class="s2">"stopAtEntry"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">38</span><span class="w"> </span><span class="s2">"cwd"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${workspaceFolder}\\bin\\core"</span><span class="p">,</span> +<span class="linenos">39</span><span class="w"> </span><span class="s2">"environment"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos">40</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">41</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"PATH"</span><span class="p">,</span> +<span class="linenos">42</span><span class="w"> </span><span class="s2">"value"</span><span class="o">:</span><span class="w"> </span><span class="s2">"$PATH:${command:msys2.root}\\bin;${command:mingw64.root}\\x86_64-w64-mingw32\\lib${command:cmake.buildkit.launch.path}"</span> +<span class="linenos">43</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">44</span><span class="w"> </span><span class="p">],</span> +<span class="linenos">45</span><span class="w"> </span><span class="s2">"externalConsole"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">46</span><span class="w"> </span><span class="s2">"MIMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"gdb"</span><span class="p">,</span> +<span class="linenos">47</span><span class="w"> </span><span class="s2">"miDebuggerPath"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:cmake.buildkit.gdb.exe}"</span><span class="p">,</span> +<span class="linenos">48</span><span class="w"> </span><span class="s2">"setupCommands"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos">49</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">50</span><span class="w"> </span><span class="s2">"description"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Enable pretty-printing for gdb"</span><span class="p">,</span> +<span class="linenos">51</span><span class="w"> </span><span class="s2">"text"</span><span class="o">:</span><span class="w"> </span><span class="s2">"-enable-pretty-printing"</span><span class="p">,</span> +<span class="linenos">52</span><span class="w"> </span><span class="s2">"ignoreFailures"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> +<span class="linenos">53</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">54</span><span class="w"> </span><span class="p">]</span> +<span class="linenos">55</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">56</span><span class="w"> </span><span class="p">]</span> +<span class="linenos">57</span><span class="p">}</span> +</pre></div> +</div> +</div> +<p><a class="reference download internal" download="" href="../../_downloads/29dd021e0bdb423fc1a0b9b1d8df02f7/launch.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> +</div><div aria-labelledby="tab-4-4-1" class="sphinx-tabs-panel" hidden="true" id="panel-4-4-1" name="4-1" role="tabpanel" tabindex="0"><div class="literal-block-wrapper docutils container" id="id9"> +<div class="code-block-caption"><span class="caption-text">launch.json</span><a class="headerlink" href="#id9" title="Link to this code">ïƒ</a></div> +<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="p">{</span> +<span class="linenos"> 2</span><span class="w"> </span><span class="s2">"version"</span><span class="o">:</span><span class="w"> </span><span class="s2">"0.2.0"</span><span class="p">,</span> +<span class="linenos"> 3</span><span class="w"> </span><span class="s2">"configurations"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos"> 4</span><span class="w"> </span><span class="p">{</span> +<span class="linenos"> 5</span><span class="w"> </span><span class="c1">// FOR TESTMATE (SELECTED TEST) AND CMAKE (DEBUG CMAKE TARGET)</span> +<span class="linenos"> 6</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"CMake Target"</span><span class="p">,</span> +<span class="linenos"> 7</span><span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"cppdbg"</span><span class="p">,</span> +<span class="linenos"> 8</span><span class="w"> </span><span class="s2">"request"</span><span class="o">:</span><span class="w"> </span><span class="s2">"launch"</span><span class="p">,</span> +<span class="linenos"> 9</span><span class="w"> </span><span class="s2">"program"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${command:cmake.launchTargetPath}"</span><span class="p">,</span> +<span class="linenos">10</span><span class="w"> </span><span class="s2">"args"</span><span class="o">:</span><span class="w"> </span><span class="p">[],</span> +<span class="linenos">11</span><span class="w"> </span><span class="s2">"stopAtEntry"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">12</span><span class="w"> </span><span class="s2">"cwd"</span><span class="o">:</span><span class="w"> </span><span class="s2">"${workspaceFolder}"</span><span class="p">,</span> +<span class="linenos">13</span><span class="w"> </span><span class="s2">"externalConsole"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">14</span><span class="w"> </span><span class="s2">"MIMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"gdb"</span><span class="p">,</span> +<span class="linenos">15</span><span class="w"> </span><span class="s2">"setupCommands"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos">16</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">17</span><span class="w"> </span><span class="s2">"description"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Enable pretty-printing for gdb"</span><span class="p">,</span> +<span class="linenos">18</span><span class="w"> </span><span class="s2">"text"</span><span class="o">:</span><span class="w"> </span><span class="s2">"-enable-pretty-printing"</span><span class="p">,</span> +<span class="linenos">19</span><span class="w"> </span><span class="s2">"ignoreFailures"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> +<span class="linenos">20</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">21</span><span class="w"> </span><span class="p">]</span> +<span class="linenos">22</span><span class="w"> </span><span class="p">},</span> +<span class="linenos">23</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">24</span><span class="w"> </span><span class="c1">// FOR DEBUGGING opSimulation (DON'T FORGET TO CALL make install)</span> +<span class="linenos">25</span><span class="w"> </span><span class="s2">"name"</span><span class="o">:</span><span class="w"> </span><span class="s2">"opsimulation"</span><span class="p">,</span> +<span class="linenos">26</span><span class="w"> </span><span class="s2">"type"</span><span class="o">:</span><span class="w"> </span><span class="s2">"cppdbg"</span><span class="p">,</span> +<span class="linenos">27</span><span class="w"> </span><span class="s2">"request"</span><span class="o">:</span><span class="w"> </span><span class="s2">"launch"</span><span class="p">,</span> +<span class="linenos">28</span><span class="w"> </span><span class="s2">"program"</span><span class="o">:</span><span class="w"> </span><span class="s2">"/usr/local/openPASS/bin/core/opSimulation"</span><span class="p">,</span> +<span class="linenos">29</span><span class="w"> </span><span class="s2">"args"</span><span class="o">:</span><span class="w"> </span><span class="p">[],</span> +<span class="linenos">30</span><span class="w"> </span><span class="s2">"stopAtEntry"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">31</span><span class="w"> </span><span class="s2">"cwd"</span><span class="o">:</span><span class="w"> </span><span class="s2">"/usr/local/openPASS/bin/core/"</span><span class="p">,</span> +<span class="linenos">32</span><span class="w"> </span><span class="s2">"externalConsole"</span><span class="o">:</span><span class="w"> </span><span class="kc">false</span><span class="p">,</span> +<span class="linenos">33</span><span class="w"> </span><span class="s2">"MIMode"</span><span class="o">:</span><span class="w"> </span><span class="s2">"gdb"</span><span class="p">,</span> +<span class="linenos">34</span><span class="w"> </span><span class="s2">"setupCommands"</span><span class="o">:</span><span class="w"> </span><span class="p">[</span> +<span class="linenos">35</span><span class="w"> </span><span class="p">{</span> +<span class="linenos">36</span><span class="w"> </span><span class="s2">"description"</span><span class="o">:</span><span class="w"> </span><span class="s2">"Enable pretty-printing for gdb"</span><span class="p">,</span> +<span class="linenos">37</span><span class="w"> </span><span class="s2">"text"</span><span class="o">:</span><span class="w"> </span><span class="s2">"-enable-pretty-printing"</span><span class="p">,</span> +<span class="linenos">38</span><span class="w"> </span><span class="s2">"ignoreFailures"</span><span class="o">:</span><span class="w"> </span><span class="kc">true</span> +<span class="linenos">39</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">40</span><span class="w"> </span><span class="p">]</span> +<span class="linenos">41</span><span class="w"> </span><span class="p">}</span> +<span class="linenos">42</span><span class="w"> </span><span class="p">]</span> +<span class="linenos">43</span><span class="p">}</span> +</pre></div> +</div> +</div> +<p><a class="reference download internal" download="" href="../../_downloads/f717c80213b149820a0dc8e07e803940/launch.json"><code class="xref download docutils literal notranslate"><span class="pre">Download</span></code></a></p> +</div></div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>IntelliSense uses the <code class="docutils literal notranslate"><span class="pre">compile_commands.json</span></code> of generated through <code class="docutils literal notranslate"><span class="pre">CMAKE_EXPORT_COMPILE_COMMANDS=ON</span></code> (see <code class="docutils literal notranslate"><span class="pre">settings.json</span></code>). +This is necessary for proper resolution of the include files.</p> +</div> +</section> +</section> +<section id="troubleshooting"> +<h2>Troubleshooting<a class="headerlink" href="#troubleshooting" title="Link to this heading">ïƒ</a></h2> +<p><img alt="win_only" src="../../_images/win_only.png" /> <strong>Program does not start</strong></p> +<p>The most effective way to debug startup issues is by means of the <a class="reference external" href="https://docs.microsoft.com/en-us/sysinternals/downloads/procmon">Process Monitor</a>.</p> +<p>But normally, its a missing DLL. When executing the program via command line or explorer a message box should prompt which DLLs are missing. +A simple solution is to copy the according DLLs into the folder of the executable. +Another solution is to make the path available by extending the <code class="docutils literal notranslate"><span class="pre">PATH</span></code> environment variable. +Potential sources for missing DLLs are <code class="docutils literal notranslate"><span class="pre">C:\msys64\mingw64\bin</span></code>, <code class="docutils literal notranslate"><span class="pre">C:\msys64\mingw64\x86_64-w64-mingw32\lib</span></code>, and the <code class="docutils literal notranslate"><span class="pre">build</span></code> folder itself.</p> +<p><strong>Tests are not listed</strong></p> +<p>For test discovery, C++ Testmate needs to know the location of all additional dependencies. +This information is retrieved from the current debug configuration.</p> +<ol class="arabic simple"> +<li><p>Testmate discovers tests only after they are built. +It pays to <code class="docutils literal notranslate"><span class="pre">Run</span> <span class="pre">CTest</span></code> to build all test targets. +After this, you should see all tests in the testing pane on the left.</p></li> +<li><p>Still not listed? Set <code class="docutils literal notranslate"><span class="pre">testMate.cpp.log.logfile</span></code> in <code class="docutils literal notranslate"><span class="pre">settings.json</span></code> and check log.</p> +<ol class="arabic simple"> +<li><p>Test executable not mentioned at all: +Executable name might not fit (check glob pattern in <code class="docutils literal notranslate"><span class="pre">testMate.cpp.test.executables</span></code>).</p></li> +<li><p>Log reports <em>Error: Not a supported test executable</em>: a library/DLL might be missing.</p></li> +</ol> +</li> +</ol> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../10_ide_support.html" class="btn btn-neutral float-left" title="IDE Support" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../20_documentation.html" class="btn btn-neutral float-right" title="Documentation Concept" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/genindex.html b/content/html/genindex.html index a0ff170fbde79eed7879c33d9022e152e76a74c9..0f6b190220d38d9d488d07c9621c711693b0a2e1 100644 --- a/content/html/genindex.html +++ b/content/html/genindex.html @@ -1,268 +1,268 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Index — openPASS Documentation</title> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="_static/jquery.js?v=5d32c60e"></script> - <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="_static/documentation_options.js?v=afa6e5cd"></script> - <script src="_static/doctools.js?v=888ff710"></script> - <script src="_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="_static/tabs.js?v=3030b3cb"></script> - <script src="_static/js/theme.js"></script> - <link rel="index" title="Index" href="#" /> - <link rel="search" title="Search" href="search.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="index.html" class="icon icon-home"> - openPASS - <img src="_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Index</li> - <li class="wy-breadcrumbs-aside"> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - -<h1 id="index">Index</h1> - -<div class="genindex-jumpbox"> - <a href="#A"><strong>A</strong></a> - | <a href="#C"><strong>C</strong></a> - | <a href="#D"><strong>D</strong></a> - | <a href="#F"><strong>F</strong></a> - | <a href="#G"><strong>G</strong></a> - | <a href="#M"><strong>M</strong></a> - | <a href="#O"><strong>O</strong></a> - | <a href="#P"><strong>P</strong></a> - | <a href="#S"><strong>S</strong></a> - | <a href="#T"><strong>T</strong></a> - -</div> -<h2 id="A">A</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-ADAS"><strong>ADAS</strong></a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-AEB"><strong>AEB</strong></a> -</li> - </ul></td> -</tr></table> - -<h2 id="C">C</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-Channel"><strong>Channel</strong></a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-COG"><strong>COG</strong></a> -</li> - <li><a href="other_information/20_glossary.html#term-Component"><strong>Component</strong></a> -</li> - </ul></td> -</tr></table> - -<h2 id="D">D</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-Dynamics"><strong>Dynamics</strong></a> -</li> - </ul></td> -</tr></table> - -<h2 id="F">F</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-FMI"><strong>FMI</strong></a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-FMU"><strong>FMU</strong></a> -</li> - </ul></td> -</tr></table> - -<h2 id="G">G</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-GIDAS"><strong>GIDAS</strong></a> -</li> - </ul></td> -</tr></table> - -<h2 id="M">M</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-MinGW"><strong>MinGW</strong></a> -</li> - <li><a href="other_information/20_glossary.html#term-Model"><strong>Model</strong></a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-Module"><strong>Module</strong></a> -</li> - <li><a href="other_information/20_glossary.html#term-MSYS"><strong>MSYS</strong></a> -</li> - <li><a href="other_information/20_glossary.html#term-MSYS2"><strong>MSYS2</strong></a> -</li> - </ul></td> -</tr></table> - -<h2 id="O">O</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-OD"><strong>OD</strong></a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-openPASS"><strong>openPASS</strong></a> -</li> - <li><a href="other_information/20_glossary.html#term-OSI"><strong>OSI</strong></a> -</li> - </ul></td> -</tr></table> - -<h2 id="P">P</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-PCM"><strong>PCM</strong></a> -</li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-PreCASE"><strong>PreCASE</strong></a> -</li> - </ul></td> -</tr></table> - -<h2 id="S">S</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-Scenario"><strong>Scenario</strong></a> -</li> - </ul></td> -</tr></table> - -<h2 id="T">T</h2> -<table style="width: 100%" class="indextable genindextable"><tr> - <td style="width: 33%; vertical-align: top;"><ul> - <li><a href="other_information/20_glossary.html#term-TTC"><strong>TTC</strong></a> -</li> - </ul></td> -</tr></table> - - - - </div> - </div> - <footer> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="./"> +<head> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Index — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="_static/jquery.js?v=5d32c60e"></script> + <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="_static/documentation_options.js?v=6efca38a"></script> + <script src="_static/doctools.js?v=888ff710"></script> + <script src="_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="_static/js/theme.js"></script> + <link rel="index" title="Index" href="#" /> + <link rel="search" title="Search" href="search.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="index.html" class="icon icon-home"> + openPASS + <img src="_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Index</li> + <li class="wy-breadcrumbs-aside"> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + +<h1 id="index">Index</h1> + +<div class="genindex-jumpbox"> + <a href="#A"><strong>A</strong></a> + | <a href="#C"><strong>C</strong></a> + | <a href="#D"><strong>D</strong></a> + | <a href="#F"><strong>F</strong></a> + | <a href="#G"><strong>G</strong></a> + | <a href="#M"><strong>M</strong></a> + | <a href="#O"><strong>O</strong></a> + | <a href="#P"><strong>P</strong></a> + | <a href="#S"><strong>S</strong></a> + | <a href="#T"><strong>T</strong></a> + +</div> +<h2 id="A">A</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-ADAS"><strong>ADAS</strong></a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-AEB"><strong>AEB</strong></a> +</li> + </ul></td> +</tr></table> + +<h2 id="C">C</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-Channel"><strong>Channel</strong></a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-COG"><strong>COG</strong></a> +</li> + <li><a href="other_information/20_glossary.html#term-Component"><strong>Component</strong></a> +</li> + </ul></td> +</tr></table> + +<h2 id="D">D</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-Dynamics"><strong>Dynamics</strong></a> +</li> + </ul></td> +</tr></table> + +<h2 id="F">F</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-FMI"><strong>FMI</strong></a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-FMU"><strong>FMU</strong></a> +</li> + </ul></td> +</tr></table> + +<h2 id="G">G</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-GIDAS"><strong>GIDAS</strong></a> +</li> + </ul></td> +</tr></table> + +<h2 id="M">M</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-MinGW"><strong>MinGW</strong></a> +</li> + <li><a href="other_information/20_glossary.html#term-Model"><strong>Model</strong></a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-Module"><strong>Module</strong></a> +</li> + <li><a href="other_information/20_glossary.html#term-MSYS"><strong>MSYS</strong></a> +</li> + <li><a href="other_information/20_glossary.html#term-MSYS2"><strong>MSYS2</strong></a> +</li> + </ul></td> +</tr></table> + +<h2 id="O">O</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-OD"><strong>OD</strong></a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-openPASS"><strong>openPASS</strong></a> +</li> + <li><a href="other_information/20_glossary.html#term-OSI"><strong>OSI</strong></a> +</li> + </ul></td> +</tr></table> + +<h2 id="P">P</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-PCM"><strong>PCM</strong></a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-PreCASE"><strong>PreCASE</strong></a> +</li> + </ul></td> +</tr></table> + +<h2 id="S">S</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-Scenario"><strong>Scenario</strong></a> +</li> + </ul></td> +</tr></table> + +<h2 id="T">T</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="other_information/20_glossary.html#term-TTC"><strong>TTC</strong></a> +</li> + </ul></td> +</tr></table> + + + + </div> + </div> + <footer> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/index.html b/content/html/index.html index ca58a7f04cc86aed2a08bb11a43b66fa6b30ed08..ff9ebc0e97934d4bbab9fe68f32e86ab95d96a14 100644 --- a/content/html/index.html +++ b/content/html/index.html @@ -1,219 +1,204 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>openPASS Documentation — openPASS Documentation</title> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="_static/jquery.js?v=5d32c60e"></script> - <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="_static/documentation_options.js?v=afa6e5cd"></script> - <script src="_static/doctools.js?v=888ff710"></script> - <script src="_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="_static/js/theme.js"></script> - <link rel="index" title="Index" href="genindex.html" /> - <link rel="search" title="Search" href="search.html" /> - <link rel="next" title="Getting Started" href="installation_guide/10_getting_started.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="#" class="icon icon-home"> - openPASS - <img src="_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="#">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="#" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">openPASS Documentation</li> - <li class="wy-breadcrumbs-aside"> - <a href="_sources/index.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="openpass-documentation"> -<h1>openPASS Documentation<a class="headerlink" href="#openpass-documentation" title="Link to this heading">ïƒ</a></h1> -<p>The openPASS (Open Platform for Assessment of Safety Systems) tool is a developed framework for the simulation of interaction between traffic participants to evaluate and parametrize active safety systems. -The simulation is based on a specific situation configuration and can contain several simulation runs, which differ due to random parameters.</p> -<p>The software suite of openPASS started as a set of stand-alone applications, which can be installed and configured individually. -Over time, especially the graphical user interface evolved to a single entry point, enabling the average user to use openPASS as a “monolithic†tool.</p> -<p>This guide contains information about installation, configuration and usage of all tools in the <strong>openPASS</strong> environment.</p> -<div class="toctree-wrapper compound"> -<p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -</div> -<div class="admonition-todo admonition" id="id1"> -<p class="admonition-title">Todo</p> -<p>Update section for new react GUI.</p> -</div> -<p>The GUI lets the user configure the simulation and generate configuration files from all set parameters. -Based on these the simulation core calculates different simulation runs and compiles trace files for further processing.</p> -<div class="toctree-wrapper compound"> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -</div> -<div class="toctree-wrapper compound"> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -</div> -<div class="toctree-wrapper compound"> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -</div> -<div class="toctree-wrapper compound"> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="other_information/40_license.html">License</a></li> -</ul> -</div> -</section> -<section id="todolist"> -<h1>Todolist<a class="headerlink" href="#todolist" title="Link to this heading">ïƒ</a></h1> -<div class="admonition-todo admonition"> -<p class="admonition-title">Todo</p> -<p>Update section for new react GUI.</p> -</div> -<p class="todo-source">(The <a class="reference internal" href="#id1"><em>original entry</em></a> is located in C:/Users/genie.openpass/jenkins_agent/workspace/openPASS_simulator_build_v1.1.0/build/doc/source/index.rst, line 31.)</p> -<div class="admonition-todo admonition"> -<p class="admonition-title">Todo</p> -<p>Update this paragraph for the new react GUI.</p> -</div> -<p class="todo-source">(The <a class="reference internal" href="user_guide/tutorials/10_scenario_simulation.html#id2"><em>original entry</em></a> is located in C:/Users/genie.openpass/jenkins_agent/workspace/openPASS_simulator_build_v1.1.0/build/doc/source/user_guide/tutorials/10_scenario_simulation.rst, line 27.)</p> -<div class="admonition-todo admonition"> -<p class="admonition-title">Todo</p> -<p>Write tutorial for PCM simulation</p> -</div> -<p class="todo-source">(The <a class="reference internal" href="user_guide/tutorials/20_pcm_simulation.html#id1"><em>original entry</em></a> is located in C:/Users/genie.openpass/jenkins_agent/workspace/openPASS_simulator_build_v1.1.0/build/doc/source/user_guide/tutorials/20_pcm_simulation.rst, line 17.)</p> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="installation_guide/10_getting_started.html" class="btn btn-neutral float-right" title="Getting Started" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="./"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>openPASS Documentation — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="_static/jquery.js?v=5d32c60e"></script> + <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="_static/documentation_options.js?v=6efca38a"></script> + <script src="_static/doctools.js?v=888ff710"></script> + <script src="_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="_static/js/theme.js"></script> + <link rel="index" title="Index" href="genindex.html" /> + <link rel="search" title="Search" href="search.html" /> + <link rel="next" title="Getting Started" href="installation_guide/10_getting_started.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="#" class="icon icon-home"> + openPASS + <img src="_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="#">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="#" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">openPASS Documentation</li> + <li class="wy-breadcrumbs-aside"> + <a href="_sources/index.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="openpass-documentation"> +<h1>openPASS Documentation<a class="headerlink" href="#openpass-documentation" title="Link to this heading">ïƒ</a></h1> +<p>The openPASS (Open Platform for Assessment of Safety Systems) tool is a developed framework for the simulation of interaction between traffic participants to evaluate and parametrize active safety systems. +The simulation is based on a specific situation configuration and can contain several simulation runs, which differ due to random parameters.</p> +<p>The software suite of openPASS started as a set of stand-alone applications, which can be installed and configured individually. +In the future, the graphical user interface opGUI will evolve to a single entry point, enabling the average user to use openPASS as a “monolithic†tool.</p> +<p>This guide contains information about installation, configuration and usage of all tools in the <strong>openPASS</strong> environment.</p> +<div class="toctree-wrapper compound"> +<p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +</div> +<div class="toctree-wrapper compound"> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +</div> +<div class="toctree-wrapper compound"> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +</div> +<div class="toctree-wrapper compound"> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +</div> +<div class="toctree-wrapper compound"> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="other_information/40_license.html">License</a></li> +</ul> +</div> +</section> +<section id="todolist"> +<h1>Todolist<a class="headerlink" href="#todolist" title="Link to this heading">ïƒ</a></h1> +<div class="admonition-todo admonition"> +<p class="admonition-title">Todo</p> +<p>Include link and explaination to opGUI documentation how to run PCM simulations</p> +</div> +<p class="todo-source">(The <a class="reference internal" href="user_guide/tutorials/20_pcm_simulation.html#id1"><em>original entry</em></a> is located in /home/jenkins/agent/workspace/openPASS_simulator_build_v1.2.0/build/doc/source/user_guide/tutorials/20_pcm_simulation.rst, line 17.)</p> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="installation_guide/10_getting_started.html" class="btn btn-neutral float-right" title="Getting Started" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/installation_guide/10_getting_started.html b/content/html/installation_guide/10_getting_started.html index 80e59544144339a8f46a2cd3f2bcb3a07207e37a..51c31546dc2c84a65df42e5691c4cda0b666104d 100644 --- a/content/html/installation_guide/10_getting_started.html +++ b/content/html/installation_guide/10_getting_started.html @@ -1,183 +1,185 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Getting Started — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/tabs.js?v=3030b3cb"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="System Requirements" href="15_system_requirements.html" /> - <link rel="prev" title="openPASS Documentation" href="../index.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Getting Started</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/installation_guide/10_getting_started.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="getting-started"> -<span id="sim-install-guide"></span><h1>Getting Started<a class="headerlink" href="#getting-started" title="Link to this heading">ïƒ</a></h1> -<p>This guide will lead you through the installation steps to set up the <strong>openPASS</strong> simulator and run your first simulation. -The process is described for Windows and Linux as target platforms. -Please check the <a class="reference internal" href="15_system_requirements.html#system-requirements"><span class="std std-ref">System Requirements</span></a> for the required hardware setup.</p> -<p>The installation manual is structured as follows:</p> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Building manually</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Building with Conan</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><p><strong>Setting up your system</strong></p> -<ul class="simple"> -<li><p><a class="reference internal" href="20_install_prerequisites.html#prerequisites"><span class="std std-ref">Installing Prerequisites</span></a> contains instructions for installing the thirdparty software required by <strong>openPASS</strong></p></li> -</ul> -<p><strong>Installation of the simulator</strong></p> -<ul class="simple"> -<li><p><a class="reference internal" href="30_install_openpass.html#download-and-install-openpass"><span class="std std-ref">Installing openPASS</span></a> describes how to compile and run <strong>openPASS</strong> once all prerequisites are installed</p></li> -</ul> -</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>Not Recommended to install this way. Not finished and fully tested yet.</p> -</div> -<p><strong>Setting up Conan</strong></p> -<ul class="simple"> -<li><p><a class="reference internal" href="60_conan.html#building-with-conan"><span class="std std-ref">Building with Conan</span></a> contains the instructions to set Conan up.</p></li> -</ul> -<p><strong>Installation of the simulator</strong></p> -<ul class="simple"> -<li><p><a class="reference internal" href="60_conan.html#building-with-conan"><span class="std std-ref">Building with Conan</span></a> describes how to compile and run <strong>openPASS</strong> once all prerequisites are installed</p></li> -</ul> -</div></div> -<p><strong>Run a default simulation</strong></p> -<ul class="simple"> -<li><p><a class="reference internal" href="../user_guide/20_tutorials.html#tutorials"><span class="std std-ref">Tutorials</span></a> shows how to run your first simulations</p></li> -</ul> -<p><strong>Further guidance</strong></p> -<ul class="simple"> -<li><p><a class="reference internal" href="further_guidance/10_cmake.html#cmake"><span class="std std-ref">CMake Variables and Options</span></a> holds information about available variables and options for the cross-platform build environment CMake</p></li> -<li><p><a class="reference internal" href="../developer_information/ide_support/30_vscode.html#vscode"><span class="std std-ref">Working with Visual Studio Code</span></a> describes the basic setup for Visual Studio Code</p></li> -</ul> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../index.html" class="btn btn-neutral float-left" title="openPASS Documentation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="15_system_requirements.html" class="btn btn-neutral float-right" title="System Requirements" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Getting Started — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + <link rel="stylesheet" type="text/css" href="../_static/tabs.css?v=a5c4661c" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/tabs.js?v=3030b3cb"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="System Requirements" href="15_system_requirements.html" /> + <link rel="prev" title="openPASS Documentation" href="../index.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Getting Started</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/installation_guide/10_getting_started.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="getting-started"> +<span id="sim-install-guide"></span><h1>Getting Started<a class="headerlink" href="#getting-started" title="Link to this heading">ïƒ</a></h1> +<p>This guide will lead you through the installation steps to set up the <strong>openPASS</strong> simulator and run your first simulation. +The process is described for Windows and Linux as target platforms. +Please check the <a class="reference internal" href="15_system_requirements.html#system-requirements"><span class="std std-ref">System Requirements</span></a> for the required hardware setup.</p> +<p>The installation manual is structured as follows:</p> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Building manually</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Building with Conan</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><p><strong>Setting up your system</strong></p> +<ul class="simple"> +<li><p><a class="reference internal" href="20_install_prerequisites.html#prerequisites"><span class="std std-ref">Installing Prerequisites</span></a> contains instructions for installing the thirdparty software required by <strong>openPASS</strong></p></li> +</ul> +<p><strong>Installation of the simulator</strong></p> +<ul class="simple"> +<li><p><a class="reference internal" href="30_install_openpass.html#download-and-install-openpass"><span class="std std-ref">Installing openPASS</span></a> describes how to compile and run <strong>openPASS</strong> once all prerequisites are installed</p></li> +</ul> +</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>Not Recommended to install this way. Not finished and fully tested yet.</p> +</div> +<p><strong>Setting up Conan</strong></p> +<ul class="simple"> +<li><p><a class="reference internal" href="60_conan.html#building-with-conan"><span class="std std-ref">Building with Conan</span></a> contains the instructions to set Conan up.</p></li> +</ul> +<p><strong>Installation of the simulator</strong></p> +<ul class="simple"> +<li><p><a class="reference internal" href="60_conan.html#building-with-conan"><span class="std std-ref">Building with Conan</span></a> describes how to compile and run <strong>openPASS</strong> once all prerequisites are installed</p></li> +</ul> +</div></div> +<p><strong>Run a default simulation</strong></p> +<ul class="simple"> +<li><p><a class="reference internal" href="../user_guide/20_tutorials.html#tutorials"><span class="std std-ref">Tutorials</span></a> shows how to run your first simulations</p></li> +</ul> +<p><strong>Further guidance</strong></p> +<ul class="simple"> +<li><p><a class="reference internal" href="further_guidance/10_cmake.html#cmake"><span class="std std-ref">CMake Variables and Options</span></a> holds information about available variables and options for the cross-platform build environment CMake</p></li> +<li><p><a class="reference internal" href="../developer_information/ide_support/30_vscode.html#vscode"><span class="std std-ref">Working with Visual Studio Code</span></a> describes the basic setup for Visual Studio Code</p></li> +</ul> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../index.html" class="btn btn-neutral float-left" title="openPASS Documentation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="15_system_requirements.html" class="btn btn-neutral float-right" title="System Requirements" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/installation_guide/15_system_requirements.html b/content/html/installation_guide/15_system_requirements.html index 6548d2813c42f8623c2e450b364ddeb76962dac9..5615bf37d05dad18037832fdc97508688ec78d19 100644 --- a/content/html/installation_guide/15_system_requirements.html +++ b/content/html/installation_guide/15_system_requirements.html @@ -1,181 +1,182 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>System Requirements — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="Installing Prerequisites" href="20_install_prerequisites.html" /> - <link rel="prev" title="Getting Started" href="10_getting_started.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">System Requirements</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/installation_guide/15_system_requirements.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="system-requirements"> -<span id="id1"></span><h1>System Requirements<a class="headerlink" href="#system-requirements" title="Link to this heading">ïƒ</a></h1> -<p>Simulations with <strong>openPASS</strong> are designed to be very lightweight and performant, without imposing huge requirements on the underlying hardware. -Thus, <strong>openPASS</strong> simulations run as a single core application and do not utilize GPU. -Only the build process during installation of <strong>openPASS</strong> makes use of multiple cores, so it is recommended to have at least a 4 core CPU. -In the table below, minimal requirements are listed along with a commonly used, well working example setup.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>System Specification</p></th> -<th class="head"><p>Minimal Requirements</p></th> -<th class="head"><p>Tested Setup (exemplarily)</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Operating System</p></td> -<td><p>Windows or Linux (Debian Bookworm or Ubuntu 22.04 recommended)</p></td> -<td><p>Windows 10</p></td> -</tr> -<tr class="row-odd"><td><p>CPU</p></td> -<td><p>Intel x64 Architecture with at least 1,50 GHz clock frequency</p></td> -<td><p>Intel i5-10310U</p></td> -</tr> -<tr class="row-even"><td><p>RAM</p></td> -<td><p>at least 8 GB</p></td> -<td><p>8 GB</p></td> -</tr> -<tr class="row-odd"><td><p>GPU</p></td> -<td><p>not used by the simulation</p></td> -<td><p>Intel UHD Graphics 620</p></td> -</tr> -<tr class="row-even"><td><p>Others</p></td> -<td><p>1 GB free hard disk space</p></td> -<td></td> -</tr> -</tbody> -</table> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="10_getting_started.html" class="btn btn-neutral float-left" title="Getting Started" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="20_install_prerequisites.html" class="btn btn-neutral float-right" title="Installing Prerequisites" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>System Requirements — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Installing Prerequisites" href="20_install_prerequisites.html" /> + <link rel="prev" title="Getting Started" href="10_getting_started.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">System Requirements</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/installation_guide/15_system_requirements.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="system-requirements"> +<span id="id1"></span><h1>System Requirements<a class="headerlink" href="#system-requirements" title="Link to this heading">ïƒ</a></h1> +<p>Simulations with <strong>openPASS</strong> are designed to be very lightweight and performant, without imposing huge requirements on the underlying hardware. +Thus, <strong>openPASS</strong> simulations run as a single core application and do not utilize GPU. +Only the build process during installation of <strong>openPASS</strong> makes use of multiple cores, so it is recommended to have at least a 4 core CPU. +In the table below, minimal requirements are listed along with a commonly used, well working example setup.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>System Specification</p></th> +<th class="head"><p>Minimal Requirements</p></th> +<th class="head"><p>Tested Setup (exemplarily)</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Operating System</p></td> +<td><p>Windows or Linux (Debian Bookworm or Ubuntu 22.04 recommended)</p></td> +<td><p>Windows 10</p></td> +</tr> +<tr class="row-odd"><td><p>CPU</p></td> +<td><p>Intel x64 Architecture with at least 1,50 GHz clock frequency</p></td> +<td><p>Intel i5-10310U</p></td> +</tr> +<tr class="row-even"><td><p>RAM</p></td> +<td><p>at least 8 GB</p></td> +<td><p>8 GB</p></td> +</tr> +<tr class="row-odd"><td><p>GPU</p></td> +<td><p>not used by the simulation</p></td> +<td><p>Intel UHD Graphics 620</p></td> +</tr> +<tr class="row-even"><td><p>Others</p></td> +<td><p>1 GB free hard disk space</p></td> +<td></td> +</tr> +</tbody> +</table> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="10_getting_started.html" class="btn btn-neutral float-left" title="Getting Started" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="20_install_prerequisites.html" class="btn btn-neutral float-right" title="Installing Prerequisites" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/installation_guide/20_install_prerequisites.html b/content/html/installation_guide/20_install_prerequisites.html index fb3a7b954c99747bc06e9a9e4504185f8ad637c3..7d0da8543740f60ff3d1ca7c3b96e28226f265e1 100644 --- a/content/html/installation_guide/20_install_prerequisites.html +++ b/content/html/installation_guide/20_install_prerequisites.html @@ -1,436 +1,444 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Installing Prerequisites — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/tabs.js?v=3030b3cb"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="Installing openPASS" href="30_install_openpass.html" /> - <link rel="prev" title="System Requirements" href="15_system_requirements.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Installing Prerequisites</a><ul> -<li class="toctree-l2"><a class="reference internal" href="#installing-the-build-environment">Installing the Build Environment</a></li> -<li class="toctree-l2"><a class="reference internal" href="#installing-the-binary-packages">Installing the Binary Packages</a></li> -<li class="toctree-l2"><a class="reference internal" href="#installing-the-dependencies">Installing the Dependencies</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Installing Prerequisites</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/installation_guide/20_install_prerequisites.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="installing-prerequisites"> -<span id="prerequisites"></span><h1>Installing Prerequisites<a class="headerlink" href="#installing-prerequisites" title="Link to this heading">ïƒ</a></h1> -<p>Before being able to compile and run <strong>openPASS</strong>, make sure to have all dependencies installed. -The third party software dependency of <strong>openPASS</strong> can be divided into:</p> -<ul class="simple"> -<li><p><strong>Build environment</strong>, which manages third party software and is used to compile and install <strong>openPASS</strong></p></li> -<li><p><strong>Binary packages</strong>, which can be easily installed via a package manager of the respective build environment</p></li> -<li><p><strong>Source packages</strong>, which need to be built from source code</p></li> -</ul> -<p>This section gives detailed information about the prerequisites and tested version.</p> -<section id="installing-the-build-environment"> -<span id="building-under-windows"></span><h2>Installing the Build Environment<a class="headerlink" href="#installing-the-build-environment" title="Link to this heading">ïƒ</a></h2> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><ol class="arabic"> -<li><p>MSYS2</p> -<p>On Windows, the build environment of choice are <a class="reference internal" href="../other_information/20_glossary.html#term-MSYS2"><span class="xref std std-term">MSYS2</span></a> programming tools. -<a class="reference internal" href="../other_information/20_glossary.html#term-MSYS2"><span class="xref std std-term">MSYS2</span></a> is used to install some third-party software on which <strong>openPASS</strong> depends. -Also, the unix-like shell simplifies c++ compilation on Windows. -For details, see <a class="reference external" href="https://www.msys2.org/">MSYS2 website</a>.</p> -</li> -<li id="msys2"><p>Download MSYS2</p> -<p>The latest 64-bit package is located in the Installation section of <a class="reference external" href="https://www.msys2.org/">MSYS2 website</a>.</p> -</li> -<li id="msys2-installation"><p>Install MSYS2</p> -<p>Run the downloaded executable and adjust suggested settings to your needs (defaults are fine). -In the following, it is assumed that MSYS2 is installed under <code class="docutils literal notranslate"><span class="pre">C:\msys64</span></code>.</p> -</li> -<li><p>Understand the Build Environment</p> -<p>MSYS2 provides three different environments, located in the MSYS2 installation directory:</p> -<figure class="align-center" id="fig-msys2-environments"> -<img alt="MSYS2 Apps" src="../_images/msys2.png" /> -</figure> -<p>MSYS2 Environments</p> -<ul class="simple"> -<li><p>MSYS2 MSYS: Common environment, i.e. for package management</p></li> -<li><p>MSYS2 MinGW 32-bit: A MinGW 32-bit environment</p></li> -<li><p>MSYS2 MinGW 64-bit: A MinGW 64-bit environment</p></li> -</ul> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<div class="line-block"> -<div class="line">MSYS2 MinGW 64-bit is <strong>the</strong> <strong>openPASS</strong> development environment and will be referred to as <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell.</div> -</div> -</div> -</li> -</ol> -</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"> -<span id="building-under-linux"></span><p>On Linux, no special build environment is needed. <strong>openPASS</strong> is developed under Debian 64-Bit, -which means that developing under a recent Ubuntu distribution will also work. -Debian Bookworm or Ubuntu 22.04 LTS is recommended. Debian uses <code class="docutils literal notranslate"><span class="pre">apt</span></code> (or <code class="docutils literal notranslate"><span class="pre">apt-get</span></code>) as package managing system. -Details will be given in <a class="reference internal" href="#binary-packages"><span class="std std-ref">Installing the Binary Packages</span></a> and <a class="reference internal" href="#building-prerequisites"><span class="std std-ref">Installing the Dependencies</span></a>.</p> -</div></div> -</section> -<section id="installing-the-binary-packages"> -<span id="binary-packages"></span><h2>Installing the Binary Packages<a class="headerlink" href="#installing-the-binary-packages" title="Link to this heading">ïƒ</a></h2> -<p>The first set of dependencies we need to install in order to successfully compile <strong>openPASS</strong> are the binary packages. These can be installed via appropiate package manager.</p> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-1-1-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-1-1-0" name="1-0" role="tab" tabindex="0">Windows (MSYS2)</button><button aria-controls="panel-1-1-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-1-1-1" name="1-1" role="tab" tabindex="-1">Linux (Debian Bookworm)</button></div><div aria-labelledby="tab-1-1-0" class="sphinx-tabs-panel" id="panel-1-1-0" name="1-0" role="tabpanel" tabindex="0"><ol class="arabic"> -<li><p>Open <code class="docutils literal notranslate"><span class="pre">MSYS2</span> <span class="pre">MinGW</span> <span class="pre">64-bit</span></code> and execute the following package manager <code class="docutils literal notranslate"><span class="pre">pacman</span></code> commands to update the package repository and upgrade system packages:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pacman</span> <span class="o">-</span><span class="n">Syuu</span> -</pre></div> -</div> -<p>If the upgrade requires a restart of MSYS2, resume the upgrade by re-opening the shell and call:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pacman</span> <span class="o">-</span><span class="n">Suu</span> -</pre></div> -</div> -</li> -<li><p>Required packages (can be specified in single command line if desired):</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pacman<span class="w"> </span>-S<span class="w"> </span><span class="se">\</span> -<span class="w"> </span><span class="sb">`</span><span class="c1"># for simulator` \</span> -<span class="w"> </span>mingw-w64-x86_64-boost<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-ccache<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-cmake<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-doxygen<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-gcc<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-gdb<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-graphviz<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-gtest<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-make<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-qt5-base<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-qt5-xmlpatterns<span class="w"> </span><span class="se">\</span> -<span class="w"> </span><span class="sb">`</span><span class="c1"># for documentation` \</span> -<span class="w"> </span>mingw-w64-x86_64-python<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-python-pip<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-python-lxml<span class="w"> </span><span class="se">\</span> -<span class="w"> </span><span class="sb">`</span><span class="c1"># fonts and equation rendering in the documentation` \</span> -<span class="w"> </span>mingw-w64-x86_64-texlive-bin<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-texlive-core<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-texlive-font-utils<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-texlive-latex-extra<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-zziplib<span class="w"> </span><span class="se">\</span> -<span class="w"> </span><span class="sb">`</span><span class="c1"># documentation with only pacman` \</span> -<span class="w"> </span>libxslt-devel<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-python-sphinx<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-python-sphinx-tabs<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-python-sphinx_rtd_theme<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-python-setuptools<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-python-myst-parser<span class="w"> </span><span class="se">\</span> -<span class="w"> </span><span class="sb">`</span><span class="c1"># for testing (optional)` \</span> -<span class="w"> </span>mingw-w64-x86_64-python-pytest<span class="w"> </span><span class="se">\</span> -<span class="w"> </span>mingw-w64-x86_64-python-pandas<span class="w"> </span><span class="se">\</span> -<span class="w"> </span><span class="sb">`</span><span class="c1"># for developing purposes (optional)` \</span> -<span class="w"> </span>mingw-w64-x86_64-clang -</pre></div> -</div> -<div class="admonition-versions admonition"> -<p class="admonition-title">Versions</p> -<div class="line-block"> -<div class="line">MSYS2 provides rolling release versions, so some packages might be too “up-to-dateâ€.</div> -</div> -</div> -</li> -<li><p>Required python packages</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip3</span> <span class="n">install</span> <span class="s2">"approvaltests==3.1.0"</span> <span class="n">breathe</span> <span class="s2">"conan>2.0"</span> <span class="n">empty</span><span class="o">-</span><span class="n">files</span> <span class="n">exhale</span> <span class="n">watchdog</span> -</pre></div> -</div> -</li> -</ol> -<div class="admonition-git-ssh admonition"> -<p class="admonition-title">GIT/SSH</p> -<p>The <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell does not access an already existing git installation or available SSH keys. -Make sure, to update/copy your configuration and credentials within the <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell before working with git.</p> -</div> -</div><div aria-labelledby="tab-1-1-1" class="sphinx-tabs-panel" hidden="true" id="panel-1-1-1" name="1-1" role="tabpanel" tabindex="0"><ol class="arabic"> -<li><p>Update the package database on the system</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">apt</span> <span class="n">update</span> -</pre></div> -</div> -</li> -<li><p>Upgrade existing software to latest version</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">apt</span> <span class="n">upgrade</span> -</pre></div> -</div> -</li> -<li><p>Install required binary packages</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># for simulator</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">antlr4</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">build</span><span class="o">-</span><span class="n">essential</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">ca</span><span class="o">-</span><span class="n">certificates</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">ccache</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">cmake</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">clang</span><span class="o">-</span><span class="nb">format</span><span class="o">-</span><span class="mi">15</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">doxygen</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">g</span><span class="o">++</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">gcc</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">git</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">googletest</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">graphviz</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">libboost</span><span class="o">-</span><span class="n">filesystem</span><span class="o">-</span><span class="n">dev</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">libgmock</span><span class="o">-</span><span class="n">dev</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">libgtest</span><span class="o">-</span><span class="n">dev</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">libprotobuf</span><span class="o">-</span><span class="n">dev</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">libqt5xmlpatterns5</span><span class="o">-</span><span class="n">dev</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">libantlr4</span><span class="o">-</span><span class="n">runtime4</span><span class="mf">.9</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">libantlr4</span><span class="o">-</span><span class="n">runtime</span><span class="o">-</span><span class="n">java</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">libantlr4</span><span class="o">-</span><span class="n">runtime</span><span class="o">-</span><span class="n">dev</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">openjdk</span><span class="o">-</span><span class="mi">17</span><span class="o">-</span><span class="n">jre</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">pkg</span><span class="o">-</span><span class="n">config</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">protobuf</span><span class="o">-</span><span class="n">compiler</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">python3</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">python3</span><span class="o">-</span><span class="n">distutils</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">python3</span><span class="o">-</span><span class="n">pip</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">qtbase5</span><span class="o">-</span><span class="n">dev</span> -<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">uuid</span><span class="o">-</span><span class="n">dev</span> - -<span class="c1"># python packages</span> -<span class="n">pip3</span> <span class="n">install</span> <span class="s2">"approvaltests==3.1.0"</span> <span class="n">empty</span><span class="o">-</span><span class="n">files</span> <span class="s2">"conan>2.0"</span> <span class="n">watchdog</span> -<span class="n">pip3</span> <span class="n">install</span> <span class="n">breathe</span> <span class="n">exhale</span> <span class="n">myst</span><span class="o">-</span><span class="n">parser</span> <span class="s2">"sphinx==7.2.6"</span> <span class="n">sphinx</span><span class="o">-</span><span class="n">rtd</span><span class="o">-</span><span class="n">theme</span> <span class="n">sphinx</span><span class="o">-</span><span class="n">tabs</span> <span class="n">sphinxcontrib</span><span class="o">-</span><span class="n">spelling</span> -</pre></div> -</div> -</li> -</ol> -</div></div> -<p><strong>EndToEnd Test Framework</strong></p> -<p>If end to end tests shall be executed, additional requirements have to be considered. -Please refer to <a class="reference internal" href="../advanced_topics/30_testing.html#testing-endtoend"><span class="std std-ref">EndToEnd Test Framework</span></a> for more details on installation of the prerequisites and usage of the framework.</p> -</section> -<section id="installing-the-dependencies"> -<span id="building-prerequisites"></span><h2>Installing the Dependencies<a class="headerlink" href="#installing-the-dependencies" title="Link to this heading">ïƒ</a></h2> -<p>This section describes how to compile prerequisites of <strong>openPASS</strong> using conan (<code class="docutils literal notranslate"><span class="pre">conan>2.0</span></code>).</p> -<p>The goal of this section is to build and install necessary packages into a suitable directory using conan.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>If you are unfamiliar to <code class="docutils literal notranslate"><span class="pre">conan</span></code> or working with it, Section <a class="reference internal" href="60_conan.html#building-with-conan"><span class="std std-ref">Building with Conan</span></a> might give you a short introduction on conan in the scope of building dependencies for <strong>openPASS</strong>.</p> -</div> -<p>To keep the installation process of <strong>openPASS</strong> and its dependencies as simple as possible, we recommend a specific folder structure. -If you strictly follow the recommended paths of this guide, no command modifications are necessary.</p> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-2-2-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-2-2-0" name="2-0" role="tab" tabindex="0">Notes for Windows</button><button aria-controls="panel-2-2-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-2-2-1" name="2-1" role="tab" tabindex="-1">Notes for Linux</button></div><div aria-labelledby="tab-2-2-0" class="sphinx-tabs-panel" id="panel-2-2-0" name="2-0" role="tabpanel" tabindex="0"><ul class="simple"> -<li><p>Recommended checkout path of <strong>openPASS</strong> repository: <code class="docutils literal notranslate"><span class="pre">C:\openpass</span></code></p></li> -<li><p>Dependency directory within the <strong>openPASS</strong> repository: <code class="docutils literal notranslate"><span class="pre">C:\deps</span></code></p></li> -<li><p>Recommended installation directory of <strong>openPASS</strong>: <code class="docutils literal notranslate"><span class="pre">C:\openPASS\bin\core</span></code></p></li> -</ul> -</div><div aria-labelledby="tab-2-2-1" class="sphinx-tabs-panel" hidden="true" id="panel-2-2-1" name="2-1" role="tabpanel" tabindex="0"><ul class="simple"> -<li><p>Recommended checkout path of <strong>openPASS</strong> repository: <code class="docutils literal notranslate"><span class="pre">~/openpass</span></code></p></li> -<li><p>Dependency directory within the <strong>openPASS</strong> repository: <code class="docutils literal notranslate"><span class="pre">~/deps</span></code></p></li> -<li><p>Recommended installation directory of <strong>openPASS</strong>: <code class="docutils literal notranslate"><span class="pre">/usr/local/openPASS/bin/core</span></code></p></li> -</ul> -</div></div> -<p>The above directory structure will be created by following the instructions of this guide.</p> -<ol class="arabic"> -<li><p>Clone <strong>openPASS</strong> repository</p> -<p>As described above, the checkout path of the repository is assumed to be the default <code class="docutils literal notranslate"><span class="pre">openpass</span></code>.</p> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-3-3-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-3-3-0" name="3-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-3-3-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-3-3-1" name="3-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-3-3-0" class="sphinx-tabs-panel" id="panel-3-3-0" name="3-0" role="tabpanel" tabindex="0"><p>Start <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">C</span><span class="o">/</span> -<span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">gitlab</span><span class="o">.</span><span class="n">eclipse</span><span class="o">.</span><span class="n">org</span><span class="o">/</span><span class="n">eclipse</span><span class="o">/</span><span class="n">openpass</span><span class="o">/</span><span class="n">opSimulation</span><span class="o">.</span><span class="n">git</span> <span class="n">openpass</span> -</pre></div> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>As stated in <a class="reference internal" href="#building-under-windows"><span class="std std-ref">Installing the Build Environment</span></a>, the windows programming tools suffer from a <cite>path length restriction</cite>. -This error manifests as strange <strong>file not found</strong> compile errors. -It is therefore recommended to use a short path for source code checkout, e.g. a drive letter. -This can also be done by the windows command <a class="reference external" href="https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/subst">subst</a>.</p> -</div> -</div><div aria-labelledby="tab-3-3-1" class="sphinx-tabs-panel" hidden="true" id="panel-3-3-1" name="3-1" role="tabpanel" tabindex="0"><p>Start <code class="docutils literal notranslate"><span class="pre">Bash</span></code> shell</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">~</span> -<span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">gitlab</span><span class="o">.</span><span class="n">eclipse</span><span class="o">.</span><span class="n">org</span><span class="o">/</span><span class="n">eclipse</span><span class="o">/</span><span class="n">openpass</span><span class="o">/</span><span class="n">opSimulation</span><span class="o">.</span><span class="n">git</span> <span class="n">openpass</span> -</pre></div> -</div> -</div></div> -</li> -<li><p>Navigate into repository and checkout main branch</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">openpass</span> -<span class="n">git</span> <span class="n">checkout</span> <span class="n">main</span> -</pre></div> -</div> -</li> -<li><p>The essential packages necessary for <strong>openPASS</strong> are listed in the file <code class="docutils literal notranslate"><span class="pre">utils/ci/conan/conanfile.txt</span></code>.</p> -<p>If a required package is available on ConanCenter, they will be used directly. -For packages not available on ConanCenter, the respective recipes are stored in the <code class="docutils literal notranslate"><span class="pre">utils/ci/conan/recipe</span></code> folder.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>It is important to have conancenter remote enabled. To check the status of conancenter and to enable, if it is disabled, execute the following commands</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">conan</span> <span class="n">remote</span> <span class="nb">list</span> -<span class="n">conan</span> <span class="n">remote</span> <span class="n">enable</span> <span class="n">conancenter</span> -</pre></div> -</div> -</div> -</li> -<li><p>There are two Conan profiles <code class="docutils literal notranslate"><span class="pre">conanprofile_linux</span></code> and <code class="docutils literal notranslate"><span class="pre">conanprofile_windows</span></code> available in the <code class="docutils literal notranslate"><span class="pre">utils/ci/conan/recipe</span></code> folder. -The compiler version and the path to the MSYS installation in these profiles can be adjusted to suit your specific environment, if necessary.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The recommended compiler is GCC. Usage of other compilers may lead to unexpected outcomes.</p> -</div> -</li> -<li><p>To build and install the dependencies, run the script <code class="docutils literal notranslate"><span class="pre">15_prepare_thirdParty.sh</span></code> located in <code class="docutils literal notranslate"><span class="pre">utils/ci/scripts</span></code>.</p> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-4-4-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-4-4-0" name="4-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-4-4-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-4-4-1" name="4-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-4-4-0" class="sphinx-tabs-panel" id="panel-4-4-0" name="4-0" role="tabpanel" tabindex="0"><ol class="arabic"> -<li><p>One of the dependencies of <strong>openPASS</strong> is OpenScenarioEngine which requires OpenSCENARIO API and it in turn requires JAVA executable to build. -If Java executable is not available on your machine, download the java from <a class="reference external" href="https://cdn.azul.com/zulu/bin/zulu11.50.19-ca-jdk11.0.12-win_x64.zip">here</a> and extract the zip file</p></li> -<li><p>If <code class="docutils literal notranslate"><span class="pre">C:\Downloads\zulu</span></code> is the extracted path, then add the variable JAVA_HOME to the environmental variable, and append the java executable path to the PATH environmental variable as below</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>export JAVA_HOME=/c/Downloads/zulu/ -export PATH=$PATH:/c/Downloads/zulu/bin -</pre></div> -</div> -</li> -<li><p>The script <code class="docutils literal notranslate"><span class="pre">15_prepare_thirdParty.sh</span></code> also requires the variable PYTHON_WINDOWS_EXE set. This variable refers to the path of the python installation (For ex: It could be either on native Windows or on MSYS). -If the python is installed on MSYS then set the variable with the following command.</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">export</span> <span class="n">PYTHON_WINDOWS_EXE</span><span class="o">=</span><span class="n">python3</span> -</pre></div> -</div> -</li> -<li><p>Execute the script <code class="docutils literal notranslate"><span class="pre">15_prepare_thirdParty.sh</span></code> on MSYS</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">utils</span><span class="o">/</span><span class="n">ci</span><span class="o">/</span><span class="n">scripts</span> -<span class="o">./</span><span class="mi">15</span><span class="n">_prepare_thirdParty</span><span class="o">.</span><span class="n">sh</span> -</pre></div> -</div> -</li> -</ol> -</div><div aria-labelledby="tab-4-4-1" class="sphinx-tabs-panel" hidden="true" id="panel-4-4-1" name="4-1" role="tabpanel" tabindex="0"><ol class="arabic"> -<li><p>Execute the script</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">utils</span><span class="o">/</span><span class="n">ci</span><span class="o">/</span><span class="n">scripts</span> -<span class="o">./</span><span class="mi">15</span><span class="n">_prepare_thirdParty</span><span class="o">.</span><span class="n">sh</span> -</pre></div> -</div> -</li> -</ol> -</div></div> -</li> -<li><p>Upon successful execution of the script, the dependencies will be installed under <code class="docutils literal notranslate"><span class="pre">C:\deps</span></code> on Windows and <code class="docutils literal notranslate"><span class="pre">~/deps</span></code> on Linux.</p></li> -</ol> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="15_system_requirements.html" class="btn btn-neutral float-left" title="System Requirements" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="30_install_openpass.html" class="btn btn-neutral float-right" title="Installing openPASS" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Installing Prerequisites — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + <link rel="stylesheet" type="text/css" href="../_static/tabs.css?v=a5c4661c" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/tabs.js?v=3030b3cb"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Installing openPASS" href="30_install_openpass.html" /> + <link rel="prev" title="System Requirements" href="15_system_requirements.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Installing Prerequisites</a><ul> +<li class="toctree-l2"><a class="reference internal" href="#installing-the-build-environment">Installing the Build Environment</a></li> +<li class="toctree-l2"><a class="reference internal" href="#installing-the-binary-packages">Installing the Binary Packages</a></li> +<li class="toctree-l2"><a class="reference internal" href="#installing-the-dependencies">Installing the Dependencies</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Installing Prerequisites</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/installation_guide/20_install_prerequisites.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="installing-prerequisites"> +<span id="prerequisites"></span><h1>Installing Prerequisites<a class="headerlink" href="#installing-prerequisites" title="Link to this heading">ïƒ</a></h1> +<p>Before being able to compile and run <strong>openPASS</strong>, make sure to have all dependencies installed. +The third party software dependency of <strong>openPASS</strong> can be divided into:</p> +<ul class="simple"> +<li><p><strong>Build environment</strong>, which manages third party software and is used to compile and install <strong>openPASS</strong></p></li> +<li><p><strong>Binary packages</strong>, which can be easily installed via a package manager of the respective build environment</p></li> +<li><p><strong>Source packages</strong>, which need to be built from source code</p></li> +</ul> +<p>This section gives detailed information about the prerequisites and tested version.</p> +<section id="installing-the-build-environment"> +<span id="building-under-windows"></span><h2>Installing the Build Environment<a class="headerlink" href="#installing-the-build-environment" title="Link to this heading">ïƒ</a></h2> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><ol class="arabic"> +<li><p>MSYS2</p> +<p>On Windows, the build environment of choice are <a class="reference internal" href="../other_information/20_glossary.html#term-MSYS2"><span class="xref std std-term">MSYS2</span></a> programming tools. +<a class="reference internal" href="../other_information/20_glossary.html#term-MSYS2"><span class="xref std std-term">MSYS2</span></a> is used to install some third-party software on which <strong>openPASS</strong> depends. +Also, the unix-like shell simplifies c++ compilation on Windows. +For details, see <a class="reference external" href="https://www.msys2.org/">MSYS2 website</a>.</p> +</li> +<li id="msys2"><p>Download MSYS2</p> +<p>The latest 64-bit package is located in the Installation section of <a class="reference external" href="https://www.msys2.org/">MSYS2 website</a>.</p> +</li> +<li id="msys2-installation"><p>Install MSYS2</p> +<p>Run the downloaded executable and adjust suggested settings to your needs (defaults are fine).</p> +<div class="admonition-installation-path admonition"> +<p class="admonition-title">Installation Path</p> +<p>It is assumed that MSYS2 is installed in the directory <code class="docutils literal notranslate"><span class="pre">C:\op\msys64</span></code>, as our CI scripts depend on this specific path. +If you choose to install MSYS2 in a different location, please ensure that you update any related configurations to reflect the new installation path, such as the conan profiles mentioned below.â€</p> +</div> +</li> +<li><p>Understand the Build Environment</p> +<p>MSYS2 provides three different environments, located in the MSYS2 installation directory:</p> +<figure class="align-center" id="fig-msys2-environments"> +<img alt="MSYS2 Apps" src="../_images/msys2.png" /> +</figure> +<p>MSYS2 Environments</p> +<ul class="simple"> +<li><p>MSYS2 MSYS: Common environment, i.e. for package management</p></li> +<li><p>MSYS2 MinGW 32-bit: A MinGW 32-bit environment</p></li> +<li><p>MSYS2 MinGW 64-bit: A MinGW 64-bit environment</p></li> +</ul> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<div class="line-block"> +<div class="line">MSYS2 MinGW 64-bit is <strong>the</strong> <strong>openPASS</strong> development environment and will be referred to as <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell.</div> +</div> +</div> +</li> +</ol> +</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"> +<span id="building-under-linux"></span><p>On Linux, no special build environment is needed. <strong>openPASS</strong> is developed under Debian 64-Bit, +which means that developing under a recent Ubuntu distribution will also work. +Debian Bookworm or Ubuntu 22.04 LTS is recommended. Debian uses <code class="docutils literal notranslate"><span class="pre">apt</span></code> (or <code class="docutils literal notranslate"><span class="pre">apt-get</span></code>) as package managing system. +Details will be given in <a class="reference internal" href="#binary-packages"><span class="std std-ref">Installing the Binary Packages</span></a> and <a class="reference internal" href="#building-prerequisites"><span class="std std-ref">Installing the Dependencies</span></a>.</p> +</div></div> +</section> +<section id="installing-the-binary-packages"> +<span id="binary-packages"></span><h2>Installing the Binary Packages<a class="headerlink" href="#installing-the-binary-packages" title="Link to this heading">ïƒ</a></h2> +<p>The first set of dependencies we need to install in order to successfully compile <strong>openPASS</strong> are the binary packages. These can be installed via appropiate package manager.</p> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-1-1-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-1-1-0" name="1-0" role="tab" tabindex="0">Windows (MSYS2)</button><button aria-controls="panel-1-1-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-1-1-1" name="1-1" role="tab" tabindex="-1">Linux (Debian Bookworm)</button></div><div aria-labelledby="tab-1-1-0" class="sphinx-tabs-panel" id="panel-1-1-0" name="1-0" role="tabpanel" tabindex="0"><ol class="arabic"> +<li><p>Open <code class="docutils literal notranslate"><span class="pre">MSYS2</span> <span class="pre">MinGW</span> <span class="pre">64-bit</span></code> and execute the following package manager <code class="docutils literal notranslate"><span class="pre">pacman</span></code> commands to update the package repository and upgrade system packages:</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pacman</span> <span class="o">-</span><span class="n">Syuu</span> +</pre></div> +</div> +<p>If the upgrade requires a restart of MSYS2, resume the upgrade by re-opening the shell and call:</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pacman</span> <span class="o">-</span><span class="n">Suu</span> +</pre></div> +</div> +</li> +<li><p>Required packages (can be specified in single command line if desired):</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pacman<span class="w"> </span>-S<span class="w"> </span><span class="se">\</span> +<span class="w"> </span><span class="sb">`</span><span class="c1"># for building and running the simulator` \</span> +<span class="w"> </span>make<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-ccache<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-cmake<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-doxygen<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-gcc<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-gdb<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-graphviz<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-make<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>patch<span class="w"> </span><span class="se">\</span> +<span class="w"> </span><span class="sb">`</span><span class="c1"># for documentation` \</span> +<span class="w"> </span>mingw-w64-x86_64-python<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-python-pip<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-python-lxml<span class="w"> </span><span class="se">\</span> +<span class="w"> </span><span class="sb">`</span><span class="c1"># fonts and equation rendering in the documentation` \</span> +<span class="w"> </span>mingw-w64-x86_64-texlive-bin<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-texlive-core<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-texlive-font-utils<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-texlive-latex-extra<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-zziplib<span class="w"> </span><span class="se">\</span> +<span class="w"> </span><span class="sb">`</span><span class="c1"># documentation with only pacman` \</span> +<span class="w"> </span>libxslt-devel<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-python-sphinx<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-python-sphinx-tabs<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-python-sphinx_rtd_theme<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-python-setuptools<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-python-myst-parser<span class="w"> </span><span class="se">\</span> +<span class="w"> </span><span class="sb">`</span><span class="c1"># for testing (optional)` \</span> +<span class="w"> </span>mingw-w64-x86_64-python-pytest<span class="w"> </span><span class="se">\</span> +<span class="w"> </span>mingw-w64-x86_64-python-pandas<span class="w"> </span><span class="se">\</span> +<span class="w"> </span><span class="sb">`</span><span class="c1"># for developing purposes (optional)` \</span> +<span class="w"> </span>mingw-w64-x86_64-clang +</pre></div> +</div> +<div class="admonition-versions admonition"> +<p class="admonition-title">Versions</p> +<div class="line-block"> +<div class="line">MSYS2 provides rolling release versions, so some packages might be too “up-to-dateâ€.</div> +</div> +</div> +</li> +<li><p>Required python packages</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip3</span> <span class="n">install</span> <span class="s2">"approvaltests==3.1.0"</span> <span class="n">breathe</span> <span class="s2">"conan>2.0"</span> <span class="n">empty</span><span class="o">-</span><span class="n">files</span> <span class="n">exhale</span> <span class="n">watchdog</span> +</pre></div> +</div> +</li> +</ol> +<div class="admonition-git-ssh admonition"> +<p class="admonition-title">GIT/SSH</p> +<p>The <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell does not access an already existing git installation or available SSH keys. +Make sure, to update/copy your configuration and credentials within the <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell before working with git.</p> +</div> +</div><div aria-labelledby="tab-1-1-1" class="sphinx-tabs-panel" hidden="true" id="panel-1-1-1" name="1-1" role="tabpanel" tabindex="0"><ol class="arabic"> +<li><p>Update the package database on the system</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">apt</span> <span class="n">update</span> +</pre></div> +</div> +</li> +<li><p>Upgrade existing software to latest version</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">apt</span> <span class="n">upgrade</span> +</pre></div> +</div> +</li> +<li><p>Install required binary packages</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># for simulator</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">antlr4</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">build</span><span class="o">-</span><span class="n">essential</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">ca</span><span class="o">-</span><span class="n">certificates</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">ccache</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">cmake</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">clang</span><span class="o">-</span><span class="nb">format</span><span class="o">-</span><span class="mi">15</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">doxygen</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">g</span><span class="o">++</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">gcc</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">git</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">googletest</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">graphviz</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">libboost</span><span class="o">-</span><span class="n">filesystem</span><span class="o">-</span><span class="n">dev</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">libprotobuf</span><span class="o">-</span><span class="n">dev</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">libantlr4</span><span class="o">-</span><span class="n">runtime4</span><span class="mf">.9</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">libantlr4</span><span class="o">-</span><span class="n">runtime</span><span class="o">-</span><span class="n">java</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">libantlr4</span><span class="o">-</span><span class="n">runtime</span><span class="o">-</span><span class="n">dev</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">openjdk</span><span class="o">-</span><span class="mi">17</span><span class="o">-</span><span class="n">jre</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">pkg</span><span class="o">-</span><span class="n">config</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">protobuf</span><span class="o">-</span><span class="n">compiler</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">python3</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">python3</span><span class="o">-</span><span class="n">distutils</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">python3</span><span class="o">-</span><span class="n">pip</span> +<span class="n">apt</span> <span class="o">-</span><span class="n">y</span> <span class="n">install</span> <span class="n">uuid</span><span class="o">-</span><span class="n">dev</span> + +<span class="c1"># python packages</span> +<span class="n">pip3</span> <span class="n">install</span> <span class="s2">"approvaltests==3.1.0"</span> <span class="n">empty</span><span class="o">-</span><span class="n">files</span> <span class="s2">"conan>2.0"</span> <span class="n">watchdog</span> +<span class="n">pip3</span> <span class="n">install</span> <span class="n">breathe</span> <span class="n">exhale</span> <span class="n">myst</span><span class="o">-</span><span class="n">parser</span> <span class="s2">"sphinx==7.2.6"</span> <span class="n">sphinx</span><span class="o">-</span><span class="n">rtd</span><span class="o">-</span><span class="n">theme</span> <span class="n">sphinx</span><span class="o">-</span><span class="n">tabs</span> <span class="n">sphinxcontrib</span><span class="o">-</span><span class="n">spelling</span> +</pre></div> +</div> +</li> +</ol> +</div></div> +<p><strong>EndToEnd Test Framework</strong></p> +<p>If end to end tests shall be executed, additional requirements have to be considered. +Please refer to <a class="reference internal" href="../advanced_topics/30_testing.html#testing-endtoend"><span class="std std-ref">EndToEnd Test Framework</span></a> for more details on installation of the prerequisites and usage of the framework.</p> +</section> +<section id="installing-the-dependencies"> +<span id="building-prerequisites"></span><h2>Installing the Dependencies<a class="headerlink" href="#installing-the-dependencies" title="Link to this heading">ïƒ</a></h2> +<p>This section describes how to compile prerequisites of <strong>openPASS</strong> using conan (<code class="docutils literal notranslate"><span class="pre">conan>2.0</span></code>).</p> +<p>The goal of this section is to build and install necessary packages into a suitable directory using conan.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>If you are unfamiliar to <code class="docutils literal notranslate"><span class="pre">conan</span></code> or working with it, Section <a class="reference internal" href="60_conan.html#building-with-conan"><span class="std std-ref">Building with Conan</span></a> might give you a short introduction on conan in the scope of building dependencies for <strong>openPASS</strong>.</p> +</div> +<p>To keep the installation process of <strong>openPASS</strong> and its dependencies as simple as possible, we recommend a specific folder structure. +If you strictly follow the recommended paths of this guide, no command modifications are necessary.</p> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-2-2-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-2-2-0" name="2-0" role="tab" tabindex="0">Notes for Windows</button><button aria-controls="panel-2-2-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-2-2-1" name="2-1" role="tab" tabindex="-1">Notes for Linux</button></div><div aria-labelledby="tab-2-2-0" class="sphinx-tabs-panel" id="panel-2-2-0" name="2-0" role="tabpanel" tabindex="0"><ul class="simple"> +<li><p>Recommended checkout path of <strong>openPASS</strong> repository: <code class="docutils literal notranslate"><span class="pre">C:\openpass</span></code></p></li> +<li><p>Dependency directory within the <strong>openPASS</strong> repository: <code class="docutils literal notranslate"><span class="pre">C:\deps</span></code></p></li> +<li><p>Recommended installation directory of <strong>openPASS</strong>: <code class="docutils literal notranslate"><span class="pre">C:\openPASS\bin\core</span></code></p></li> +</ul> +</div><div aria-labelledby="tab-2-2-1" class="sphinx-tabs-panel" hidden="true" id="panel-2-2-1" name="2-1" role="tabpanel" tabindex="0"><ul class="simple"> +<li><p>Recommended checkout path of <strong>openPASS</strong> repository: <code class="docutils literal notranslate"><span class="pre">~/openpass</span></code></p></li> +<li><p>Dependency directory within the <strong>openPASS</strong> repository: <code class="docutils literal notranslate"><span class="pre">~/deps</span></code></p></li> +<li><p>Recommended installation directory of <strong>openPASS</strong>: <code class="docutils literal notranslate"><span class="pre">/usr/local/openPASS/bin/core</span></code></p></li> +</ul> +</div></div> +<p>The above directory structure will be created by following the instructions of this guide.</p> +<ol class="arabic"> +<li><p>Clone <strong>openPASS</strong> repository</p> +<p>As described above, the checkout path of the repository is assumed to be the default <code class="docutils literal notranslate"><span class="pre">openpass</span></code>.</p> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-3-3-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-3-3-0" name="3-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-3-3-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-3-3-1" name="3-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-3-3-0" class="sphinx-tabs-panel" id="panel-3-3-0" name="3-0" role="tabpanel" tabindex="0"><p>Start <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">C</span><span class="o">/</span> +<span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">gitlab</span><span class="o">.</span><span class="n">eclipse</span><span class="o">.</span><span class="n">org</span><span class="o">/</span><span class="n">eclipse</span><span class="o">/</span><span class="n">openpass</span><span class="o">/</span><span class="n">opSimulation</span><span class="o">.</span><span class="n">git</span> <span class="n">openpass</span> +</pre></div> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>As stated in <a class="reference internal" href="#building-under-windows"><span class="std std-ref">Installing the Build Environment</span></a>, the windows programming tools suffer from a <cite>path length restriction</cite>. +This error manifests as strange <strong>file not found</strong> compile errors. +It is therefore recommended to use a short path for source code checkout, e.g. a drive letter. +This can also be done by the windows command <a class="reference external" href="https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/subst">subst</a>.</p> +</div> +</div><div aria-labelledby="tab-3-3-1" class="sphinx-tabs-panel" hidden="true" id="panel-3-3-1" name="3-1" role="tabpanel" tabindex="0"><p>Start <code class="docutils literal notranslate"><span class="pre">Bash</span></code> shell</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">~</span> +<span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">gitlab</span><span class="o">.</span><span class="n">eclipse</span><span class="o">.</span><span class="n">org</span><span class="o">/</span><span class="n">eclipse</span><span class="o">/</span><span class="n">openpass</span><span class="o">/</span><span class="n">opSimulation</span><span class="o">.</span><span class="n">git</span> <span class="n">openpass</span> +</pre></div> +</div> +</div></div> +</li> +<li><p>Navigate into repository and checkout main branch</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">openpass</span> +<span class="n">git</span> <span class="n">checkout</span> <span class="n">main</span> +</pre></div> +</div> +</li> +<li><p>The essential packages necessary for <strong>openPASS</strong> are listed in the file <code class="docutils literal notranslate"><span class="pre">utils/ci/conan/conanfile.txt</span></code>.</p> +<p>If a required package is available on ConanCenter, they will be used directly. +For packages not available on ConanCenter, the respective recipes are stored in the <code class="docutils literal notranslate"><span class="pre">utils/ci/conan/recipe</span></code> folder.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>It is important to have conancenter remote enabled. To check the status of conancenter and to enable, if it is disabled, execute the following commands</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">conan</span> <span class="n">remote</span> <span class="nb">list</span> +<span class="n">conan</span> <span class="n">remote</span> <span class="n">enable</span> <span class="n">conancenter</span> +</pre></div> +</div> +</div> +</li> +<li><p>There are two Conan profiles <code class="docutils literal notranslate"><span class="pre">conanprofile_linux</span></code> and <code class="docutils literal notranslate"><span class="pre">conanprofile_windows</span></code> available in the <code class="docutils literal notranslate"><span class="pre">utils/ci/conan/recipe</span></code> folder, which will be automatically used in the next step.</p> +<div class="admonition-adjustments admonition"> +<p class="admonition-title">Adjustments</p> +<p>Check and adjust the compiler version and the path to the MSYS installation in these profiles before running the prepare scripts.</p> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The recommended compiler is GCC. Usage of other compilers may lead to unexpected outcomes.</p> +</div> +</li> +<li><p>To build and install the dependencies, run the script <code class="docutils literal notranslate"><span class="pre">15_prepare_thirdParty.sh</span></code> located in <code class="docutils literal notranslate"><span class="pre">utils/ci/scripts</span></code>.</p> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-4-4-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-4-4-0" name="4-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-4-4-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-4-4-1" name="4-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-4-4-0" class="sphinx-tabs-panel" id="panel-4-4-0" name="4-0" role="tabpanel" tabindex="0"><ol class="arabic"> +<li><p>One of the dependencies of <strong>openPASS</strong> is OpenScenarioEngine which requires OpenSCENARIO API and it in turn requires JAVA executable to build. +If Java executable is not available on your machine, download the java from <a class="reference external" href="https://cdn.azul.com/zulu/bin/zulu11.50.19-ca-jdk11.0.12-win_x64.zip">here</a> and extract the zip file</p></li> +<li><p>If <code class="docutils literal notranslate"><span class="pre">C:\Downloads\zulu</span></code> is the extracted path, then add the variable JAVA_HOME to the environmental variable, and append the java executable path to the PATH environmental variable as below</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>export JAVA_HOME=/c/Downloads/zulu/ +export PATH=$PATH:/c/Downloads/zulu/bin +</pre></div> +</div> +</li> +<li><p>The script <code class="docutils literal notranslate"><span class="pre">15_prepare_thirdParty.sh</span></code> also requires the variable PYTHON_EXECUTABLE set. This variable refers to the path of the python installation (For example: It could be either on native Windows or on MSYS). +If the python is installed on MSYS then set the variable with the following command.</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">export</span> <span class="n">PYTHON_EXECUTABLE</span><span class="o">=</span><span class="n">python3</span> +</pre></div> +</div> +</li> +<li><p>Execute the script <code class="docutils literal notranslate"><span class="pre">15_prepare_thirdParty.sh</span></code> on MSYS</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">utils</span><span class="o">/</span><span class="n">ci</span><span class="o">/</span><span class="n">scripts</span> +<span class="o">./</span><span class="mi">15</span><span class="n">_prepare_thirdParty</span><span class="o">.</span><span class="n">sh</span> +</pre></div> +</div> +</li> +</ol> +</div><div aria-labelledby="tab-4-4-1" class="sphinx-tabs-panel" hidden="true" id="panel-4-4-1" name="4-1" role="tabpanel" tabindex="0"><ol class="arabic"> +<li><p>The script <code class="docutils literal notranslate"><span class="pre">15_prepare_thirdParty.sh</span></code> also requires the variable PYTHON_EXECUTABLE set. This variable refers to the path of the python installation.</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">export</span> <span class="n">PYTHON_EXECUTABLE</span><span class="o">=</span><span class="n">python3</span> +</pre></div> +</div> +</li> +<li><p>Execute the script</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">utils</span><span class="o">/</span><span class="n">ci</span><span class="o">/</span><span class="n">scripts</span> +<span class="o">./</span><span class="mi">15</span><span class="n">_prepare_thirdParty</span><span class="o">.</span><span class="n">sh</span> +</pre></div> +</div> +</li> +</ol> +</div></div> +</li> +<li><p>Upon successful execution of the script, the dependencies will be installed under <code class="docutils literal notranslate"><span class="pre">C:\deps</span></code> on Windows and <code class="docutils literal notranslate"><span class="pre">~/deps</span></code> on Linux.</p></li> +</ol> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="15_system_requirements.html" class="btn btn-neutral float-left" title="System Requirements" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="30_install_openpass.html" class="btn btn-neutral float-right" title="Installing openPASS" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/installation_guide/30_install_openpass.html b/content/html/installation_guide/30_install_openpass.html index c02841b88edb378e74168123fd7e4b3d722cd7e0..d0422064eabfc287ae7aa0dfd2ba9d74eeab3ad6 100644 --- a/content/html/installation_guide/30_install_openpass.html +++ b/content/html/installation_guide/30_install_openpass.html @@ -1,254 +1,256 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Installing openPASS — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/tabs.js?v=3030b3cb"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="Further Guidance" href="50_further_guidance.html" /> - <link rel="prev" title="Installing Prerequisites" href="20_install_prerequisites.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Installing openPASS</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/installation_guide/30_install_openpass.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="installing-openpass"> -<span id="download-and-install-openpass"></span><h1>Installing openPASS<a class="headerlink" href="#installing-openpass" title="Link to this heading">ïƒ</a></h1> -<p>This section describes how to compile and run <strong>openPASS</strong>. Please make sure that all prerequisites have been properly installed according to section <a class="reference internal" href="20_install_prerequisites.html#prerequisites"><span class="std std-ref">Installing Prerequisites</span></a>. -If you have strictly followed the instructions, the installed dependencies should be located on your machine under -<code class="docutils literal notranslate"><span class="pre">C:\deps</span></code> on <strong>Windows</strong> and <code class="docutils literal notranslate"><span class="pre">~/deps</span></code> on <strong>Linux</strong>. If there is a path deviation, -the following commands must be adjusted.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>If you are unfamiliar to <code class="docutils literal notranslate"><span class="pre">CMake</span></code> or working within a <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell, Section <a class="reference internal" href="further_guidance/10_cmake.html#cmake"><span class="std std-ref">CMake Variables and Options</span></a> and <a class="reference internal" href="20_install_prerequisites.html#msys2"><span class="std std-ref">MSYS2</span></a> might give you a short introduction on these topics in the scope of building <strong>openPASS</strong> itself.</p> -</div> -<ol class="arabic"> -<li><p>Navigate back into repository</p> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">C</span><span class="o">/</span><span class="n">openpass</span> -</pre></div> -</div> -</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">~/</span><span class="n">openpass</span> -</pre></div> -</div> -</div></div> -</li> -<li><p>Create build directory and navigate into it</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mkdir</span> <span class="n">build</span> -<span class="n">cd</span> <span class="n">build</span> -</pre></div> -</div> -</li> -<li><p>Prepare build</p> -<p><strong>openPASS</strong> links against shared libraries, which are located in the paths specified by <code class="docutils literal notranslate"><span class="pre">CMAKE_PREFIX_PATH</span></code>. -To be able to install <strong>openPASS</strong> with resolved dependencies, all libraries found under the paths have to be copied right next to the executable during the installation step. -This is done by setting <code class="docutils literal notranslate"><span class="pre">INSTALL_EXTRA_RUNTIME_DEPS=ON</span></code>. If you have followed the instructions strictly, no changes are necessary.</p> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-1-1-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-1-1-0" name="1-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-1-1-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-1-1-1" name="1-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-1-1-0" class="sphinx-tabs-panel" id="panel-1-1-0" name="1-0" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cmake</span> <span class="o">-</span><span class="n">G</span> <span class="s2">"MSYS Makefiles"</span> \ -<span class="o">-</span><span class="n">D</span> <span class="n">CMAKE_PREFIX_PATH</span><span class="o">=</span><span class="s2">"C:/deps/direct_deploy/fmilibrary;C:/deps/direct_deploy/open-simulation-interface;C:/deps/direct_deploy/protobuf;C:/deps/direct_deploy/protobuf-shared;C:/deps/direct_deploy/units;C:/deps/direct_deploy/mantleapi;C:/deps/direct_deploy/yase;C:/deps/direct_deploy/openscenario_api;C:/deps/direct_deploy/openscenario_engine;C:/deps/direct_deploy/gtest;C:/deps/direct_deploy/boost;C:/deps/direct_deploy/qt;C:/deps/direct_deploy/minizip;C:/deps;C:/msys64/mingw64/bin;"</span> \ -<span class="o">-</span><span class="n">D</span> <span class="n">CMAKE_INSTALL_PREFIX</span><span class="o">=</span><span class="n">C</span><span class="p">:</span><span class="o">/</span><span class="n">openPASS</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">core</span> \ -<span class="o">-</span><span class="n">D</span> <span class="n">CMAKE_BUILD_TYPE</span><span class="o">=</span><span class="n">Release</span> \ -<span class="o">-</span><span class="n">D</span> <span class="n">USE_CCACHE</span><span class="o">=</span><span class="n">ON</span> \ -<span class="o">-</span><span class="n">D</span> <span class="n">WITH_DEBUG_POSTFIX</span><span class="o">=</span><span class="n">OFF</span> \ -<span class="o">-</span><span class="n">D</span> <span class="n">OPENPASS_ADJUST_OUTPUT</span><span class="o">=</span><span class="n">OFF</span> \ -<span class="o">-</span><span class="n">D</span> <span class="n">INSTALL_EXTRA_RUNTIME_DEPS</span><span class="o">=</span><span class="n">ON</span> \ -<span class="o">..</span> -</pre></div> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<ul class="simple"> -<li><p>By specifying <code class="docutils literal notranslate"><span class="pre">INSTALL_EXTRA_RUNTIME_DEPS=ON</span></code>, runtime dependencies will be copied to the installation directory when running <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>. This applies to all dependencies located in the paths specified in <code class="docutils literal notranslate"><span class="pre">CMAKE_PREFIX_PATH</span></code>.</p></li> -<li><p>Make sure that the path <code class="docutils literal notranslate"><span class="pre">C:/msys64/mingw64/bin</span></code> is the last path in the CMAKE_PREFIX_PATH. Otherwise cmake might find and use local versions of required libraries instead of the ones listed in the thirdparties folder.</p></li> -</ul> -</div> -</div><div aria-labelledby="tab-1-1-1" class="sphinx-tabs-panel" hidden="true" id="panel-1-1-1" name="1-1" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cmake</span> <span class="o">-</span><span class="n">D</span> <span class="n">CMAKE_PREFIX_PATH</span><span class="o">=</span><span class="s2">"$HOME/deps/fmilibrary;$HOME/deps/open-simulation-interface;$HOME/deps/protobuf;$HOME/deps/protobuf-shared;$HOME/deps/units;$HOME/deps/mantleapi;$HOME/deps/yase;$HOME/deps/openscenario_api;$HOME/deps/openscenario_engine;$HOME/deps/gtest;$HOME/deps/boost;$HOME/deps/qt;$HOME/deps/minizip;C:/deps"</span> \ -<span class="o">-</span><span class="n">D</span> <span class="n">CMAKE_INSTALL_PREFIX</span><span class="o">=/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">openPASS</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">core</span> \ -<span class="o">-</span><span class="n">D</span> <span class="n">CMAKE_BUILD_TYPE</span><span class="o">=</span><span class="n">Release</span> \ -<span class="o">-</span><span class="n">D</span> <span class="n">USE_CCACHE</span><span class="o">=</span><span class="n">ON</span> \ -<span class="o">-</span><span class="n">D</span> <span class="n">WITH_DEBUG_POSTFIX</span><span class="o">=</span><span class="n">OFF</span> \ -<span class="o">-</span><span class="n">D</span> <span class="n">OPENPASS_ADJUST_OUTPUT</span><span class="o">=</span><span class="n">OFF</span> \ -<span class="o">-</span><span class="n">D</span> <span class="n">INSTALL_EXTRA_RUNTIME_DEPS</span><span class="o">=</span><span class="n">ON</span> \ -<span class="o">..</span> -</pre></div> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<ul class="simple"> -<li><p>To install in the mentioned CMAKE_INSTALL_PREFIX path, create <code class="docutils literal notranslate"><span class="pre">openPASS</span></code> folder under <code class="docutils literal notranslate"><span class="pre">/usr/local</span></code> using <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">mkdir</span> <span class="pre">/usr/local/openPASS</span></code> -And for the user to access the folder, modify the permissions using <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">chown</span> <span class="pre"><uesrname>:<username></span> <span class="pre">/usr/local/openPASS</span></code></p></li> -<li><p>By specifying <code class="docutils literal notranslate"><span class="pre">INSTALL_EXTRA_RUNTIME_DEPS=ON</span></code>, runtime dependencies will be copied to the installation directory when running <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>. This applies to all dependencies located in the paths specified in <code class="docutils literal notranslate"><span class="pre">CMAKE_PREFIX_PATH</span></code>.</p></li> -<li><p>If you need to adjust paths and options based on your system and needs, you need to pay attention on quotations <code class="docutils literal notranslate"><span class="pre">"</span> <span class="pre">"</span></code>, when using it in console (see <a class="reference internal" href="further_guidance/10_cmake.html#cmake-prefix-path"><span class="std std-ref">CMAKE_PREFIX_PATH</span></a>). -And also you need to be careful with it when you configuring it under VSCode (see <a class="reference internal" href="../developer_information/ide_support/30_vscode.html#vscode"><span class="std std-ref">Working with Visual Studio Code</span></a>).</p></li> -</ul> -</div> -</div></div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>For a build that goes beyond the default settings, see <a class="reference internal" href="further_guidance/10_cmake.html#cmake"><span class="std std-ref">CMake Variables and Options</span></a> for more available variables and options that can be set.</p> -</div> -</li> -<li><p>Optional: Build and execute unit tests</p> -<p>Starting from <code class="docutils literal notranslate"><span class="pre">openpass/build</span></code>:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">make</span> <span class="n">test</span> <span class="n">ARGS</span><span class="o">=</span><span class="s2">"--output-on-failure -j3"</span> -</pre></div> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>ARGS is optional, but recommended. -Adjust parallel build flag <code class="docutils literal notranslate"><span class="pre">-j3</span></code> based on your system.</p> -</div> -</li> -<li><p>Build documentation</p> -<p>Starting from <code class="docutils literal notranslate"><span class="pre">openpass/build</span></code>:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">make</span> <span class="n">doc</span> -</pre></div> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Currently the documentation must be built before <strong>openPASS</strong> can be successfully installed if the CMake variable <cite>WITH_DOC=ON</cite> (default).</p> -</div> -</li> -<li><p>Build simulation core</p> -<p>Starting from <code class="docutils literal notranslate"><span class="pre">openpass/build</span></code>:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">make</span> <span class="o">-</span><span class="n">j3</span> <span class="n">install</span> -</pre></div> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Again, adjust parallel build flag <code class="docutils literal notranslate"><span class="pre">-j3</span></code> based on your system.</p> -</div> -</li> -</ol> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="20_install_prerequisites.html" class="btn btn-neutral float-left" title="Installing Prerequisites" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="50_further_guidance.html" class="btn btn-neutral float-right" title="Further Guidance" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Installing openPASS — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + <link rel="stylesheet" type="text/css" href="../_static/tabs.css?v=a5c4661c" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/tabs.js?v=3030b3cb"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Further Guidance" href="50_further_guidance.html" /> + <link rel="prev" title="Installing Prerequisites" href="20_install_prerequisites.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Installing openPASS</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/installation_guide/30_install_openpass.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="installing-openpass"> +<span id="download-and-install-openpass"></span><h1>Installing openPASS<a class="headerlink" href="#installing-openpass" title="Link to this heading">ïƒ</a></h1> +<p>This section describes how to compile and run <strong>openPASS</strong>. Please make sure that all prerequisites have been properly installed according to section <a class="reference internal" href="20_install_prerequisites.html#prerequisites"><span class="std std-ref">Installing Prerequisites</span></a>. +If you have strictly followed the instructions, the installed dependencies should be located on your machine under +<code class="docutils literal notranslate"><span class="pre">C:\deps</span></code> on <strong>Windows</strong> and <code class="docutils literal notranslate"><span class="pre">~/deps</span></code> on <strong>Linux</strong>. If there is a path deviation, +the following commands must be adjusted.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>If you are unfamiliar to <code class="docutils literal notranslate"><span class="pre">CMake</span></code> or working within a <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell, Section <a class="reference internal" href="further_guidance/10_cmake.html#cmake"><span class="std std-ref">CMake Variables and Options</span></a> and <a class="reference internal" href="20_install_prerequisites.html#msys2"><span class="std std-ref">MSYS2</span></a> might give you a short introduction on these topics in the scope of building <strong>openPASS</strong> itself.</p> +</div> +<ol class="arabic"> +<li><p>Navigate back into repository</p> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">C</span><span class="o">/</span><span class="n">openpass</span> +</pre></div> +</div> +</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">~/</span><span class="n">openpass</span> +</pre></div> +</div> +</div></div> +</li> +<li><p>Create build directory and navigate into it</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mkdir</span> <span class="n">build</span> +<span class="n">cd</span> <span class="n">build</span> +</pre></div> +</div> +</li> +<li><p>Prepare build</p> +<p><strong>openPASS</strong> links against shared libraries, which are located in the paths specified by <code class="docutils literal notranslate"><span class="pre">CMAKE_PREFIX_PATH</span></code>. +To be able to install <strong>openPASS</strong> with resolved dependencies, all libraries found under the paths have to be copied right next to the executable during the installation step. +This is done by setting <code class="docutils literal notranslate"><span class="pre">INSTALL_EXTRA_RUNTIME_DEPS=ON</span></code>. If you have followed the instructions strictly, no changes are necessary.</p> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-1-1-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-1-1-0" name="1-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-1-1-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-1-1-1" name="1-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-1-1-0" class="sphinx-tabs-panel" id="panel-1-1-0" name="1-0" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cmake</span> <span class="o">-</span><span class="n">G</span> <span class="s2">"MSYS Makefiles"</span> \ +<span class="o">-</span><span class="n">D</span> <span class="n">CMAKE_PREFIX_PATH</span><span class="o">=</span><span class="s2">"C:/deps/direct_deploy/fmilibrary;C:/deps/direct_deploy/open-simulation-interface;C:/deps/direct_deploy/protobuf;C:/deps/direct_deploy/protobuf-shared;C:/deps/direct_deploy/units;C:/deps/direct_deploy/mantleapi;C:/deps/direct_deploy/yase;C:/deps/direct_deploy/openscenario_api;C:/deps/direct_deploy/openscenario_engine;C:/deps/direct_deploy/gtest;C:/deps/direct_deploy/boost;C:/deps/direct_deploy/minizip;C:/deps;C:/msys64/mingw64/bin;"</span> \ +<span class="o">-</span><span class="n">D</span> <span class="n">CMAKE_INSTALL_PREFIX</span><span class="o">=</span><span class="n">C</span><span class="p">:</span><span class="o">/</span><span class="n">openPASS</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">core</span> \ +<span class="o">-</span><span class="n">D</span> <span class="n">CMAKE_BUILD_TYPE</span><span class="o">=</span><span class="n">Release</span> \ +<span class="o">-</span><span class="n">D</span> <span class="n">USE_CCACHE</span><span class="o">=</span><span class="n">ON</span> \ +<span class="o">-</span><span class="n">D</span> <span class="n">WITH_DEBUG_POSTFIX</span><span class="o">=</span><span class="n">OFF</span> \ +<span class="o">-</span><span class="n">D</span> <span class="n">OPENPASS_ADJUST_OUTPUT</span><span class="o">=</span><span class="n">OFF</span> \ +<span class="o">-</span><span class="n">D</span> <span class="n">INSTALL_EXTRA_RUNTIME_DEPS</span><span class="o">=</span><span class="n">ON</span> \ +<span class="o">..</span> +</pre></div> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<ul class="simple"> +<li><p>By specifying <code class="docutils literal notranslate"><span class="pre">INSTALL_EXTRA_RUNTIME_DEPS=ON</span></code>, runtime dependencies will be copied to the installation directory when running <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>. This applies to all dependencies located in the paths specified in <code class="docutils literal notranslate"><span class="pre">CMAKE_PREFIX_PATH</span></code>.</p></li> +<li><p>Make sure that the path <code class="docutils literal notranslate"><span class="pre">C:/msys64/mingw64/bin</span></code> is the last path in the CMAKE_PREFIX_PATH. Otherwise cmake might find and use local versions of required libraries instead of the ones listed in the thirdparties folder.</p></li> +</ul> +</div> +</div><div aria-labelledby="tab-1-1-1" class="sphinx-tabs-panel" hidden="true" id="panel-1-1-1" name="1-1" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cmake</span> <span class="o">-</span><span class="n">D</span> <span class="n">CMAKE_PREFIX_PATH</span><span class="o">=</span><span class="s2">"$HOME/deps/fmilibrary;$HOME/deps/open-simulation-interface;$HOME/deps/protobuf;$HOME/deps/protobuf-shared;$HOME/deps/units;$HOME/deps/mantleapi;$HOME/deps/yase;$HOME/deps/openscenario_api;$HOME/deps/openscenario_engine;$HOME/deps/gtest;$HOME/deps/boost;$HOME/deps/minizip;C:/deps"</span> \ +<span class="o">-</span><span class="n">D</span> <span class="n">CMAKE_INSTALL_PREFIX</span><span class="o">=/</span><span class="n">usr</span><span class="o">/</span><span class="n">local</span><span class="o">/</span><span class="n">openPASS</span><span class="o">/</span><span class="nb">bin</span><span class="o">/</span><span class="n">core</span> \ +<span class="o">-</span><span class="n">D</span> <span class="n">CMAKE_BUILD_TYPE</span><span class="o">=</span><span class="n">Release</span> \ +<span class="o">-</span><span class="n">D</span> <span class="n">USE_CCACHE</span><span class="o">=</span><span class="n">ON</span> \ +<span class="o">-</span><span class="n">D</span> <span class="n">WITH_DEBUG_POSTFIX</span><span class="o">=</span><span class="n">OFF</span> \ +<span class="o">-</span><span class="n">D</span> <span class="n">OPENPASS_ADJUST_OUTPUT</span><span class="o">=</span><span class="n">OFF</span> \ +<span class="o">-</span><span class="n">D</span> <span class="n">INSTALL_EXTRA_RUNTIME_DEPS</span><span class="o">=</span><span class="n">ON</span> \ +<span class="o">..</span> +</pre></div> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<ul class="simple"> +<li><p>To install in the mentioned CMAKE_INSTALL_PREFIX path, create <code class="docutils literal notranslate"><span class="pre">openPASS</span></code> folder under <code class="docutils literal notranslate"><span class="pre">/usr/local</span></code> using <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">mkdir</span> <span class="pre">/usr/local/openPASS</span></code> +And for the user to access the folder, modify the permissions using <code class="docutils literal notranslate"><span class="pre">sudo</span> <span class="pre">chown</span> <span class="pre"><uesrname>:<username></span> <span class="pre">/usr/local/openPASS</span></code></p></li> +<li><p>By specifying <code class="docutils literal notranslate"><span class="pre">INSTALL_EXTRA_RUNTIME_DEPS=ON</span></code>, runtime dependencies will be copied to the installation directory when running <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>. This applies to all dependencies located in the paths specified in <code class="docutils literal notranslate"><span class="pre">CMAKE_PREFIX_PATH</span></code>.</p></li> +<li><p>If you need to adjust paths and options based on your system and needs, you need to pay attention on quotations <code class="docutils literal notranslate"><span class="pre">"</span> <span class="pre">"</span></code>, when using it in console (see <a class="reference internal" href="further_guidance/10_cmake.html#cmake-prefix-path"><span class="std std-ref">CMAKE_PREFIX_PATH</span></a>). +And also you need to be careful with it when you configuring it under VSCode (see <a class="reference internal" href="../developer_information/ide_support/30_vscode.html#vscode"><span class="std std-ref">Working with Visual Studio Code</span></a>).</p></li> +</ul> +</div> +</div></div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>For a build that goes beyond the default settings, see <a class="reference internal" href="further_guidance/10_cmake.html#cmake"><span class="std std-ref">CMake Variables and Options</span></a> for more available variables and options that can be set.</p> +</div> +</li> +<li><p>Optional: Build and execute unit tests</p> +<p>Starting from <code class="docutils literal notranslate"><span class="pre">openpass/build</span></code>:</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">make</span> <span class="n">test</span> <span class="n">ARGS</span><span class="o">=</span><span class="s2">"--output-on-failure -j3"</span> +</pre></div> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>ARGS is optional, but recommended. +Adjust parallel build flag <code class="docutils literal notranslate"><span class="pre">-j3</span></code> based on your system.</p> +</div> +</li> +<li><p>Build documentation</p> +<p>Starting from <code class="docutils literal notranslate"><span class="pre">openpass/build</span></code>:</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">make</span> <span class="n">doc</span> +</pre></div> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Currently the documentation must be built before <strong>openPASS</strong> can be successfully installed if the CMake variable <cite>WITH_DOC=ON</cite> (default).</p> +</div> +</li> +<li><p>Build simulation core</p> +<p>Starting from <code class="docutils literal notranslate"><span class="pre">openpass/build</span></code>:</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">make</span> <span class="o">-</span><span class="n">j3</span> <span class="n">install</span> +</pre></div> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Again, adjust parallel build flag <code class="docutils literal notranslate"><span class="pre">-j3</span></code> based on your system.</p> +</div> +</li> +</ol> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="20_install_prerequisites.html" class="btn btn-neutral float-left" title="Installing Prerequisites" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="50_further_guidance.html" class="btn btn-neutral float-right" title="Further Guidance" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/installation_guide/50_further_guidance.html b/content/html/installation_guide/50_further_guidance.html index ba074cba214d8b101f681819eea3f478e91fbea5..9036c1724c0aee87016d022ef7256e3df6c78eb2 100644 --- a/content/html/installation_guide/50_further_guidance.html +++ b/content/html/installation_guide/50_further_guidance.html @@ -1,157 +1,158 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Further Guidance — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="CMake Variables and Options" href="further_guidance/10_cmake.html" /> - <link rel="prev" title="Installing openPASS" href="30_install_openpass.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Further Guidance</a><ul> -<li class="toctree-l2"><a class="reference internal" href="further_guidance/10_cmake.html">CMake Variables and Options</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Further Guidance</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/installation_guide/50_further_guidance.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="further-guidance"> -<h1>Further Guidance<a class="headerlink" href="#further-guidance" title="Link to this heading">ïƒ</a></h1> -<p>See also section <a class="reference internal" href="../developer_information/10_ide_support.html#ide-support"><span class="std std-ref">IDE Support</span></a></p> -<div class="toctree-wrapper compound"> -<p class="caption" role="heading"><span class="caption-text">Customizing</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="further_guidance/10_cmake.html">CMake Variables and Options</a></li> -</ul> -</div> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="30_install_openpass.html" class="btn btn-neutral float-left" title="Installing openPASS" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="further_guidance/10_cmake.html" class="btn btn-neutral float-right" title="CMake Variables and Options" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Further Guidance — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="CMake Variables and Options" href="further_guidance/10_cmake.html" /> + <link rel="prev" title="Installing openPASS" href="30_install_openpass.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Further Guidance</a><ul> +<li class="toctree-l2"><a class="reference internal" href="further_guidance/10_cmake.html">CMake Variables and Options</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Further Guidance</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/installation_guide/50_further_guidance.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="further-guidance"> +<h1>Further Guidance<a class="headerlink" href="#further-guidance" title="Link to this heading">ïƒ</a></h1> +<p>See also section <a class="reference internal" href="../developer_information/10_ide_support.html#ide-support"><span class="std std-ref">IDE Support</span></a></p> +<div class="toctree-wrapper compound"> +<p class="caption" role="heading"><span class="caption-text">Customizing</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="further_guidance/10_cmake.html">CMake Variables and Options</a></li> +</ul> +</div> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="30_install_openpass.html" class="btn btn-neutral float-left" title="Installing openPASS" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="further_guidance/10_cmake.html" class="btn btn-neutral float-right" title="CMake Variables and Options" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/installation_guide/60_conan.html b/content/html/installation_guide/60_conan.html index f301ee98d6e07d1fdaccfe95062dcbf27b9e6c36..e058a65f992f6bc2695089464748d24cfd481013 100644 --- a/content/html/installation_guide/60_conan.html +++ b/content/html/installation_guide/60_conan.html @@ -1,314 +1,308 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Building with Conan — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/tabs.js?v=3030b3cb"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="Overview" href="../user_guide/10_overview.html" /> - <link rel="prev" title="CMake Variables and Options" href="further_guidance/10_cmake.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Building with Conan</a><ul> -<li class="toctree-l2"><a class="reference internal" href="#general">General</a></li> -<li class="toctree-l2"><a class="reference internal" href="#additional-prerequisites">Additional Prerequisites</a></li> -<li class="toctree-l2"><a class="reference internal" href="#conan-recipes">Conan Recipes</a></li> -<li class="toctree-l2"><a class="reference internal" href="#conan-create">Conan Create</a></li> -<li class="toctree-l2"><a class="reference internal" href="#conan-install">Conan Install</a></li> -<li class="toctree-l2"><a class="reference internal" href="#build-only-thirdparties">Build only ThirdParties</a></li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Building with Conan</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/installation_guide/60_conan.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="building-with-conan"> -<span id="id1"></span><h1>Building with Conan<a class="headerlink" href="#building-with-conan" title="Link to this heading">ïƒ</a></h1> -<section id="general"> -<h2>General<a class="headerlink" href="#general" title="Link to this heading">ïƒ</a></h2> -<p>Conan is an open source, decentralized and multi-platform package manager to create and share native binaries.</p> -<p>To learn more about Conan itself you can visit <a class="reference external" href="https://conan.io/">Conan</a>.</p> -<p>Conan is used in the <strong>openPASS</strong> project to create and manage the binaries of the used ThirdParty libraries.</p> -</section> -<section id="additional-prerequisites"> -<h2>Additional Prerequisites<a class="headerlink" href="#additional-prerequisites" title="Link to this heading">ïƒ</a></h2> -<p>To be able to work with Conan it is necessary to add additional packages.</p> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Windows (MSYS2)</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Linux (Debian Bookworm)</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pip<span class="w"> </span>install<span class="w"> </span><span class="s2">"conan>2.0"</span> -</pre></div> -</div> -</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>apt<span class="w"> </span>install<span class="w"> </span><span class="s2">"conan>2.0"</span> -</pre></div> -</div> -</div><p>pip install “conan>2.0â€</p> -</div> -</section> -<section id="conan-recipes"> -<h2>Conan Recipes<a class="headerlink" href="#conan-recipes" title="Link to this heading">ïƒ</a></h2> -<p>A <em>recipe</em> is python file, which is used by conan to build and create a package. -In this file there are several hooks available, which can be used for several tasks. -E.g. Retrieving the source files, building from source, configuring dependencies, packaging, etc. -Visit <a class="reference external" href="https://conan.io/">Conan</a>. for detailed information about <em>recipes</em>.</p> -</section> -<section id="conan-create"> -<h2>Conan Create<a class="headerlink" href="#conan-create" title="Link to this heading">ïƒ</a></h2> -<p>The <cite>conan create</cite> command is used to create Conan packages from source code. It involves building the source code, packaging the resulting binaries and artifacts, and generating the necessary metadata to publish the package. -The basic syntax of the command is as follows:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>conan<span class="w"> </span>create<span class="w"> </span><path_to_recipe><span class="w"> </span>--name<span class="w"> </span><span class="nv">$pkg</span><span class="w"> </span>--version<span class="w"> </span><span class="nv">$version</span><span class="w"> </span>--user<span class="w"> </span><span class="nv">$user</span><span class="w"> </span>--channel<span class="w"> </span><span class="nv">$channel</span><span class="w"> </span>--build<span class="o">=</span>missing<span class="w"> </span><span class="nv">$packageOptions</span><span class="w"> </span>-pr:a<span class="w"> </span><span class="s2">"</span><span class="nv">$conanprofile</span><span class="s2">"</span> -</pre></div> -</div> -<ul class="simple"> -<li><p><cite><path_to_source></cite>: The path to the conan recipe of that corresponding package.</p></li> -<li><p><cite>–name $pkg</cite>: Specifies the name of the package being created. $pkg is a placeholder for the actual package name.</p></li> -<li><p><cite>–version $version</cite>: Specifies the version of the package being created. $version is a placeholder for the actual version number.</p></li> -<li><p><cite>–user $user</cite>: Specifies the username of the package creator or owner. $user is a placeholder for the actual username.</p></li> -<li><p><cite>–channel $channel</cite>: Specifies the channel or repository where the package will be published. $channel is a placeholder for the actual channel name.</p></li> -<li><p><cite>–build=missing</cite>: Instructs Conan to build the package if its dependencies are missing or outdated. This ensures that all required dependencies are available and up to date before building the package.</p></li> -<li><p><cite>$packageOptions</cite>: Optional package-specific options that can be passed to the Conan recipe. These options can customize the build process or package configuration according to user requirements.</p></li> -<li><p><cite>-pr:a “$conanprofileâ€</cite>: Specifies a profile ($conanprofile) to be used during package creation. Profiles define the build environment and configuration settings for building packages. The -pr:a flag tells Conan to apply this profile specifically for building the package.</p></li> -</ul> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>conan<span class="w"> </span>create<span class="w"> </span>.<span class="w"> </span>--name<span class="w"> </span>openscenario_engine<span class="w"> </span>--version<span class="w"> </span><span class="m">0</span>.1<span class="w"> </span>--user<span class="w"> </span>openpass<span class="w"> </span>--channel<span class="w"> </span>testing<span class="w"> </span>--build<span class="o">=</span>missing<span class="w"> </span>-pr:a<span class="w"> </span>default -</pre></div> -</div> -<p>This command will build the package <cite>openscenario_engine</cite> with version <cite>1.0</cite> under the user <cite>openpass</cite> and channel <cite>testing</cite>.</p> -<p><strong>Optional Settings</strong></p> -<p>The <cite>-o</cite> option allows you to pass optional settings to the <cite>conan create</cite> command, which can be used to customize the build process of the package. These settings are defined in the <cite>conanfile.py</cite> recipe. -For example, you can specify build options, compiler flags, or any other configuration settings that influence the package creation process.</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>conan<span class="w"> </span>create<span class="w"> </span>.<span class="w"> </span>--name<span class="w"> </span>openscenario_engine<span class="w"> </span>--version<span class="w"> </span><span class="m">0</span>.1<span class="w"> </span>--user<span class="w"> </span>openpass<span class="w"> </span>--channel<span class="w"> </span>testing<span class="w"> </span>--build<span class="o">=</span>missing<span class="w"> </span>-o<span class="w"> </span><span class="nv">MantleAPI_version</span><span class="o">=</span><span class="m">0</span>.1<span class="w"> </span>-o<span class="w"> </span><span class="nv">Yase_version</span><span class="o">=</span><span class="m">0</span>.1<span class="w"> </span>-pr:a<span class="w"> </span>default -</pre></div> -</div> -<p>In this example, the <cite>-o</cite> option is used to set the <cite>MantleAPI_version</cite> and <cite>Yase_version</cite> build options for the <cite>openscenario_engine</cite> package. These options will be considered during the package creation process.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>For the packages MantleAPI, Yase, openscenario_api and openscenario_engine corresponding commit ids can be used instead of version when creating the package</p> -</div> -</section> -<section id="conan-install"> -<h2>Conan Install<a class="headerlink" href="#conan-install" title="Link to this heading">ïƒ</a></h2> -<p>The <cite>conan install</cite> command is used to install Conan packages from a Conan recipe (a <cite>conanfile.py</cite> file) and its associated dependencies. It resolves and fetches the required packages from a remote Conan repository or local conan cache and installs them in the specified target location. -The basic syntax of the command is as follows:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>conan<span class="w"> </span>install<span class="w"> </span>--requires<span class="o">=</span><pkg/version@user/channel><span class="w"> </span>--build<span class="w"> </span><missing<span class="p">|</span>outdated><span class="w"> </span>--deployer<span class="o">=</span><generator><span class="w"> </span>-of<span class="o">=</span><install-folder-folder><span class="w"> </span>-g<span class="w"> </span>CMakeDeps<span class="w"> </span>-pr:a<span class="w"> </span><span class="s2">"</span><span class="nv">$conanprofile</span><span class="s2">"</span> -</pre></div> -</div> -<ul class="simple"> -<li><p><cite><pkg/version@user/channel></cite>: The user and channel specify the namespace under which the package with the corresponding version will be built.</p></li> -<li><p><cite>-g <generator></cite>: Specifies the build system generator (e.g., <cite>CMakeDeps</cite>) for generating build files.</p></li> -<li><p><cite>-s <setting=value></cite>: Overrides a Conan setting defined in the recipe with the given value.</p></li> -<li><p><cite>–build <missing|outdated></cite>: Specifies whether to build missing or outdated packages.</p></li> -<li><p><cite>-pr:a “$conanprofileâ€</cite>: Specifies a profile ($conanprofile) to be used during package creation. Profiles define the build environment and configuration settings for building packages. The -pr:a flag tells Conan to apply this profile specifically for building the package.</p></li> -</ul> -<p><strong>Generate Deployment Files</strong></p> -<p>The <cite>-g direct_deploy</cite> option with the <cite>conan install</cite> command is used to generate deployment-related files and scripts for installing and running the package on a target system. -These files can include packaging scripts, installation scripts, and other artifacts required for deploying the package to a specific environment.</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>conan<span class="w"> </span>install<span class="w"> </span>openscenario_engine/0.1@openpass/testing<span class="w"> </span>-g<span class="w"> </span>direct_deploy<span class="w"> </span>--install-folder<span class="o">=</span><span class="s2">"my/installation/path"</span> -</pre></div> -</div> -<p>This command will deploy the package <cite>openscenario_engine/0.1@openpass/testing</cite> at the installation path.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>There are several additional commands, arguments and fields for these commands available. -Please see <a class="reference external" href="https://docs.conan.io/en/latest/">Conan Docs</a> for additional information.</p> -</div> -</section> -<section id="build-only-thirdparties"> -<h2>Build only ThirdParties<a class="headerlink" href="#build-only-thirdparties" title="Link to this heading">ïƒ</a></h2> -<p><strong>openPASS</strong> requires number of third parties libraries and they are listed in <code class="docutils literal notranslate"><span class="pre">conanfile.txt</span></code>. To install all the dependencies, the script <code class="docutils literal notranslate"><span class="pre">15_prepare_thirdParty.sh</span></code> can be used.</p> -<p>The exact list of dependency can be found below.</p> -<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>[requires] -libiconv/1.17@ -libxml2/2.12.5@ -b2/4.10.1 -boost/1.85.0 -qt/5.15.7 -zlib/1.2.13@ -minizip/1.2.13@ -gtest/1.14.0@ -fmilibrary/2.0.3@openpass/testing -protobuf/3.20.0@ -units/2.3.3@openpass/testing -open-simulation-interface/3.6.0@openpass/testing -mantleapi/v4.0.0@openpass/testing -yase/d0c0e58d17358044cc9018c74308b45f6097ecfb@openpass/testing -openscenario_api/v1.3.1@openpass/testing -openscenario_engine/v4.3.1@openpass/testing - - -[options] -libxml2/*:shared=False -libxml2/*:include_utils=False -libxml2/*:ftp=False -libxml2/*:http=False -libxml2/*:html=False -libxml2/*:legacy=False -libxml2/*:sax1=False -libxml2/*:zlib=False -msys2/*:no_kill=True -qt/*:with_pq=False -qt/*:with_libpng=False -qt/*:openssl=False -qt/*:opengl=no -qt/*:qtxmlpatterns=True -qt/*:with_x11=False -qt/*:qtwayland=False -b2/4.10.1:toolset=gcc -boost/*:shared=True -boost/*:fPIC=True -boost/*:without_chrono=True -boost/*:without_cobalt=True -boost/*:without_container=True -boost/*:without_context=True -boost/*:without_contract=True -boost/*:without_coroutine=True -boost/*:without_date_time=True -boost/*:without_fiber=True -boost/*:without_iostreams=True -boost/*:without_json=True -boost/*:without_locale=True -boost/*:without_log=True -boost/*:without_nowide=True -boost/*:without_stacktrace=True -boost/*:without_test=True -boost/*:without_thread=True -boost/*:without_timer=True -boost/*:without_type_erasure=True -boost/*:without_url=True -boost/*:without_wave=True -protobuf/*:shared=True -openscenario_engine/*:MantleAPI_version=v4.0.0 -openscenario_engine/*:Yase_version=d0c0e58d17358044cc9018c74308b45f6097ecfb - -[generators] -CMakeDeps -</pre></div> -</div> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="further_guidance/10_cmake.html" class="btn btn-neutral float-left" title="CMake Variables and Options" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="../user_guide/10_overview.html" class="btn btn-neutral float-right" title="Overview" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Building with Conan — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + <link rel="stylesheet" type="text/css" href="../_static/tabs.css?v=a5c4661c" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/tabs.js?v=3030b3cb"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Overview" href="../user_guide/10_overview.html" /> + <link rel="prev" title="CMake Variables and Options" href="further_guidance/10_cmake.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Building with Conan</a><ul> +<li class="toctree-l2"><a class="reference internal" href="#general">General</a></li> +<li class="toctree-l2"><a class="reference internal" href="#additional-prerequisites">Additional Prerequisites</a></li> +<li class="toctree-l2"><a class="reference internal" href="#conan-recipes">Conan Recipes</a></li> +<li class="toctree-l2"><a class="reference internal" href="#conan-create">Conan Create</a></li> +<li class="toctree-l2"><a class="reference internal" href="#conan-install">Conan Install</a></li> +<li class="toctree-l2"><a class="reference internal" href="#build-only-thirdparties">Build only ThirdParties</a></li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Building with Conan</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/installation_guide/60_conan.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="building-with-conan"> +<span id="id1"></span><h1>Building with Conan<a class="headerlink" href="#building-with-conan" title="Link to this heading">ïƒ</a></h1> +<section id="general"> +<h2>General<a class="headerlink" href="#general" title="Link to this heading">ïƒ</a></h2> +<p>Conan is an open source, decentralized and multi-platform package manager to create and share native binaries.</p> +<p>To learn more about Conan itself you can visit <a class="reference external" href="https://conan.io/">Conan</a>.</p> +<p>Conan is used in the <strong>openPASS</strong> project to create and manage the binaries of the used ThirdParty libraries.</p> +</section> +<section id="additional-prerequisites"> +<h2>Additional Prerequisites<a class="headerlink" href="#additional-prerequisites" title="Link to this heading">ïƒ</a></h2> +<p>To be able to work with Conan it is necessary to add additional packages.</p> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Windows (MSYS2)</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Linux (Debian Bookworm)</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pip<span class="w"> </span>install<span class="w"> </span><span class="s2">"conan>=2.2.0"</span> +</pre></div> +</div> +</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>apt<span class="w"> </span>install<span class="w"> </span><span class="s2">"conan>=2.2.0"</span> +</pre></div> +</div> +</div><p>pip install “conan>2.0â€</p> +</div> +</section> +<section id="conan-recipes"> +<h2>Conan Recipes<a class="headerlink" href="#conan-recipes" title="Link to this heading">ïƒ</a></h2> +<p>A <em>recipe</em> is python file, which is used by conan to build and create a package. +In this file there are several hooks available, which can be used for several tasks. +E.g. Retrieving the source files, building from source, configuring dependencies, packaging, etc. +Visit <a class="reference external" href="https://conan.io/">Conan</a>. for detailed information about <em>recipes</em>.</p> +</section> +<section id="conan-create"> +<h2>Conan Create<a class="headerlink" href="#conan-create" title="Link to this heading">ïƒ</a></h2> +<p>The <cite>conan create</cite> command is used to create Conan packages from source code. It involves building the source code, packaging the resulting binaries and artifacts, and generating the necessary metadata to publish the package. +The basic syntax of the command is as follows:</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>conan<span class="w"> </span>create<span class="w"> </span><path_to_recipe><span class="w"> </span>--name<span class="w"> </span><span class="nv">$pkg</span><span class="w"> </span>--version<span class="w"> </span><span class="nv">$version</span><span class="w"> </span>--user<span class="w"> </span><span class="nv">$user</span><span class="w"> </span>--channel<span class="w"> </span><span class="nv">$channel</span><span class="w"> </span>--build<span class="o">=</span>missing<span class="w"> </span><span class="nv">$packageOptions</span><span class="w"> </span>-pr:a<span class="w"> </span><span class="s2">"</span><span class="nv">$conanprofile</span><span class="s2">"</span> +</pre></div> +</div> +<ul class="simple"> +<li><p><cite><path_to_source></cite>: The path to the conan recipe of that corresponding package.</p></li> +<li><p><cite>–name $pkg</cite>: Specifies the name of the package being created. $pkg is a placeholder for the actual package name.</p></li> +<li><p><cite>–version $version</cite>: Specifies the version of the package being created. $version is a placeholder for the actual version number.</p></li> +<li><p><cite>–user $user</cite>: Specifies the username of the package creator or owner. $user is a placeholder for the actual username.</p></li> +<li><p><cite>–channel $channel</cite>: Specifies the channel or repository where the package will be published. $channel is a placeholder for the actual channel name.</p></li> +<li><p><cite>–build=missing</cite>: Instructs Conan to build the package if its dependencies are missing or outdated. This ensures that all required dependencies are available and up to date before building the package.</p></li> +<li><p><cite>$packageOptions</cite>: Optional package-specific options that can be passed to the Conan recipe. These options can customize the build process or package configuration according to user requirements.</p></li> +<li><p><cite>-pr:a “$conanprofileâ€</cite>: Specifies a profile ($conanprofile) to be used during package creation. Profiles define the build environment and configuration settings for building packages. The -pr:a flag tells Conan to apply this profile specifically for building the package.</p></li> +</ul> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>conan<span class="w"> </span>create<span class="w"> </span>.<span class="w"> </span>--name<span class="w"> </span>openscenario_engine<span class="w"> </span>--version<span class="w"> </span><span class="m">0</span>.1<span class="w"> </span>--user<span class="w"> </span>openpass<span class="w"> </span>--channel<span class="w"> </span>testing<span class="w"> </span>--build<span class="o">=</span>missing<span class="w"> </span>-pr:a<span class="w"> </span>default +</pre></div> +</div> +<p>This command will build the package <cite>openscenario_engine</cite> with version <cite>1.0</cite> under the user <cite>openpass</cite> and channel <cite>testing</cite>.</p> +<p><strong>Optional Settings</strong></p> +<p>The <cite>-o</cite> option allows you to pass optional settings to the <cite>conan create</cite> command, which can be used to customize the build process of the package. These settings are defined in the <cite>conanfile.py</cite> recipe. +For example, you can specify build options, compiler flags, or any other configuration settings that influence the package creation process.</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>conan<span class="w"> </span>create<span class="w"> </span>.<span class="w"> </span>--name<span class="w"> </span>openscenario_engine<span class="w"> </span>--version<span class="w"> </span><span class="m">0</span>.1<span class="w"> </span>--user<span class="w"> </span>openpass<span class="w"> </span>--channel<span class="w"> </span>testing<span class="w"> </span>--build<span class="o">=</span>missing<span class="w"> </span>-o<span class="w"> </span><span class="nv">MantleAPI_version</span><span class="o">=</span><span class="m">0</span>.1<span class="w"> </span>-o<span class="w"> </span><span class="nv">Yase_version</span><span class="o">=</span><span class="m">0</span>.1<span class="w"> </span>-pr:a<span class="w"> </span>default +</pre></div> +</div> +<p>In this example, the <cite>-o</cite> option is used to set the <cite>MantleAPI_version</cite> and <cite>Yase_version</cite> build options for the <cite>openscenario_engine</cite> package. These options will be considered during the package creation process.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>For the packages MantleAPI, Yase, openscenario_api and openscenario_engine corresponding commit ids can be used instead of version when creating the package</p> +</div> +</section> +<section id="conan-install"> +<h2>Conan Install<a class="headerlink" href="#conan-install" title="Link to this heading">ïƒ</a></h2> +<p>The <cite>conan install</cite> command is used to install Conan packages from a Conan recipe (a <cite>conanfile.py</cite> file) and its associated dependencies. It resolves and fetches the required packages from a remote Conan repository or local conan cache and installs them in the specified target location. +The basic syntax of the command is as follows:</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>conan<span class="w"> </span>install<span class="w"> </span>--requires<span class="o">=</span><pkg/version@user/channel><span class="w"> </span>--build<span class="w"> </span><missing<span class="p">|</span>outdated><span class="w"> </span>--deployer<span class="o">=</span><generator><span class="w"> </span>-of<span class="o">=</span><install-folder-folder><span class="w"> </span>-g<span class="w"> </span>CMakeDeps<span class="w"> </span>-pr:a<span class="w"> </span><span class="s2">"</span><span class="nv">$conanprofile</span><span class="s2">"</span> +</pre></div> +</div> +<ul class="simple"> +<li><p><cite><pkg/version@user/channel></cite>: The user and channel specify the namespace under which the package with the corresponding version will be built.</p></li> +<li><p><cite>-g <generator></cite>: Specifies the build system generator (e.g., <cite>CMakeDeps</cite>) for generating build files.</p></li> +<li><p><cite>-s <setting=value></cite>: Overrides a Conan setting defined in the recipe with the given value.</p></li> +<li><p><cite>–build <missing|outdated></cite>: Specifies whether to build missing or outdated packages.</p></li> +<li><p><cite>-pr:a “$conanprofileâ€</cite>: Specifies a profile ($conanprofile) to be used during package creation. Profiles define the build environment and configuration settings for building packages. The -pr:a flag tells Conan to apply this profile specifically for building the package.</p></li> +</ul> +<p><strong>Generate Deployment Files</strong></p> +<p>The <cite>-g direct_deploy</cite> option with the <cite>conan install</cite> command is used to generate deployment-related files and scripts for installing and running the package on a target system. +These files can include packaging scripts, installation scripts, and other artifacts required for deploying the package to a specific environment.</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>conan<span class="w"> </span>install<span class="w"> </span>openscenario_engine/0.1@openpass/testing<span class="w"> </span>-g<span class="w"> </span>direct_deploy<span class="w"> </span>--install-folder<span class="o">=</span><span class="s2">"my/installation/path"</span> +</pre></div> +</div> +<p>This command will deploy the package <cite>openscenario_engine/0.1@openpass/testing</cite> at the installation path.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>There are several additional commands, arguments and fields for these commands available. +Please see <a class="reference external" href="https://docs.conan.io/en/latest/">Conan Docs</a> for additional information.</p> +</div> +</section> +<section id="build-only-thirdparties"> +<h2>Build only ThirdParties<a class="headerlink" href="#build-only-thirdparties" title="Link to this heading">ïƒ</a></h2> +<p><strong>openPASS</strong> requires number of third parties libraries and they are listed in <code class="docutils literal notranslate"><span class="pre">conanfile.txt</span></code>. To install all the dependencies, the script <code class="docutils literal notranslate"><span class="pre">15_prepare_thirdParty.sh</span></code> can be used.</p> +<p>The exact list of dependency can be found below.</p> +<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>[requires] +b2/5.0.0 +boost/1.85.0 +fmilibrary/2.0.3 +gtest/1.14.0 +libiconv/1.17 +libxml2/2.11.5 +mantleapi/v5.1.0 +minizip/1.2.13 +open-simulation-interface/3.7.0 +openscenario_api/v1.3.1 +openscenario_engine/v6.0.1 +protobuf-shared/3.20.0 +protobuf/3.20.0 +units/2.3.3 +yase/0.1 +zlib/1.3.1 + +[options] +b2/*:toolset=gcc +boost/*:shared=True +boost/*:without_chrono=True +boost/*:without_cobalt=True +boost/*:without_container=True +boost/*:without_context=True +boost/*:without_contract=True +boost/*:without_coroutine=True +boost/*:without_date_time=True +boost/*:without_fiber=True +boost/*:without_iostreams=True +boost/*:without_json=True +boost/*:without_locale=True +boost/*:without_log=True +boost/*:without_nowide=True +boost/*:without_stacktrace=True +boost/*:without_test=True +boost/*:without_thread=True +boost/*:without_timer=True +boost/*:without_type_erasure=True +boost/*:without_url=True +boost/*:without_wave=True +libxml2/*:ftp=False +libxml2/*:html=False +libxml2/*:http=False +libxml2/*:include_utils=False +libxml2/*:legacy=False +libxml2/*:sax1=False +libxml2/*:shared=False +libxml2/*:zlib=False +msys2/*:no_kill=True +openscenario_engine/*:MantleAPI_version=v5.1.0 +openscenario_engine/*:Yase_version=0.1 +protobuf-shared/*:debug_suffix=False +protobuf/*:debug_suffix=False + +[generators] +CMakeDeps +</pre></div> +</div> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="further_guidance/10_cmake.html" class="btn btn-neutral float-left" title="CMake Variables and Options" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../user_guide/10_overview.html" class="btn btn-neutral float-right" title="Overview" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/installation_guide/further_guidance/10_cmake.html b/content/html/installation_guide/further_guidance/10_cmake.html index 7259497869b925b0f5a041606927afecac7f982f..eb20091e7a1dba98b72ba575d0c05f83ebec0131 100644 --- a/content/html/installation_guide/further_guidance/10_cmake.html +++ b/content/html/installation_guide/further_guidance/10_cmake.html @@ -1,453 +1,455 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>CMake Variables and Options — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/tabs.js?v=3030b3cb"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Building with Conan" href="../60_conan.html" /> - <link rel="prev" title="Further Guidance" href="../50_further_guidance.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../50_further_guidance.html">Further Guidance</a><ul class="current"> -<li class="toctree-l2 current"><a class="current reference internal" href="#">CMake Variables and Options</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#cmake-generator">CMake Generator</a></li> -<li class="toctree-l3"><a class="reference internal" href="#cmake-prefix-path">CMAKE_PREFIX_PATH</a></li> -<li class="toctree-l3"><a class="reference internal" href="#cmake-install-prefix">CMAKE_INSTALL_PREFIX</a></li> -<li class="toctree-l3"><a class="reference internal" href="#cmake-with-debug-postix">CMAKE_WITH_DEBUG_POSTIX</a></li> -<li class="toctree-l3"><a class="reference internal" href="#cmake-build-type">CMAKE_BUILD_TYPE</a></li> -<li class="toctree-l3"><a class="reference internal" href="#cmake-c-compiler">CMAKE_C_COMPILER</a></li> -<li class="toctree-l3"><a class="reference internal" href="#cmake-cxx-compiler">CMAKE_CXX_COMPILER</a></li> -<li class="toctree-l3"><a class="reference internal" href="#cmake-object-path-max">CMAKE_OBJECT_PATH_MAX</a></li> -<li class="toctree-l3"><a class="reference internal" href="#use-ccache">USE_CCACHE</a></li> -<li class="toctree-l3"><a class="reference internal" href="#with-simcore">WITH_SIMCORE</a></li> -<li class="toctree-l3"><a class="reference internal" href="#with-doc">WITH_DOC</a></li> -<li class="toctree-l3"><a class="reference internal" href="#with-api-doc">WITH_API_DOC</a></li> -<li class="toctree-l3"><a class="reference internal" href="#with-tests">WITH_TESTS</a></li> -<li class="toctree-l3"><a class="reference internal" href="#with-coverage">WITH_COVERAGE</a></li> -<li class="toctree-l3"><a class="reference internal" href="#with-endtoend-tests">WITH_ENDTOEND_TESTS</a></li> -<li class="toctree-l3"><a class="reference internal" href="#openpass-adjust-output">OPENPASS_ADJUST_OUTPUT</a></li> -<li class="toctree-l3"><a class="reference internal" href="#with-protobuf-arena">WITH_PROTOBUF_ARENA</a></li> -<li class="toctree-l3"><a class="reference internal" href="#install-system-runtime-deps">INSTALL_SYSTEM_RUNTIME_DEPS</a></li> -<li class="toctree-l3"><a class="reference internal" href="#install-extra-runtime-deps">INSTALL_EXTRA_RUNTIME_DEPS</a></li> -<li class="toctree-l3"><a class="reference internal" href="#install-examples">INSTALL_EXAMPLES</a></li> -<li class="toctree-l3"><a class="reference internal" href="#make-targets-commands">Make Targets/Commands</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#build-and-install">Build and Install</a></li> -<li class="toctree-l4"><a class="reference internal" href="#executing-tests">Executing Tests</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../50_further_guidance.html">Further Guidance</a></li> - <li class="breadcrumb-item active">CMake Variables and Options</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/installation_guide/further_guidance/10_cmake.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="cmake-variables-and-options"> -<span id="cmake"></span><h1>CMake Variables and Options<a class="headerlink" href="#cmake-variables-and-options" title="Link to this heading">ïƒ</a></h1> -<p><strong>openPASS</strong> uses CMake as default cross-platform build environment. -CMake varibles describe configuration settings, which can be overriden by the user. -To override any build configuration, the CMake variables have to be provided when CMake gets run.</p> -<p>If available, recommended options are shown in <strong>bold</strong>.</p> -<p>The following guide is structered as follows: The first part describes the available variables and options. -There are standard CMake variables which are marked with the prefix <code class="docutils literal notranslate"><span class="pre">CMAKE_</span></code> and other defined variables -used internally to further specify the build of <strong>openPASS</strong>. As the result of a proper CMake call is a Makefile, -which then acts as base for the actual build using <code class="docutils literal notranslate"><span class="pre">make</span></code>, the second part describes best practices around the make commands using <code class="docutils literal notranslate"><span class="pre">make</span></code>.</p> -<p>Note, this guide approaches CMake from the <em>command line perspective</em>. -Adjustments for VSCode can be found under <a class="reference internal" href="../../developer_information/ide_support/30_vscode.html#vscode"><span class="std std-ref">Working with Visual Studio Code</span></a>.</p> -<div class="admonition-see-also admonition"> -<p class="admonition-title">See also</p> -<p>CMake Documentation: <a class="reference external" href="https://cmake.org/cmake/help/latest/index.html">https://cmake.org/cmake/help/latest/index.html</a></p> -</div> -<section id="cmake-generator"> -<h2>CMake Generator<a class="headerlink" href="#cmake-generator" title="Link to this heading">ïƒ</a></h2> -<p>This is only important for <strong>Windows</strong>. -To generate MSYS compatible makefiles use <code class="docutils literal notranslate"><span class="pre">-G</span> <span class="pre">"MSYS</span> <span class="pre">Makefiles"</span></code> (c.f. <a class="reference internal" href="../20_install_prerequisites.html#msys2"><span class="std std-ref">MSYS2</span></a>).</p> -</section> -<section id="cmake-prefix-path"> -<span id="id1"></span><h2>CMAKE_PREFIX_PATH<a class="headerlink" href="#cmake-prefix-path" title="Link to this heading">ïƒ</a></h2> -<p>This variable makes the prerequisites available to <strong>openPASS</strong> as semicolon-separated list of directories, -specifying installation prefixes to be searched by cmake. -Please refer to <a class="reference internal" href="../20_install_prerequisites.html#prerequisites"><span class="std std-ref">Installing Prerequisites</span></a> for the list of mandatory packages and libraries. -CMake will issue an error, if one prerequisite is missing.</p> -<p>Generally, cmake recognizes installed libraries (e.g. googletest) on its own. -By setting an explicit <code class="docutils literal notranslate"><span class="pre">CMAKE_PREFIX_PATH</span></code> for a library, it is possible to override the system libraries. -Use this, when an exact library version, or a customized library shall be used.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>In the following example, non-standard libraries are assumed to be in the folder <code class="docutils literal notranslate"><span class="pre">deps/thirdParty</span></code>.</p> -</div> -<p><strong>Example</strong> (system libraries <strong>not</strong> set):</p> -<div class="sphinx-tabs docutils container"> -<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake<span class="w"> </span>-G<span class="w"> </span><span class="s2">"MSYS Makefiles"</span> -<span class="w"> </span>-D<span class="w"> </span><span class="nv">CMAKE_PREFIX_PATH</span><span class="o">=</span><span class="s2">"\</span> -<span class="s2"> /mingw64/bin;\</span> -<span class="s2"> </span><span class="nv">$PWD</span><span class="s2">/../deps/thirdParty/win64/FMILibrary;\</span> -<span class="s2"> </span><span class="nv">$PWD</span><span class="s2">/../deps/thirdParty/win64/osi;\</span> -<span class="s2"> </span><span class="nv">$PWD</span><span class="s2">/../deps/thirdParty/win64/minizip;\</span> -<span class="s2"> -D <other variables>\</span> -<span class="s2"> ..</span> -</pre></div> -</div> -</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake<span class="w"> </span>-D<span class="w"> </span><span class="nv">CMAKE_PREFIX_PATH</span><span class="o">=</span><span class="se">\</span> -<span class="w"> </span><span class="nv">$PWD</span>/../deps/thirdParty/linux64/FMILibrary<span class="se">\;\</span> -<span class="w"> </span><span class="nv">$PWD</span>/../deps/thirdParty/linux64/osi<span class="se">\;\</span> -<span class="w"> </span><span class="nv">$PWD</span>/../deps/thirdParty/linux64/minizip<span class="se">\;\</span> -<span class="w"> </span>-D<span class="w"> </span><other<span class="w"> </span>variables><span class="w"> </span><span class="se">\</span> -<span class="w"> </span>.. -</pre></div> -</div> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>The semicolon <code class="docutils literal notranslate"><span class="pre">;</span></code> needs to be escaped (<code class="docutils literal notranslate"><span class="pre">\;</span></code>) unless the string is quoted.</p> -</div> -</div></div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Please also read through <a class="reference internal" href="#cmake-openpass-variables"><span class="std std-ref">USE_CCACHE</span></a> for further useful hints, e.g. why explicitly setting the MinGW path might be a necessary in some situations.</p> -</div> -<p>Installation directory</p> -</section> -<section id="cmake-install-prefix"> -<h2>CMAKE_INSTALL_PREFIX<a class="headerlink" href="#cmake-install-prefix" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Install directory used by install, when invoking <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code></p></li> -<li><p>Recommendation: <code class="docutils literal notranslate"><span class="pre">/openPASS/bin/core</span></code> (Linux) | <code class="docutils literal notranslate"><span class="pre">C:/openPASS/bin/core</span></code> (Windows)</p></li> -</ul> -</section> -<section id="cmake-with-debug-postix"> -<h2>CMAKE_WITH_DEBUG_POSTIX<a class="headerlink" href="#cmake-with-debug-postix" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Used only in conjunction with <em>Visual Studio Debug Builds</em> (MSVC), as it distinguishes release/debug DLLs by a postfix <code class="docutils literal notranslate"><span class="pre">d</span></code>.</p></li> -<li><p>Options: <strong>OFF</strong> | ON</p></li> -</ul> -</section> -<section id="cmake-build-type"> -<h2>CMAKE_BUILD_TYPE<a class="headerlink" href="#cmake-build-type" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Specifies the build type on single-configuration generators.</p></li> -<li><p>Typical: Release | Debug</p></li> -<li><p>See: <a class="reference external" href="https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html">https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html</a></p></li> -</ul> -</section> -<section id="cmake-c-compiler"> -<h2>CMAKE_C_COMPILER<a class="headerlink" href="#cmake-c-compiler" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Options: <strong>gcc-13</strong> | gcc-12 | gcc-11 | gcc-10 | gcc-9</p></li> -<li><p>See: <a class="reference external" href="https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html">https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html</a></p></li> -</ul> -</section> -<section id="cmake-cxx-compiler"> -<h2>CMAKE_CXX_COMPILER<a class="headerlink" href="#cmake-cxx-compiler" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Options: <strong>gcc-13</strong> | gcc-12 | gcc-11 | gcc-10 | gcc-9</p></li> -<li><p>See: <a class="reference external" href="https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html">https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html</a></p></li> -</ul> -</section> -<section id="cmake-object-path-max"> -<h2>CMAKE_OBJECT_PATH_MAX<a class="headerlink" href="#cmake-object-path-max" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Under windows, errors from too long paths could be prevented by setting this value to 255 (maximum).</p></li> -<li><p>See: <a class="reference external" href="https://cmake.org/cmake/help/latest/variable/CMAKE_OBJECT_PATH_MAX.html">https://cmake.org/cmake/help/latest/variable/CMAKE_OBJECT_PATH_MAX.html</a></p></li> -</ul> -</section> -<section id="use-ccache"> -<span id="cmake-openpass-variables"></span><h2>USE_CCACHE<a class="headerlink" href="#use-ccache" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Activates ccache (see <a class="reference internal" href="../../other_information/10_external_dependencies.html#prerequisites-ccache"><span class="std std-ref">Ccache</span></a>)</p></li> -<li><p>Options: <strong>ON</strong> | OFF</p></li> -</ul> -</section> -<section id="with-simcore"> -<h2>WITH_SIMCORE<a class="headerlink" href="#with-simcore" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Build OSI based scenario simulation, also know as openPASS simulation core (opSimulation).</p></li> -<li><p>Options: OFF | <strong>ON</strong></p></li> -</ul> -</section> -<section id="with-doc"> -<h2>WITH_DOC<a class="headerlink" href="#with-doc" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Build sphinx based documentation</p></li> -<li><p>Options: OFF | <strong>ON</strong></p></li> -</ul> -</section> -<section id="with-api-doc"> -<h2>WITH_API_DOC<a class="headerlink" href="#with-api-doc" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Build sphinx based developer documentation</p></li> -<li><p>Options: <strong>OFF</strong> | ON</p></li> -</ul> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Automatically activates <code class="docutils literal notranslate"><span class="pre">WITH_DOC</span></code> if ON</p> -</div> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>Building the API doc takes pretty long.</p> -</div> -</section> -<section id="with-tests"> -<h2>WITH_TESTS<a class="headerlink" href="#with-tests" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Build unit tests</p></li> -<li><p>Options: OFF | <strong>ON</strong></p></li> -</ul> -</section> -<section id="with-coverage"> -<h2>WITH_COVERAGE<a class="headerlink" href="#with-coverage" title="Link to this heading">ïƒ</a></h2> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>This option turns off optimization, which might make execution considerably slower. -In exchange, a coverage <cite><test_name>.info`</cite> and HTML reports will be generated in a folder called <code class="docutils literal notranslate"><span class="pre">coverage</span></code> within the cmake build folder.</p> -</div> -<ul> -<li><p>For each registered test target (see <code class="docutils literal notranslate"><span class="pre">add_openpass_target</span></code> in <code class="docutils literal notranslate"><span class="pre">./cmake/HelperMacros.cmake</span></code>) two more targets are added. -One for code coverage analysis using <code class="docutils literal notranslate"><span class="pre">lcov</span></code> (target <code class="docutils literal notranslate"><span class="pre"><test_name>_coverage</span></code>). -A second for HTML report generation using <code class="docutils literal notranslate"><span class="pre">genhtml</span></code> (target <code class="docutils literal notranslate"><span class="pre"><test_name>_html</span></code>).</p></li> -<li><p>In addition to the individual tests, an overall test target <code class="docutils literal notranslate"><span class="pre">TestCoverageReport</span></code> is created. -When invoked, it will execute all individual tests and combine their coverage data into a single report found in <code class="docutils literal notranslate"><span class="pre">coverage/TestCoverageReport</span></code>.</p></li> -<li><p>Options: <strong>OFF</strong> | ON</p></li> -<li><p>Requires:</p> -<ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">WITH_TESTS=ON</span></code></p></li> -<li><p>gcov, lcov, fastcov (python)</p></li> -</ul> -</li> -<li><p>Parameterization:</p> -<ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">COVERAGE_EXCLUDES</span></code> allows to remove source files from report (substring matching), i.e. <code class="docutils literal notranslate"><span class="pre">/usr/include</span></code>.</p></li> -<li><p>Multiple paths have to be separated by spaces.</p></li> -<li><p>Paths specified through <code class="docutils literal notranslate"><span class="pre">CMAKE_PREFIX_PATH</span></code> and <code class="docutils literal notranslate"><span class="pre">tests/</span></code> are filtered by default.</p></li> -</ul> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>Excluding too many paths or files may lead to an empty <code class="docutils literal notranslate"><span class="pre"><test_name>.info</span></code> file, causing the HTML target to fail.</p> -</div> -</li> -</ul> -</section> -<section id="with-endtoend-tests"> -<h2>WITH_ENDTOEND_TESTS<a class="headerlink" href="#with-endtoend-tests" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Enables execution of end to end tests using <a class="reference internal" href="../../advanced_topics/30_testing.html#testing-endtoend"><span class="std std-ref">EndToEnd Test Framework</span></a>.</p></li> -<li><p>Tests can be ran by executing <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span> <span class="pre">&&</span> <span class="pre">make</span> <span class="pre">pyOpenPASS</span></code></p></li> -<li><p>Options: <strong>OFF</strong> | ON</p></li> -</ul> -</section> -<section id="openpass-adjust-output"> -<h2>OPENPASS_ADJUST_OUTPUT<a class="headerlink" href="#openpass-adjust-output" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Adjusts if builds are executed in the (CMake default) folder <code class="docutils literal notranslate"><span class="pre">build</span></code> or directly in the specified install directory. -Latter let you skip the call <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>.</p></li> -<li><p>Options: <strong>OFF</strong> | ON</p></li> -</ul> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>When skipping <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>, dependencies are not copied into the output folder, which could cause crashes due to missing or outdated libraries.</p> -</div> -</section> -<section id="with-protobuf-arena"> -<span id="cmake-protobuf-arenas"></span><h2>WITH_PROTOBUF_ARENA<a class="headerlink" href="#with-protobuf-arena" title="Link to this heading">ïƒ</a></h2> -<ul> -<li><div class="line-block"> -<div class="line"><em>Arena allocation is a C++-only feature that helps you optimize your memory usage and improve performance when working with protocol buffers.</em></div> -<div class="line">(from <a class="reference external" href="https://developers.google.com/protocol-buffers/docs/reference/arenas">https://developers.google.com/protocol-buffers/docs/reference/arenas</a>)</div> -</div> -</li> -<li><p>Options: <strong>ON</strong> | OFF</p></li> -</ul> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>This feature is only available, if protobuf related libraries are also compiled with arenas. -Fortunately, the implementation falls back to regular allocation if not, which simply results in less performance.</p> -</div> -</section> -<section id="install-system-runtime-deps"> -<h2>INSTALL_SYSTEM_RUNTIME_DEPS<a class="headerlink" href="#install-system-runtime-deps" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>during installation step, this configuration copies detected system runtime dependencies to install directory (i.e. MinGW system libraries)</p></li> -<li><p>Options: ON | <strong>OFF</strong></p></li> -</ul> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>Under windows, automatic resolution might fail if other MinGW instances are installed. -As several programs use MinGW under the hood, it is recommended to set the used MinGW path in the CMAKE_PREFIX_PATH explicitly:</p> -<blockquote> -<div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">CMAKE_PREFIX_PATH</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>mingw64/bin<span class="p">;</span><span class="se">\.</span>.. -</pre></div> -</div> -</div></blockquote> -</div> -</section> -<section id="install-extra-runtime-deps"> -<h2>INSTALL_EXTRA_RUNTIME_DEPS<a class="headerlink" href="#install-extra-runtime-deps" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>during installation step, this configuration copies detected runtime dependencies (i.e. required shared libraries) specified in <cite>CMAKE_PREFIX_PATH</cite> to install directory</p></li> -<li><p>Options: ON | <strong>OFF</strong></p></li> -</ul> -</section> -<section id="install-examples"> -<h2>INSTALL_EXAMPLES<a class="headerlink" href="#install-examples" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>If <cite>ON</cite>, <strong>opSimulation</strong> configuration examples are copied to the <cite>examples</cite> folder inside the installation directory (during the installation step).</p></li> -<li><p>Options: <strong>ON</strong> | OFF</p></li> -</ul> -</section> -<section id="make-targets-commands"> -<h2>Make Targets/Commands<a class="headerlink" href="#make-targets-commands" title="Link to this heading">ïƒ</a></h2> -<p><strong>openPASS</strong> defines build targets by major modules or components, such as <code class="docutils literal notranslate"><span class="pre">opSimulation</span></code> or <code class="docutils literal notranslate"><span class="pre">Algorithm_FmuWrapper</span></code>. -After calling CMake, simply build <strong>openPASS</strong> by calling <code class="docutils literal notranslate"><span class="pre">make</span></code>.</p> -<div class="admonition-see-also admonition"> -<p class="admonition-title">See also</p> -<p><a class="reference external" href="https://www.tutorialspoint.com/unix_commands/make.htm">https://www.tutorialspoint.com/unix_commands/make.htm</a></p> -</div> -<section id="build-and-install"> -<h3>Build and Install<a class="headerlink" href="#build-and-install" title="Link to this heading">ïƒ</a></h3> -<ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">make</span></code></p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code></p> -</li> -<li><p><code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre"><target></span></code>: Build a single target</p></li> -</ul> -</section> -<section id="executing-tests"> -<h3>Executing Tests<a class="headerlink" href="#executing-tests" title="Link to this heading">ïƒ</a></h3> -<ul class="simple"> -<li><p>All tests: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span> <span class="pre">ARGS="--output-on-failure</span> <span class="pre">-j3"</span></code></p></li> -<li><p>Single test: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span> <span class="pre">opSimulation_Tests</span> <span class="pre">ARGS="--output-on-failure</span> <span class="pre">-j3"</span></code></p></li> -</ul> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../50_further_guidance.html" class="btn btn-neutral float-left" title="Further Guidance" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="../60_conan.html" class="btn btn-neutral float-right" title="Building with Conan" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>CMake Variables and Options — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + <link rel="stylesheet" type="text/css" href="../../_static/tabs.css?v=a5c4661c" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/tabs.js?v=3030b3cb"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Building with Conan" href="../60_conan.html" /> + <link rel="prev" title="Further Guidance" href="../50_further_guidance.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../50_further_guidance.html">Further Guidance</a><ul class="current"> +<li class="toctree-l2 current"><a class="current reference internal" href="#">CMake Variables and Options</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#cmake-generator">CMake Generator</a></li> +<li class="toctree-l3"><a class="reference internal" href="#cmake-prefix-path">CMAKE_PREFIX_PATH</a></li> +<li class="toctree-l3"><a class="reference internal" href="#cmake-install-prefix">CMAKE_INSTALL_PREFIX</a></li> +<li class="toctree-l3"><a class="reference internal" href="#cmake-with-debug-postix">CMAKE_WITH_DEBUG_POSTIX</a></li> +<li class="toctree-l3"><a class="reference internal" href="#cmake-build-type">CMAKE_BUILD_TYPE</a></li> +<li class="toctree-l3"><a class="reference internal" href="#cmake-c-compiler">CMAKE_C_COMPILER</a></li> +<li class="toctree-l3"><a class="reference internal" href="#cmake-cxx-compiler">CMAKE_CXX_COMPILER</a></li> +<li class="toctree-l3"><a class="reference internal" href="#cmake-object-path-max">CMAKE_OBJECT_PATH_MAX</a></li> +<li class="toctree-l3"><a class="reference internal" href="#use-ccache">USE_CCACHE</a></li> +<li class="toctree-l3"><a class="reference internal" href="#with-simcore">WITH_SIMCORE</a></li> +<li class="toctree-l3"><a class="reference internal" href="#with-doc">WITH_DOC</a></li> +<li class="toctree-l3"><a class="reference internal" href="#with-api-doc">WITH_API_DOC</a></li> +<li class="toctree-l3"><a class="reference internal" href="#with-tests">WITH_TESTS</a></li> +<li class="toctree-l3"><a class="reference internal" href="#with-coverage">WITH_COVERAGE</a></li> +<li class="toctree-l3"><a class="reference internal" href="#with-endtoend-tests">WITH_ENDTOEND_TESTS</a></li> +<li class="toctree-l3"><a class="reference internal" href="#openpass-adjust-output">OPENPASS_ADJUST_OUTPUT</a></li> +<li class="toctree-l3"><a class="reference internal" href="#with-protobuf-arena">WITH_PROTOBUF_ARENA</a></li> +<li class="toctree-l3"><a class="reference internal" href="#install-system-runtime-deps">INSTALL_SYSTEM_RUNTIME_DEPS</a></li> +<li class="toctree-l3"><a class="reference internal" href="#install-extra-runtime-deps">INSTALL_EXTRA_RUNTIME_DEPS</a></li> +<li class="toctree-l3"><a class="reference internal" href="#install-examples">INSTALL_EXAMPLES</a></li> +<li class="toctree-l3"><a class="reference internal" href="#make-targets-commands">Make Targets/Commands</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#build-and-install">Build and Install</a></li> +<li class="toctree-l4"><a class="reference internal" href="#executing-tests">Executing Tests</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../50_further_guidance.html">Further Guidance</a></li> + <li class="breadcrumb-item active">CMake Variables and Options</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/installation_guide/further_guidance/10_cmake.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="cmake-variables-and-options"> +<span id="cmake"></span><h1>CMake Variables and Options<a class="headerlink" href="#cmake-variables-and-options" title="Link to this heading">ïƒ</a></h1> +<p><strong>openPASS</strong> uses CMake as default cross-platform build environment. +CMake varibles describe configuration settings, which can be overriden by the user. +To override any build configuration, the CMake variables have to be provided when CMake gets run.</p> +<p>If available, recommended options are shown in <strong>bold</strong>.</p> +<p>The following guide is structered as follows: The first part describes the available variables and options. +There are standard CMake variables which are marked with the prefix <code class="docutils literal notranslate"><span class="pre">CMAKE_</span></code> and other defined variables +used internally to further specify the build of <strong>openPASS</strong>. As the result of a proper CMake call is a Makefile, +which then acts as base for the actual build using <code class="docutils literal notranslate"><span class="pre">make</span></code>, the second part describes best practices around the make commands using <code class="docutils literal notranslate"><span class="pre">make</span></code>.</p> +<p>Note, this guide approaches CMake from the <em>command line perspective</em>. +Adjustments for VSCode can be found under <a class="reference internal" href="../../developer_information/ide_support/30_vscode.html#vscode"><span class="std std-ref">Working with Visual Studio Code</span></a>.</p> +<div class="admonition-see-also admonition"> +<p class="admonition-title">See also</p> +<p>CMake Documentation: <a class="reference external" href="https://cmake.org/cmake/help/latest/index.html">https://cmake.org/cmake/help/latest/index.html</a></p> +</div> +<section id="cmake-generator"> +<h2>CMake Generator<a class="headerlink" href="#cmake-generator" title="Link to this heading">ïƒ</a></h2> +<p>This is only important for <strong>Windows</strong>. +To generate MSYS compatible makefiles use <code class="docutils literal notranslate"><span class="pre">-G</span> <span class="pre">"MSYS</span> <span class="pre">Makefiles"</span></code> (c.f. <a class="reference internal" href="../20_install_prerequisites.html#msys2"><span class="std std-ref">MSYS2</span></a>).</p> +</section> +<section id="cmake-prefix-path"> +<span id="id1"></span><h2>CMAKE_PREFIX_PATH<a class="headerlink" href="#cmake-prefix-path" title="Link to this heading">ïƒ</a></h2> +<p>This variable makes the prerequisites available to <strong>openPASS</strong> as semicolon-separated list of directories, +specifying installation prefixes to be searched by cmake. +Please refer to <a class="reference internal" href="../20_install_prerequisites.html#prerequisites"><span class="std std-ref">Installing Prerequisites</span></a> for the list of mandatory packages and libraries. +CMake will issue an error, if one prerequisite is missing.</p> +<p>Generally, cmake recognizes installed libraries (e.g. googletest) on its own. +By setting an explicit <code class="docutils literal notranslate"><span class="pre">CMAKE_PREFIX_PATH</span></code> for a library, it is possible to override the system libraries. +Use this, when an exact library version, or a customized library shall be used.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>In the following example, non-standard libraries are assumed to be in the folder <code class="docutils literal notranslate"><span class="pre">deps/thirdParty</span></code>.</p> +</div> +<p><strong>Example</strong> (system libraries <strong>not</strong> set):</p> +<div class="sphinx-tabs docutils container"> +<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake<span class="w"> </span>-G<span class="w"> </span><span class="s2">"MSYS Makefiles"</span> +<span class="w"> </span>-D<span class="w"> </span><span class="nv">CMAKE_PREFIX_PATH</span><span class="o">=</span><span class="s2">"\</span> +<span class="s2"> /mingw64/bin;\</span> +<span class="s2"> </span><span class="nv">$PWD</span><span class="s2">/../deps/thirdParty/win64/FMILibrary;\</span> +<span class="s2"> </span><span class="nv">$PWD</span><span class="s2">/../deps/thirdParty/win64/osi;\</span> +<span class="s2"> </span><span class="nv">$PWD</span><span class="s2">/../deps/thirdParty/win64/minizip;\</span> +<span class="s2"> -D <other variables>\</span> +<span class="s2"> ..</span> +</pre></div> +</div> +</div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake<span class="w"> </span>-D<span class="w"> </span><span class="nv">CMAKE_PREFIX_PATH</span><span class="o">=</span><span class="se">\</span> +<span class="w"> </span><span class="nv">$PWD</span>/../deps/thirdParty/linux64/FMILibrary<span class="se">\;\</span> +<span class="w"> </span><span class="nv">$PWD</span>/../deps/thirdParty/linux64/osi<span class="se">\;\</span> +<span class="w"> </span><span class="nv">$PWD</span>/../deps/thirdParty/linux64/minizip<span class="se">\;\</span> +<span class="w"> </span>-D<span class="w"> </span><other<span class="w"> </span>variables><span class="w"> </span><span class="se">\</span> +<span class="w"> </span>.. +</pre></div> +</div> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>The semicolon <code class="docutils literal notranslate"><span class="pre">;</span></code> needs to be escaped (<code class="docutils literal notranslate"><span class="pre">\;</span></code>) unless the string is quoted.</p> +</div> +</div></div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Please also read through <a class="reference internal" href="#cmake-openpass-variables"><span class="std std-ref">USE_CCACHE</span></a> for further useful hints, e.g. why explicitly setting the MinGW path might be a necessary in some situations.</p> +</div> +<p>Installation directory</p> +</section> +<section id="cmake-install-prefix"> +<h2>CMAKE_INSTALL_PREFIX<a class="headerlink" href="#cmake-install-prefix" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Install directory used by install, when invoking <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code></p></li> +<li><p>Recommendation: <code class="docutils literal notranslate"><span class="pre">/openPASS/bin/core</span></code> (Linux) | <code class="docutils literal notranslate"><span class="pre">C:/openPASS/bin/core</span></code> (Windows)</p></li> +</ul> +</section> +<section id="cmake-with-debug-postix"> +<h2>CMAKE_WITH_DEBUG_POSTIX<a class="headerlink" href="#cmake-with-debug-postix" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Used only in conjunction with <em>Visual Studio Debug Builds</em> (MSVC), as it distinguishes release/debug DLLs by a postfix <code class="docutils literal notranslate"><span class="pre">d</span></code>.</p></li> +<li><p>Options: <strong>OFF</strong> | ON</p></li> +</ul> +</section> +<section id="cmake-build-type"> +<h2>CMAKE_BUILD_TYPE<a class="headerlink" href="#cmake-build-type" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Specifies the build type on single-configuration generators.</p></li> +<li><p>Typical: Release | Debug</p></li> +<li><p>See: <a class="reference external" href="https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html">https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html</a></p></li> +</ul> +</section> +<section id="cmake-c-compiler"> +<h2>CMAKE_C_COMPILER<a class="headerlink" href="#cmake-c-compiler" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Options: <strong>gcc-13</strong> | gcc-12 | gcc-11 | gcc-10 | gcc-9</p></li> +<li><p>See: <a class="reference external" href="https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html">https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html</a></p></li> +</ul> +</section> +<section id="cmake-cxx-compiler"> +<h2>CMAKE_CXX_COMPILER<a class="headerlink" href="#cmake-cxx-compiler" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Options: <strong>gcc-13</strong> | gcc-12 | gcc-11 | gcc-10 | gcc-9</p></li> +<li><p>See: <a class="reference external" href="https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html">https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html</a></p></li> +</ul> +</section> +<section id="cmake-object-path-max"> +<h2>CMAKE_OBJECT_PATH_MAX<a class="headerlink" href="#cmake-object-path-max" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Under windows, errors from too long paths could be prevented by setting this value to 255 (maximum).</p></li> +<li><p>See: <a class="reference external" href="https://cmake.org/cmake/help/latest/variable/CMAKE_OBJECT_PATH_MAX.html">https://cmake.org/cmake/help/latest/variable/CMAKE_OBJECT_PATH_MAX.html</a></p></li> +</ul> +</section> +<section id="use-ccache"> +<span id="cmake-openpass-variables"></span><h2>USE_CCACHE<a class="headerlink" href="#use-ccache" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Activates ccache (see <a class="reference internal" href="../../other_information/10_external_dependencies.html#prerequisites-ccache"><span class="std std-ref">Ccache</span></a>)</p></li> +<li><p>Options: <strong>ON</strong> | OFF</p></li> +</ul> +</section> +<section id="with-simcore"> +<h2>WITH_SIMCORE<a class="headerlink" href="#with-simcore" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Build OSI based scenario simulation, also know as openPASS simulation core (opSimulation).</p></li> +<li><p>Options: OFF | <strong>ON</strong></p></li> +</ul> +</section> +<section id="with-doc"> +<h2>WITH_DOC<a class="headerlink" href="#with-doc" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Build sphinx based documentation</p></li> +<li><p>Options: OFF | <strong>ON</strong></p></li> +</ul> +</section> +<section id="with-api-doc"> +<h2>WITH_API_DOC<a class="headerlink" href="#with-api-doc" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Build sphinx based developer documentation</p></li> +<li><p>Options: <strong>OFF</strong> | ON</p></li> +</ul> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Automatically activates <code class="docutils literal notranslate"><span class="pre">WITH_DOC</span></code> if ON</p> +</div> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>Building the API doc takes pretty long.</p> +</div> +</section> +<section id="with-tests"> +<h2>WITH_TESTS<a class="headerlink" href="#with-tests" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Build unit tests</p></li> +<li><p>Options: OFF | <strong>ON</strong></p></li> +</ul> +</section> +<section id="with-coverage"> +<h2>WITH_COVERAGE<a class="headerlink" href="#with-coverage" title="Link to this heading">ïƒ</a></h2> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>This option turns off optimization, which might make execution considerably slower. +In exchange, a coverage <cite><test_name>.info`</cite> and HTML reports will be generated in a folder called <code class="docutils literal notranslate"><span class="pre">coverage</span></code> within the cmake build folder.</p> +</div> +<ul> +<li><p>For each registered test target (see <code class="docutils literal notranslate"><span class="pre">add_openpass_target</span></code> in <code class="docutils literal notranslate"><span class="pre">./cmake/HelperMacros.cmake</span></code>) two more targets are added. +One for code coverage analysis using <code class="docutils literal notranslate"><span class="pre">lcov</span></code> (target <code class="docutils literal notranslate"><span class="pre"><test_name>_coverage</span></code>). +A second for HTML report generation using <code class="docutils literal notranslate"><span class="pre">genhtml</span></code> (target <code class="docutils literal notranslate"><span class="pre"><test_name>_html</span></code>).</p></li> +<li><p>In addition to the individual tests, an overall test target <code class="docutils literal notranslate"><span class="pre">TestCoverageReport</span></code> is created. +When invoked, it will execute all individual tests and combine their coverage data into a single report found in <code class="docutils literal notranslate"><span class="pre">coverage/TestCoverageReport</span></code>.</p></li> +<li><p>Options: <strong>OFF</strong> | ON</p></li> +<li><p>Requires:</p> +<ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">WITH_TESTS=ON</span></code></p></li> +<li><p>gcov, lcov, fastcov (python)</p></li> +</ul> +</li> +<li><p>Parameterization:</p> +<ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">COVERAGE_EXCLUDES</span></code> allows to remove source files from report (substring matching), i.e. <code class="docutils literal notranslate"><span class="pre">/usr/include</span></code>.</p></li> +<li><p>Multiple paths have to be separated by spaces.</p></li> +<li><p>Paths specified through <code class="docutils literal notranslate"><span class="pre">CMAKE_PREFIX_PATH</span></code> and <code class="docutils literal notranslate"><span class="pre">tests/</span></code> are filtered by default.</p></li> +</ul> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>Excluding too many paths or files may lead to an empty <code class="docutils literal notranslate"><span class="pre"><test_name>.info</span></code> file, causing the HTML target to fail.</p> +</div> +</li> +</ul> +</section> +<section id="with-endtoend-tests"> +<h2>WITH_ENDTOEND_TESTS<a class="headerlink" href="#with-endtoend-tests" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Enables execution of end to end tests using <a class="reference internal" href="../../advanced_topics/30_testing.html#testing-endtoend"><span class="std std-ref">EndToEnd Test Framework</span></a>.</p></li> +<li><p>Tests can be ran by executing <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span> <span class="pre">&&</span> <span class="pre">make</span> <span class="pre">pyOpenPASS</span></code></p></li> +<li><p>Options: <strong>OFF</strong> | ON</p></li> +</ul> +</section> +<section id="openpass-adjust-output"> +<h2>OPENPASS_ADJUST_OUTPUT<a class="headerlink" href="#openpass-adjust-output" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Adjusts if builds are executed in the (CMake default) folder <code class="docutils literal notranslate"><span class="pre">build</span></code> or directly in the specified install directory. +Latter let you skip the call <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>.</p></li> +<li><p>Options: <strong>OFF</strong> | ON</p></li> +</ul> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>When skipping <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>, dependencies are not copied into the output folder, which could cause crashes due to missing or outdated libraries.</p> +</div> +</section> +<section id="with-protobuf-arena"> +<span id="cmake-protobuf-arenas"></span><h2>WITH_PROTOBUF_ARENA<a class="headerlink" href="#with-protobuf-arena" title="Link to this heading">ïƒ</a></h2> +<ul> +<li><div class="line-block"> +<div class="line"><em>Arena allocation is a C++-only feature that helps you optimize your memory usage and improve performance when working with protocol buffers.</em></div> +<div class="line">(from <a class="reference external" href="https://developers.google.com/protocol-buffers/docs/reference/arenas">https://developers.google.com/protocol-buffers/docs/reference/arenas</a>)</div> +</div> +</li> +<li><p>Options: <strong>ON</strong> | OFF</p></li> +</ul> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>This feature is only available, if protobuf related libraries are also compiled with arenas. +Fortunately, the implementation falls back to regular allocation if not, which simply results in less performance.</p> +</div> +</section> +<section id="install-system-runtime-deps"> +<h2>INSTALL_SYSTEM_RUNTIME_DEPS<a class="headerlink" href="#install-system-runtime-deps" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>during installation step, this configuration copies detected system runtime dependencies to install directory (i.e. MinGW system libraries)</p></li> +<li><p>Options: ON | <strong>OFF</strong></p></li> +</ul> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>Under windows, automatic resolution might fail if other MinGW instances are installed. +As several programs use MinGW under the hood, it is recommended to set the used MinGW path in the CMAKE_PREFIX_PATH explicitly:</p> +<blockquote> +<div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">CMAKE_PREFIX_PATH</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>mingw64/bin<span class="p">;</span><span class="se">\.</span>.. +</pre></div> +</div> +</div></blockquote> +</div> +</section> +<section id="install-extra-runtime-deps"> +<h2>INSTALL_EXTRA_RUNTIME_DEPS<a class="headerlink" href="#install-extra-runtime-deps" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>during installation step, this configuration copies detected runtime dependencies (i.e. required shared libraries) specified in <cite>CMAKE_PREFIX_PATH</cite> to install directory</p></li> +<li><p>Options: ON | <strong>OFF</strong></p></li> +</ul> +</section> +<section id="install-examples"> +<h2>INSTALL_EXAMPLES<a class="headerlink" href="#install-examples" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>If <cite>ON</cite>, <strong>opSimulation</strong> configuration examples are copied to the <cite>examples</cite> folder inside the installation directory (during the installation step).</p></li> +<li><p>Options: <strong>ON</strong> | OFF</p></li> +</ul> +</section> +<section id="make-targets-commands"> +<h2>Make Targets/Commands<a class="headerlink" href="#make-targets-commands" title="Link to this heading">ïƒ</a></h2> +<p><strong>openPASS</strong> defines build targets by major modules or components, such as <code class="docutils literal notranslate"><span class="pre">opSimulation</span></code> or <code class="docutils literal notranslate"><span class="pre">Algorithm_FmuWrapper</span></code>. +After calling CMake, simply build <strong>openPASS</strong> by calling <code class="docutils literal notranslate"><span class="pre">make</span></code>.</p> +<div class="admonition-see-also admonition"> +<p class="admonition-title">See also</p> +<p><a class="reference external" href="https://www.tutorialspoint.com/unix_commands/make.htm">https://www.tutorialspoint.com/unix_commands/make.htm</a></p> +</div> +<section id="build-and-install"> +<h3>Build and Install<a class="headerlink" href="#build-and-install" title="Link to this heading">ïƒ</a></h3> +<ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">make</span></code></p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code></p> +</li> +<li><p><code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre"><target></span></code>: Build a single target</p></li> +</ul> +</section> +<section id="executing-tests"> +<h3>Executing Tests<a class="headerlink" href="#executing-tests" title="Link to this heading">ïƒ</a></h3> +<ul class="simple"> +<li><p>All tests: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span> <span class="pre">ARGS="--output-on-failure</span> <span class="pre">-j3"</span></code></p></li> +<li><p>Single test: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span> <span class="pre">opSimulation_Tests</span> <span class="pre">ARGS="--output-on-failure</span> <span class="pre">-j3"</span></code></p></li> +</ul> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../50_further_guidance.html" class="btn btn-neutral float-left" title="Further Guidance" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../60_conan.html" class="btn btn-neutral float-right" title="Building with Conan" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/objects.inv b/content/html/objects.inv index bf03167d0831210bf84f8b3634a25ac98a55f088..6d5cef5d8902c5d4cabccfbd3245574c7a8590a9 100644 Binary files a/content/html/objects.inv and b/content/html/objects.inv differ diff --git a/content/html/other_information/10_external_dependencies.html b/content/html/other_information/10_external_dependencies.html index ad2c999a1b6f06d65768cde65068eb091f631b11..bf42cb21845611265c3284164e4d8cbb60a4a406 100644 --- a/content/html/other_information/10_external_dependencies.html +++ b/content/html/other_information/10_external_dependencies.html @@ -1,306 +1,294 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>External Dependencies — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="Glossary" href="20_glossary.html" /> - <link rel="prev" title="Coding Guidelines" href="../developer_information/30_coding_conventions.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="current reference internal" href="#">External Dependencies</a><ul> -<li class="toctree-l2"><a class="reference internal" href="#information-on-binary-packages">Information on Binary Packages</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#gnu-compiler-collection-gcc">GNU Compiler Collection (gcc)</a></li> -<li class="toctree-l3"><a class="reference internal" href="#gnu-debugger-gdb">GNU Debugger (gdb)</a></li> -<li class="toctree-l3"><a class="reference internal" href="#cmake">CMake</a></li> -<li class="toctree-l3"><a class="reference internal" href="#ccache">Ccache</a></li> -<li class="toctree-l3"><a class="reference internal" href="#doxygen">Doxygen</a></li> -<li class="toctree-l3"><a class="reference internal" href="#qt-framework">Qt Framework</a></li> -<li class="toctree-l3"><a class="reference internal" href="#boost-c-libraries">Boost C++ Libraries</a></li> -<li class="toctree-l3"><a class="reference internal" href="#googletest">googletest</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="#information-on-source-packages">Information on Source Packages</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#open-simulation-interface-osi">Open Simulation Interface (OSI)</a></li> -<li class="toctree-l3"><a class="reference internal" href="#protocol-buffers-protobuf">Protocol Buffers (protobuf)</a></li> -<li class="toctree-l3"><a class="reference internal" href="#modelon-fmi-library-fmil">Modelon FMI Library (FMIL)</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">External Dependencies</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/other_information/10_external_dependencies.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="external-dependencies"> -<h1>External Dependencies<a class="headerlink" href="#external-dependencies" title="Link to this heading">ïƒ</a></h1> -<p><strong>openPASS</strong> depends on a number of external dependencies. Installation of those dependencies is described in <a class="reference internal" href="../installation_guide/20_install_prerequisites.html#prerequisites"><span class="std std-ref">Installing Prerequisites</span></a>.</p> -<p>The third party software dependency of <strong>openPASS</strong> can be divided into:</p> -<ul class="simple"> -<li><p><strong>Build environment</strong>, which manages third party software and is used to compile and install <strong>openPASS</strong></p></li> -<li><p><strong>Binary packages</strong>, which can be easily installed via a package manager of the respective build environment</p></li> -<li><p><strong>Source packages</strong>, which need to be built from source code</p></li> -</ul> -<p>This section gives an overview of the dependencies and how they are used.</p> -<section id="information-on-binary-packages"> -<h2>Information on Binary Packages<a class="headerlink" href="#information-on-binary-packages" title="Link to this heading">ïƒ</a></h2> -<section id="gnu-compiler-collection-gcc"> -<h3>GNU Compiler Collection (gcc)<a class="headerlink" href="#gnu-compiler-collection-gcc" title="Link to this heading">ïƒ</a></h3> -<p>Version (latest tested): 13.2.0</p> -<p><strong>openPASS</strong> is developed on Linux and Windows (64-Bit) in <a class="reference external" href="https://isocpp.org/">C++17</a> using the GNU Compiler Collection (<a class="reference external" href="https://gcc.gnu.org/">gcc</a>).</p> -<div class="admonition-useful-hints admonition"> -<p class="admonition-title">Useful hints</p> -<ul> -<li><div class="line-block"> -<div class="line"><strong>openPASS</strong> has been developed using gcc 7.x, 8.x, 9.x, and more recently gcc 10.x. -| There are no known issues regarding the different versions.</div> -</div> -</li> -<li><p>Since no compiler specific features are used, the source should also compile with <a class="reference external" href="https://clang.llvm.org/">clang</a>.</p></li> -<li><p>Generally, there is support for <a class="reference external" href="https://docs.microsoft.com/en-us/cpp/build/reference/c-cpp-building-reference">MSVC</a> , but currently not actively maintained by the <strong>openPASS</strong> Working Group.</p></li> -</ul> -</div> -</section> -<section id="gnu-debugger-gdb"> -<h3>GNU Debugger (gdb)<a class="headerlink" href="#gnu-debugger-gdb" title="Link to this heading">ïƒ</a></h3> -<p>Version (latest tested): 13.2.0</p> -<p>Debugging tools for gcc: <a class="reference external" href="https://www.gnu.org/savannah-checkouts/gnu/gdb/index.html">https://www.gnu.org/savannah-checkouts/gnu/gdb/index.html</a></p> -</section> -<section id="cmake"> -<h3>CMake<a class="headerlink" href="#cmake" title="Link to this heading">ïƒ</a></h3> -<p>Version (latest tested): 3.27.3</p> -<p><strong>openPASS</strong> uses <a class="reference external" href="https://cmake.org/">CMake</a> for building and testing. -For details on the provided options, see <a class="reference internal" href="../installation_guide/further_guidance/10_cmake.html#cmake"><span class="std std-ref">CMake Variables and Options</span></a>.</p> -</section> -<section id="ccache"> -<span id="prerequisites-ccache"></span><h3>Ccache<a class="headerlink" href="#ccache" title="Link to this heading">ïƒ</a></h3> -<p>Version (latest tested): 4.7.4</p> -<p><strong>openPASS</strong> supports the compiler cache <a class="reference external" href="https://ccache.dev/">Ccache</a> for faster recompilation. -Use only, if you need to recompile regularly.</p> -<div class="admonition-useful-hints admonition"> -<p class="admonition-title">Useful hints</p> -<ul class="simple"> -<li><p>The first compilation is definilty slower (e.g. by 30%), as the cache needs to be built.</p></li> -<li><p>If used regularily, increasing the cache size is recommended, e.g.: <code class="docutils literal notranslate"><span class="pre">ccache</span> <span class="pre">-M</span> <span class="pre">20G</span></code></p></li> -</ul> -</div> -</section> -<section id="doxygen"> -<h3>Doxygen<a class="headerlink" href="#doxygen" title="Link to this heading">ïƒ</a></h3> -<p>Version (latest tested): 1.9.6</p> -<p>Documentation is created using <a class="reference external" href="https://www.doxygen.nl/index.html">Doxygen</a>.</p> -<div class="admonition-useful-hints admonition"> -<p class="admonition-title">Useful hints</p> -<ul class="simple"> -<li><dl class="simple"> -<dt>Doxygen introduced support for Markdown with 1.8, which is still in use.</dt><dd><p>Don’t use older versions.</p> -</dd> -</dl> -</li> -</ul> -</div> -</section> -<section id="qt-framework"> -<h3>Qt Framework<a class="headerlink" href="#qt-framework" title="Link to this heading">ïƒ</a></h3> -<p>Version (officially supported): 5.15.3</p> -<p><strong>openPASS</strong> uses some features from the <a class="reference external" href="https://www.qt.io/">Qt</a> framework. -A previous version of the GUI of <strong>openPASS</strong> relied on Qt. <strong>openPASS</strong> itself tries to stick to the C++ standard framework as far as possible, but still uses the Qt framework for some tasks, e.g. xml parsing.</p> -<div class="admonition-note-on-versions admonition"> -<p class="admonition-title">Note on Versions</p> -<div class="line-block"> -<div class="line">Versions starting from 5.4 should generally work, but are not officially supported anymore/yet.</div> -</div> -</div> -</section> -<section id="boost-c-libraries"> -<h3>Boost C++ Libraries<a class="headerlink" href="#boost-c-libraries" title="Link to this heading">ïƒ</a></h3> -<p>Version (officially supported): 1.72.0</p> -<p>Especially for geometrical calculations, <strong>openPASS</strong> uses parts of the <a class="reference external" href="https://www.boost.org/">Boost C++ Libraries</a>.</p> -<div class="admonition-note-on-versions admonition"> -<p class="admonition-title">Note on Versions</p> -<p>More recent versions should integrate without issues, but 1.74.0 already raise warnings for some deprecated headers.</p> -</div> -</section> -<section id="googletest"> -<h3>googletest<a class="headerlink" href="#googletest" title="Link to this heading">ïƒ</a></h3> -<p>Version (officially supported): 1.14.0</p> -<p>Tests are written in <a class="reference external" href="https://github.com/google/googletest">googletest</a> and <strong>openPASS</strong> makes use of the included <em>googletest</em> (gtest) C++ testing framework, as well as the included mocking framework <em>googlemock</em> (gmock).</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The lastest major release brought several API changes, which made some code fixes necessary. -Use newer versions with precaution.</p> -</div> -</section> -</section> -<section id="information-on-source-packages"> -<h2>Information on Source Packages<a class="headerlink" href="#information-on-source-packages" title="Link to this heading">ïƒ</a></h2> -<p>The second and last set of dependencies we need to dissolve are based on source packages. -Since installing such source packages is not easy, we have dedicated a separate chapter on this topic. -See <a class="reference internal" href="../installation_guide/20_install_prerequisites.html#building-prerequisites"><span class="std std-ref">Installing the Dependencies</span></a> for a step-by-step instruction on how to download, build and install needed source packages.</p> -<p>Details on source packages:</p> -<section id="open-simulation-interface-osi"> -<span id="prerequisites-osi"></span><h3>Open Simulation Interface (OSI)<a class="headerlink" href="#open-simulation-interface-osi" title="Link to this heading">ïƒ</a></h3> -<p>Version (officially supported): 3.6.0</p> -<p>The internal world representation uses the <a class="reference external" href="https://github.com/OpenSimulationInterface">Open Simulation Interface</a> (<a class="reference internal" href="20_glossary.html#term-OSI"><span class="xref std std-term">OSI</span></a>) as part of its ground truth (backend storage) and exchange format.</p> -<figure class="align-default" id="id6"> -<img alt="../_images/osi_in_openpass.png" src="../_images/osi_in_openpass.png" /> -<figcaption> -<p><span class="caption-text">OSI in <strong>openPASS</strong></span><a class="headerlink" href="#id6" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>Interaction between World and consumers of OSI messages.</p> -<p>Thereby, OSI provides data structures for representation of various objects in traffic simulation environments. -Note that OSI is primarily developed in a sensor centric view, such as lane markings and object boundaries. -Beyond that, <strong>openPASS</strong> holds data for non-sensor centric data, such as metainfo on lanes and roads.</p> -<p>As shown, OSI itself depends on <a class="reference internal" href="#prerequisites-protobuf"><span class="std std-ref">Protocol Buffers (protobuf)</span></a>. -If not already installed, the library and headers have to be built prior to OSI.</p> -</section> -<section id="protocol-buffers-protobuf"> -<span id="prerequisites-protobuf"></span><h3>Protocol Buffers (protobuf)<a class="headerlink" href="#protocol-buffers-protobuf" title="Link to this heading">ïƒ</a></h3> -<p>Supported Version (officially supported): 3.20.0</p> -<p><a class="reference internal" href="#prerequisites-osi"><span class="std std-ref">Open Simulation Interface (OSI)</span></a> uses <a class="reference external" href="https://developers.google.com/protocol-buffers">Protocol Buffers</a> for describing and serialization of its datastructures.</p> -<div class="admonition-note-on-versions admonition"> -<p class="admonition-title">Note on Versions</p> -<ul class="simple"> -<li><p>So far, no version limitations known (including 2.x).</p></li> -<li><p><strong>openPASS</strong> lets you integrate your own protobuf libraries if necessary.</p></li> -</ul> -</div> -</section> -<section id="modelon-fmi-library-fmil"> -<h3>Modelon FMI Library (FMIL)<a class="headerlink" href="#modelon-fmi-library-fmil" title="Link to this heading">ïƒ</a></h3> -<p>Supported Version: 2.0.3</p> -<p>For integration of Functional Mock-up Units (FMUs) the <cite>Algorithm_FmuWrapper</cite> uses the <a class="reference external" href="https://github.com/modelon-community/fmi-library">Modelon FMI Library</a>. -As there is no binary available, FMIL needs to be build from scratch before <strong>openPASS</strong> can be compiled.</p> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../developer_information/30_coding_conventions.html" class="btn btn-neutral float-left" title="Coding Guidelines" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="20_glossary.html" class="btn btn-neutral float-right" title="Glossary" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>External Dependencies — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Glossary" href="20_glossary.html" /> + <link rel="prev" title="Coding Guidelines" href="../developer_information/30_coding_conventions.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="current reference internal" href="#">External Dependencies</a><ul> +<li class="toctree-l2"><a class="reference internal" href="#information-on-binary-packages">Information on Binary Packages</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#gnu-compiler-collection-gcc">GNU Compiler Collection (gcc)</a></li> +<li class="toctree-l3"><a class="reference internal" href="#gnu-debugger-gdb">GNU Debugger (gdb)</a></li> +<li class="toctree-l3"><a class="reference internal" href="#cmake">CMake</a></li> +<li class="toctree-l3"><a class="reference internal" href="#ccache">Ccache</a></li> +<li class="toctree-l3"><a class="reference internal" href="#doxygen">Doxygen</a></li> +<li class="toctree-l3"><a class="reference internal" href="#boost-c-libraries">Boost C++ Libraries</a></li> +<li class="toctree-l3"><a class="reference internal" href="#googletest">googletest</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="#information-on-source-packages">Information on Source Packages</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#open-simulation-interface-osi">Open Simulation Interface (OSI)</a></li> +<li class="toctree-l3"><a class="reference internal" href="#protocol-buffers-protobuf">Protocol Buffers (protobuf)</a></li> +<li class="toctree-l3"><a class="reference internal" href="#modelon-fmi-library-fmil">Modelon FMI Library (FMIL)</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">External Dependencies</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/other_information/10_external_dependencies.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="external-dependencies"> +<h1>External Dependencies<a class="headerlink" href="#external-dependencies" title="Link to this heading">ïƒ</a></h1> +<p><strong>openPASS</strong> depends on a number of external dependencies. Installation of those dependencies is described in <a class="reference internal" href="../installation_guide/20_install_prerequisites.html#prerequisites"><span class="std std-ref">Installing Prerequisites</span></a>.</p> +<p>The third party software dependency of <strong>openPASS</strong> can be divided into:</p> +<ul class="simple"> +<li><p><strong>Build environment</strong>, which manages third party software and is used to compile and install <strong>openPASS</strong></p></li> +<li><p><strong>Binary packages</strong>, which can be easily installed via a package manager of the respective build environment</p></li> +<li><p><strong>Source packages</strong>, which need to be built from source code</p></li> +</ul> +<p>This section gives an overview of the dependencies and how they are used.</p> +<section id="information-on-binary-packages"> +<h2>Information on Binary Packages<a class="headerlink" href="#information-on-binary-packages" title="Link to this heading">ïƒ</a></h2> +<section id="gnu-compiler-collection-gcc"> +<h3>GNU Compiler Collection (gcc)<a class="headerlink" href="#gnu-compiler-collection-gcc" title="Link to this heading">ïƒ</a></h3> +<p>Version (latest tested): 13.2.0</p> +<p><strong>openPASS</strong> is developed on Linux and Windows (64-Bit) in <a class="reference external" href="https://isocpp.org/">C++17</a> using the GNU Compiler Collection (<a class="reference external" href="https://gcc.gnu.org/">gcc</a>).</p> +<div class="admonition-useful-hints admonition"> +<p class="admonition-title">Useful hints</p> +<ul> +<li><div class="line-block"> +<div class="line"><strong>openPASS</strong> has been developed using gcc 7.x, 8.x, 9.x, and more recently gcc 10.x. +| There are no known issues regarding the different versions.</div> +</div> +</li> +<li><p>Since no compiler specific features are used, the source should also compile with <a class="reference external" href="https://clang.llvm.org/">clang</a>.</p></li> +<li><p>Generally, there is support for <a class="reference external" href="https://docs.microsoft.com/en-us/cpp/build/reference/c-cpp-building-reference">MSVC</a> , but currently not actively maintained by the <strong>openPASS</strong> Working Group.</p></li> +</ul> +</div> +</section> +<section id="gnu-debugger-gdb"> +<h3>GNU Debugger (gdb)<a class="headerlink" href="#gnu-debugger-gdb" title="Link to this heading">ïƒ</a></h3> +<p>Version (latest tested): 13.2.0</p> +<p>Debugging tools for gcc: <a class="reference external" href="https://www.gnu.org/savannah-checkouts/gnu/gdb/index.html">https://www.gnu.org/savannah-checkouts/gnu/gdb/index.html</a></p> +</section> +<section id="cmake"> +<h3>CMake<a class="headerlink" href="#cmake" title="Link to this heading">ïƒ</a></h3> +<p>Version (latest tested): 3.27.3</p> +<p><strong>openPASS</strong> uses <a class="reference external" href="https://cmake.org/">CMake</a> for building and testing. +For details on the provided options, see <a class="reference internal" href="../installation_guide/further_guidance/10_cmake.html#cmake"><span class="std std-ref">CMake Variables and Options</span></a>.</p> +</section> +<section id="ccache"> +<span id="prerequisites-ccache"></span><h3>Ccache<a class="headerlink" href="#ccache" title="Link to this heading">ïƒ</a></h3> +<p>Version (latest tested): 4.7.4</p> +<p><strong>openPASS</strong> supports the compiler cache <a class="reference external" href="https://ccache.dev/">Ccache</a> for faster recompilation. +Use only, if you need to recompile regularly.</p> +<div class="admonition-useful-hints admonition"> +<p class="admonition-title">Useful hints</p> +<ul class="simple"> +<li><p>The first compilation is definilty slower (e.g. by 30%), as the cache needs to be built.</p></li> +<li><p>If used regularily, increasing the cache size is recommended, e.g.: <code class="docutils literal notranslate"><span class="pre">ccache</span> <span class="pre">-M</span> <span class="pre">20G</span></code></p></li> +</ul> +</div> +</section> +<section id="doxygen"> +<h3>Doxygen<a class="headerlink" href="#doxygen" title="Link to this heading">ïƒ</a></h3> +<p>Version (latest tested): 1.9.6</p> +<p>Documentation is created using <a class="reference external" href="https://www.doxygen.nl/index.html">Doxygen</a>.</p> +<div class="admonition-useful-hints admonition"> +<p class="admonition-title">Useful hints</p> +<ul class="simple"> +<li><dl class="simple"> +<dt>Doxygen introduced support for Markdown with 1.8, which is still in use.</dt><dd><p>Don’t use older versions.</p> +</dd> +</dl> +</li> +</ul> +</div> +</section> +<section id="boost-c-libraries"> +<h3>Boost C++ Libraries<a class="headerlink" href="#boost-c-libraries" title="Link to this heading">ïƒ</a></h3> +<p>Version (officially supported): 1.72.0</p> +<p>Especially for geometrical calculations, <strong>openPASS</strong> uses parts of the <a class="reference external" href="https://www.boost.org/">Boost C++ Libraries</a>.</p> +<div class="admonition-note-on-versions admonition"> +<p class="admonition-title">Note on Versions</p> +<p>More recent versions should integrate without issues, but 1.74.0 already raise warnings for some deprecated headers.</p> +</div> +</section> +<section id="googletest"> +<h3>googletest<a class="headerlink" href="#googletest" title="Link to this heading">ïƒ</a></h3> +<p>Version (officially supported): 1.14.0</p> +<p>Tests are written in <a class="reference external" href="https://github.com/google/googletest">googletest</a> and <strong>openPASS</strong> makes use of the included <em>googletest</em> (gtest) C++ testing framework, as well as the included mocking framework <em>googlemock</em> (gmock).</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The lastest major release brought several API changes, which made some code fixes necessary. +Use newer versions with precaution.</p> +</div> +</section> +</section> +<section id="information-on-source-packages"> +<h2>Information on Source Packages<a class="headerlink" href="#information-on-source-packages" title="Link to this heading">ïƒ</a></h2> +<p>The second and last set of dependencies we need to dissolve are based on source packages. +Since installing such source packages is not easy, we have dedicated a separate chapter on this topic. +See <a class="reference internal" href="../installation_guide/20_install_prerequisites.html#building-prerequisites"><span class="std std-ref">Installing the Dependencies</span></a> for a step-by-step instruction on how to download, build and install needed source packages.</p> +<p>Details on source packages:</p> +<section id="open-simulation-interface-osi"> +<span id="prerequisites-osi"></span><h3>Open Simulation Interface (OSI)<a class="headerlink" href="#open-simulation-interface-osi" title="Link to this heading">ïƒ</a></h3> +<p>Version (officially supported): 3.6.0</p> +<p>The internal world representation uses the <a class="reference external" href="https://github.com/OpenSimulationInterface">Open Simulation Interface</a> (<a class="reference internal" href="20_glossary.html#term-OSI"><span class="xref std std-term">OSI</span></a>) as part of its ground truth (backend storage) and exchange format.</p> +<figure class="align-default" id="id6"> +<img alt="../_images/osi_in_openpass.png" src="../_images/osi_in_openpass.png" /> +<figcaption> +<p><span class="caption-text">OSI in <strong>openPASS</strong></span><a class="headerlink" href="#id6" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>Interaction between World and consumers of OSI messages.</p> +<p>Thereby, OSI provides data structures for representation of various objects in traffic simulation environments. +Note that OSI is primarily developed in a sensor centric view, such as lane markings and object boundaries. +Beyond that, <strong>openPASS</strong> holds data for non-sensor centric data, such as metainfo on lanes and roads.</p> +<p>As shown, OSI itself depends on <a class="reference internal" href="#prerequisites-protobuf"><span class="std std-ref">Protocol Buffers (protobuf)</span></a>. +If not already installed, the library and headers have to be built prior to OSI.</p> +</section> +<section id="protocol-buffers-protobuf"> +<span id="prerequisites-protobuf"></span><h3>Protocol Buffers (protobuf)<a class="headerlink" href="#protocol-buffers-protobuf" title="Link to this heading">ïƒ</a></h3> +<p>Supported Version (officially supported): 3.20.0</p> +<p><a class="reference internal" href="#prerequisites-osi"><span class="std std-ref">Open Simulation Interface (OSI)</span></a> uses <a class="reference external" href="https://developers.google.com/protocol-buffers">Protocol Buffers</a> for describing and serialization of its datastructures.</p> +<div class="admonition-note-on-versions admonition"> +<p class="admonition-title">Note on Versions</p> +<ul class="simple"> +<li><p>So far, no version limitations known (including 2.x).</p></li> +<li><p><strong>openPASS</strong> lets you integrate your own protobuf libraries if necessary.</p></li> +</ul> +</div> +</section> +<section id="modelon-fmi-library-fmil"> +<h3>Modelon FMI Library (FMIL)<a class="headerlink" href="#modelon-fmi-library-fmil" title="Link to this heading">ïƒ</a></h3> +<p>Supported Version: 2.0.3</p> +<p>For integration of Functional Mock-up Units (FMUs) the <cite>Algorithm_FmuWrapper</cite> uses the <a class="reference external" href="https://github.com/modelon-community/fmi-library">Modelon FMI Library</a>. +As there is no binary available, FMIL needs to be build from scratch before <strong>openPASS</strong> can be compiled.</p> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../developer_information/30_coding_conventions.html" class="btn btn-neutral float-left" title="Coding Guidelines" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="20_glossary.html" class="btn btn-neutral float-right" title="Glossary" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/other_information/20_glossary.html b/content/html/other_information/20_glossary.html index 5d676a49a2bfec188e448ad7df444f4d9ecd9c14..c09cd0f224cbf7bda818d1d0d3c70976c531bc98 100644 --- a/content/html/other_information/20_glossary.html +++ b/content/html/other_information/20_glossary.html @@ -1,194 +1,195 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Glossary — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="GUI Plugins" href="30_gui_plugins.html" /> - <link rel="prev" title="External Dependencies" href="10_external_dependencies.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Glossary</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/other_information/20_glossary.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="glossary"> -<h1>Glossary<a class="headerlink" href="#glossary" title="Link to this heading">ïƒ</a></h1> -<dl class="simple glossary"> -<dt id="term-ADAS">ADAS<a class="headerlink" href="#term-ADAS" title="Link to this term">ïƒ</a></dt><dd><p>Advanced Driving Assistance Systems</p> -</dd> -<dt id="term-AEB">AEB<a class="headerlink" href="#term-AEB" title="Link to this term">ïƒ</a></dt><dd><p>Autonomous Emergency Brake -preventive emergency braking in danger (support or independent launch)</p> -</dd> -<dt id="term-Channel">Channel<a class="headerlink" href="#term-Channel" title="Link to this term">ïƒ</a></dt><dd><p>Connects components within an agent (using unique ID)</p> -</dd> -<dt id="term-Component">Component<a class="headerlink" href="#term-Component" title="Link to this term">ïƒ</a></dt><dd><p>A module that is part of an agent’s equipment</p> -</dd> -<dt id="term-COG">COG<a class="headerlink" href="#term-COG" title="Link to this term">ïƒ</a></dt><dd><p>Center of gravity</p> -</dd> -<dt id="term-Dynamics">Dynamics<a class="headerlink" href="#term-Dynamics" title="Link to this term">ïƒ</a></dt><dd><p>Calculation of dynamic parameters, e.g. position of Agent</p> -</dd> -<dt id="term-FMI">FMI<a class="headerlink" href="#term-FMI" title="Link to this term">ïƒ</a></dt><dd><p>Functional Mock-up Interface, see <a class="reference external" href="https://fmi-standard.org">https://fmi-standard.org</a></p> -</dd> -<dt id="term-FMU">FMU<a class="headerlink" href="#term-FMU" title="Link to this term">ïƒ</a></dt><dd><p>Functional Mock-up Unit, see <a class="reference external" href="https://fmi-standard.org">https://fmi-standard.org</a></p> -</dd> -<dt id="term-GIDAS">GIDAS<a class="headerlink" href="#term-GIDAS" title="Link to this term">ïƒ</a></dt><dd><p>German In-Depth Accident Study for in-depth traffic accident data collection, see <a class="reference external" href="https://www.gidas.org">https://www.gidas.org</a></p> -</dd> -<dt id="term-MinGW">MinGW<a class="headerlink" href="#term-MinGW" title="Link to this term">ïƒ</a></dt><dd><p>Complete Open Source programming tool set, suitable for the development of native MS-Windows applications.</p> -</dd> -<dt id="term-Model">Model<a class="headerlink" href="#term-Model" title="Link to this term">ïƒ</a></dt><dd><p>An abstract representation of a real object which might omit details e.g. ADAS, driving dynamics, pedestrian, environmental conditions. In the PreCASE framework, a model consists of one or more modules as well as channels connecting them.</p> -</dd> -<dt id="term-Module">Module<a class="headerlink" href="#term-Module" title="Link to this term">ïƒ</a></dt><dd><p>A dynamic library that is loaded and whose interface functions are called by the framework. Modules contain models or other individual functionality necessary for the simulation. Modules are exchangeable and can be fitted to various purposes ensuring ahigh flexibility of the framework.</p> -</dd> -<dt id="term-MSYS">MSYS<a class="headerlink" href="#term-MSYS" title="Link to this term">ïƒ</a></dt><dd><p>Collection of GNU utilities (e.g. bash, make, gcc) to allow building of programs which depend on traditionally UNIX tools to be present. It is intended to supplement <a class="reference internal" href="#term-MinGW"><span class="xref std std-term">MinGW</span></a>.</p> -</dd> -<dt id="term-MSYS2">MSYS2<a class="headerlink" href="#term-MSYS2" title="Link to this term">ïƒ</a></dt><dd><p>Independent rewrite of <a class="reference internal" href="#term-MSYS"><span class="xref std std-term">MSYS</span></a>, based on Cygwin (POSIX compatibility layer) and MinGW-w64.</p> -</dd> -<dt id="term-OD">OD<a class="headerlink" href="#term-OD" title="Link to this term">ïƒ</a></dt><dd><p>OpenDRIVE</p> -</dd> -<dt id="term-openPASS">openPASS<a class="headerlink" href="#term-openPASS" title="Link to this term">ïƒ</a></dt><dd><p>Open Platform for Assessment of Safety Systems</p> -</dd> -<dt id="term-OSI">OSI<a class="headerlink" href="#term-OSI" title="Link to this term">ïƒ</a></dt><dd><p>A generic interface for the environmental perception of automated driving functions in virtual scenarios. -See <a class="reference external" href="https://opensimulationinterface.github.io/osi-documentation">https://opensimulationinterface.github.io/osi-documentation</a></p> -</dd> -<dt id="term-PCM">PCM<a class="headerlink" href="#term-PCM" title="Link to this term">ïƒ</a></dt><dd><p>Pre-Crash Matrix is a specified format which can be used to describe the phase of a road traffic accident before the first collision happens (the so-called pre-crash phase). -See <a class="reference external" href="https://www.vufo.de/pcm/?lang=en">https://www.vufo.de/pcm/?lang=en</a></p> -</dd> -<dt id="term-PreCASE">PreCASE<a class="headerlink" href="#term-PreCASE" title="Link to this term">ïƒ</a></dt><dd><p>Framework for the Simulative Evaluation of Active Safety Systems in Vehicles (openPASS predecessor).</p> -</dd> -<dt id="term-Scenario">Scenario<a class="headerlink" href="#term-Scenario" title="Link to this term">ïƒ</a></dt><dd><p>A set of similar traffic situations.</p> -</dd> -<dt id="term-TTC">TTC<a class="headerlink" href="#term-TTC" title="Link to this term">ïƒ</a></dt><dd><p>Time to collision</p> -</dd> -</dl> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="10_external_dependencies.html" class="btn btn-neutral float-left" title="External Dependencies" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="30_gui_plugins.html" class="btn btn-neutral float-right" title="GUI Plugins" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Glossary — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="GUI Plugins" href="30_gui_plugins.html" /> + <link rel="prev" title="External Dependencies" href="10_external_dependencies.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Glossary</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/other_information/20_glossary.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="glossary"> +<h1>Glossary<a class="headerlink" href="#glossary" title="Link to this heading">ïƒ</a></h1> +<dl class="simple glossary"> +<dt id="term-ADAS">ADAS<a class="headerlink" href="#term-ADAS" title="Link to this term">ïƒ</a></dt><dd><p>Advanced Driving Assistance Systems</p> +</dd> +<dt id="term-AEB">AEB<a class="headerlink" href="#term-AEB" title="Link to this term">ïƒ</a></dt><dd><p>Autonomous Emergency Brake +preventive emergency braking in danger (support or independent launch)</p> +</dd> +<dt id="term-Channel">Channel<a class="headerlink" href="#term-Channel" title="Link to this term">ïƒ</a></dt><dd><p>Connects components within an agent (using unique ID)</p> +</dd> +<dt id="term-Component">Component<a class="headerlink" href="#term-Component" title="Link to this term">ïƒ</a></dt><dd><p>A module that is part of an agent’s equipment</p> +</dd> +<dt id="term-COG">COG<a class="headerlink" href="#term-COG" title="Link to this term">ïƒ</a></dt><dd><p>Center of gravity</p> +</dd> +<dt id="term-Dynamics">Dynamics<a class="headerlink" href="#term-Dynamics" title="Link to this term">ïƒ</a></dt><dd><p>Calculation of dynamic parameters, e.g. position of Agent</p> +</dd> +<dt id="term-FMI">FMI<a class="headerlink" href="#term-FMI" title="Link to this term">ïƒ</a></dt><dd><p>Functional Mock-up Interface, see <a class="reference external" href="https://fmi-standard.org">https://fmi-standard.org</a></p> +</dd> +<dt id="term-FMU">FMU<a class="headerlink" href="#term-FMU" title="Link to this term">ïƒ</a></dt><dd><p>Functional Mock-up Unit, see <a class="reference external" href="https://fmi-standard.org">https://fmi-standard.org</a></p> +</dd> +<dt id="term-GIDAS">GIDAS<a class="headerlink" href="#term-GIDAS" title="Link to this term">ïƒ</a></dt><dd><p>German In-Depth Accident Study for in-depth traffic accident data collection, see <a class="reference external" href="https://www.gidas.org">https://www.gidas.org</a></p> +</dd> +<dt id="term-MinGW">MinGW<a class="headerlink" href="#term-MinGW" title="Link to this term">ïƒ</a></dt><dd><p>Complete Open Source programming tool set, suitable for the development of native MS-Windows applications.</p> +</dd> +<dt id="term-Model">Model<a class="headerlink" href="#term-Model" title="Link to this term">ïƒ</a></dt><dd><p>An abstract representation of a real object which might omit details e.g. ADAS, driving dynamics, pedestrian, environmental conditions. In the PreCASE framework, a model consists of one or more modules as well as channels connecting them.</p> +</dd> +<dt id="term-Module">Module<a class="headerlink" href="#term-Module" title="Link to this term">ïƒ</a></dt><dd><p>A dynamic library that is loaded and whose interface functions are called by the framework. Modules contain models or other individual functionality necessary for the simulation. Modules are exchangeable and can be fitted to various purposes ensuring ahigh flexibility of the framework.</p> +</dd> +<dt id="term-MSYS">MSYS<a class="headerlink" href="#term-MSYS" title="Link to this term">ïƒ</a></dt><dd><p>Collection of GNU utilities (e.g. bash, make, gcc) to allow building of programs which depend on traditionally UNIX tools to be present. It is intended to supplement <a class="reference internal" href="#term-MinGW"><span class="xref std std-term">MinGW</span></a>.</p> +</dd> +<dt id="term-MSYS2">MSYS2<a class="headerlink" href="#term-MSYS2" title="Link to this term">ïƒ</a></dt><dd><p>Independent rewrite of <a class="reference internal" href="#term-MSYS"><span class="xref std std-term">MSYS</span></a>, based on Cygwin (POSIX compatibility layer) and MinGW-w64.</p> +</dd> +<dt id="term-OD">OD<a class="headerlink" href="#term-OD" title="Link to this term">ïƒ</a></dt><dd><p>OpenDRIVE</p> +</dd> +<dt id="term-openPASS">openPASS<a class="headerlink" href="#term-openPASS" title="Link to this term">ïƒ</a></dt><dd><p>Open Platform for Assessment of Safety Systems</p> +</dd> +<dt id="term-OSI">OSI<a class="headerlink" href="#term-OSI" title="Link to this term">ïƒ</a></dt><dd><p>A generic interface for the environmental perception of automated driving functions in virtual scenarios. +See <a class="reference external" href="https://opensimulationinterface.github.io/osi-documentation">https://opensimulationinterface.github.io/osi-documentation</a></p> +</dd> +<dt id="term-PCM">PCM<a class="headerlink" href="#term-PCM" title="Link to this term">ïƒ</a></dt><dd><p>Pre-Crash Matrix is a specified format which can be used to describe the phase of a road traffic accident before the first collision happens (the so-called pre-crash phase). +See <a class="reference external" href="https://www.vufo.de/pcm/?lang=en">https://www.vufo.de/pcm/?lang=en</a></p> +</dd> +<dt id="term-PreCASE">PreCASE<a class="headerlink" href="#term-PreCASE" title="Link to this term">ïƒ</a></dt><dd><p>Framework for the Simulative Evaluation of Active Safety Systems in Vehicles (openPASS predecessor).</p> +</dd> +<dt id="term-Scenario">Scenario<a class="headerlink" href="#term-Scenario" title="Link to this term">ïƒ</a></dt><dd><p>A set of similar traffic situations.</p> +</dd> +<dt id="term-TTC">TTC<a class="headerlink" href="#term-TTC" title="Link to this term">ïƒ</a></dt><dd><p>Time to collision</p> +</dd> +</dl> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="10_external_dependencies.html" class="btn btn-neutral float-left" title="External Dependencies" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="30_gui_plugins.html" class="btn btn-neutral float-right" title="GUI Plugins" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/other_information/30_gui_plugins.html b/content/html/other_information/30_gui_plugins.html index c404a2388d6f2c7fafe7f89e5134f1f4c8b10952..293cba003cd00dca77f02b6352c4f627e8a50c57 100644 --- a/content/html/other_information/30_gui_plugins.html +++ b/content/html/other_information/30_gui_plugins.html @@ -1,169 +1,170 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>GUI Plugins — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="Project" href="gui_user_guide/10_projects.html" /> - <link rel="prev" title="Glossary" href="20_glossary.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="20_glossary.html">Glossary</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">GUI Plugins</a><ul> -<li class="toctree-l2"><a class="reference internal" href="gui_user_guide/10_projects.html">Project</a></li> -<li class="toctree-l2"><a class="reference internal" href="gui_user_guide/20_system_editor.html">System Editor</a></li> -<li class="toctree-l2"><a class="reference internal" href="gui_user_guide/30_pcm_sim.html">PCM Simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="gui_user_guide/40_pcm_eval.html">PCM Evaluation</a></li> -<li class="toctree-l2"><a class="reference internal" href="gui_user_guide/50_result_visualization.html">Result Visualization</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">GUI Plugins</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/other_information/30_gui_plugins.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="gui-plugins"> -<span id="id1"></span><h1>GUI Plugins<a class="headerlink" href="#gui-plugins" title="Link to this heading">ïƒ</a></h1> -<blockquote> -<div><ul class="simple"> -<li><p>The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11.</p></li> -<li><p>The latest version of this deprecated GUI can be found here: <a class="reference external" href="https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/">https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/</a></p></li> -</ul> -</div></blockquote> -<div class="toctree-wrapper compound"> -<ul> -<li class="toctree-l1"><a class="reference internal" href="gui_user_guide/10_projects.html">Project</a></li> -<li class="toctree-l1"><a class="reference internal" href="gui_user_guide/20_system_editor.html">System Editor</a></li> -<li class="toctree-l1"><a class="reference internal" href="gui_user_guide/30_pcm_sim.html">PCM Simulation</a></li> -<li class="toctree-l1"><a class="reference internal" href="gui_user_guide/40_pcm_eval.html">PCM Evaluation</a></li> -<li class="toctree-l1"><a class="reference internal" href="gui_user_guide/50_result_visualization.html">Result Visualization</a></li> -</ul> -</div> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="20_glossary.html" class="btn btn-neutral float-left" title="Glossary" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="gui_user_guide/10_projects.html" class="btn btn-neutral float-right" title="Project" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>GUI Plugins — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Project" href="gui_user_guide/10_projects.html" /> + <link rel="prev" title="Glossary" href="20_glossary.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="20_glossary.html">Glossary</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">GUI Plugins</a><ul> +<li class="toctree-l2"><a class="reference internal" href="gui_user_guide/10_projects.html">Project</a></li> +<li class="toctree-l2"><a class="reference internal" href="gui_user_guide/20_system_editor.html">System Editor</a></li> +<li class="toctree-l2"><a class="reference internal" href="gui_user_guide/30_pcm_sim.html">PCM Simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="gui_user_guide/40_pcm_eval.html">PCM Evaluation</a></li> +<li class="toctree-l2"><a class="reference internal" href="gui_user_guide/50_result_visualization.html">Result Visualization</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">GUI Plugins</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/other_information/30_gui_plugins.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="gui-plugins"> +<span id="id1"></span><h1>GUI Plugins<a class="headerlink" href="#gui-plugins" title="Link to this heading">ïƒ</a></h1> +<blockquote> +<div><ul class="simple"> +<li><p>The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11.</p></li> +<li><p>The latest version of this deprecated GUI can be found here: <a class="reference external" href="https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/">https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/</a></p></li> +</ul> +</div></blockquote> +<div class="toctree-wrapper compound"> +<ul> +<li class="toctree-l1"><a class="reference internal" href="gui_user_guide/10_projects.html">Project</a></li> +<li class="toctree-l1"><a class="reference internal" href="gui_user_guide/20_system_editor.html">System Editor</a></li> +<li class="toctree-l1"><a class="reference internal" href="gui_user_guide/30_pcm_sim.html">PCM Simulation</a></li> +<li class="toctree-l1"><a class="reference internal" href="gui_user_guide/40_pcm_eval.html">PCM Evaluation</a></li> +<li class="toctree-l1"><a class="reference internal" href="gui_user_guide/50_result_visualization.html">Result Visualization</a></li> +</ul> +</div> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="20_glossary.html" class="btn btn-neutral float-left" title="Glossary" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="gui_user_guide/10_projects.html" class="btn btn-neutral float-right" title="Project" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/other_information/40_license.html b/content/html/other_information/40_license.html index efe1589620af25ed3db93945cf7afb503d3d02fd..8621c6825e6c6225dd1d35ff48a583aa8fccd995 100644 --- a/content/html/other_information/40_license.html +++ b/content/html/other_information/40_license.html @@ -1,147 +1,148 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>License — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="prev" title="TimePlot" href="gui_user_guide/result_visualization/20_timePlot.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">License</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/other_information/40_license.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="license"> -<h1>License<a class="headerlink" href="#license" title="Link to this heading">ïƒ</a></h1> -<p>This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at <a class="reference external" href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a></p> -<p>SPDX-License-Identifier: EPL-2.0</p> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="gui_user_guide/result_visualization/20_timePlot.html" class="btn btn-neutral float-left" title="TimePlot" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>License — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="prev" title="TimePlot" href="gui_user_guide/result_visualization/20_timePlot.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">License</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/other_information/40_license.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="license"> +<h1>License<a class="headerlink" href="#license" title="Link to this heading">ïƒ</a></h1> +<p>This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at <a class="reference external" href="https://www.eclipse.org/legal/epl-2.0/">https://www.eclipse.org/legal/epl-2.0/</a></p> +<p>SPDX-License-Identifier: EPL-2.0</p> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="gui_user_guide/result_visualization/20_timePlot.html" class="btn btn-neutral float-left" title="TimePlot" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/other_information/gui_user_guide/10_projects.html b/content/html/other_information/gui_user_guide/10_projects.html index 9dbfa1f9100fc0d8e9888917658f8a9e6344d9ca..5c8b9491b4dcbd177e2870e4f917e6a87c36b312 100644 --- a/content/html/other_information/gui_user_guide/10_projects.html +++ b/content/html/other_information/gui_user_guide/10_projects.html @@ -1,206 +1,207 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Project — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="System Editor" href="20_system_editor.html" /> - <link rel="prev" title="GUI Plugins" href="../30_gui_plugins.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_glossary.html">Glossary</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_gui_plugins.html">GUI Plugins</a><ul class="current"> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Project</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#general">General</a></li> -<li class="toctree-l3"><a class="reference internal" href="#path-settings">Path Settings</a></li> -<li class="toctree-l3"><a class="reference internal" href="#simulation-output-settings">Simulation Output Settings</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="20_system_editor.html">System Editor</a></li> -<li class="toctree-l2"><a class="reference internal" href="30_pcm_sim.html">PCM Simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="40_pcm_eval.html">PCM Evaluation</a></li> -<li class="toctree-l2"><a class="reference internal" href="50_result_visualization.html">Result Visualization</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_gui_plugins.html">GUI Plugins</a></li> - <li class="breadcrumb-item active">Project</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/other_information/gui_user_guide/10_projects.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="project"> -<span id="id1"></span><h1>Project<a class="headerlink" href="#project" title="Link to this heading">ïƒ</a></h1> -<blockquote> -<div><ul class="simple"> -<li><p>The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11.</p></li> -<li><p>The latest version of this deprecated GUI can be found here: <a class="reference external" href="https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/">https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/</a></p></li> -</ul> -</div></blockquote> -<p>The Project Plugin can be used to simply start a simulation from the gui.</p> -<img alt="../../_images/overview.png" src="../../_images/overview.png" /> -<p>Before the simulation adjustments begin, the user is obligated to load or create a “Simulation Manager Configuration†(<cite>opSimulationManager.xml</cite>). -Such a configuration in openPASS can be understood as a project. -It is a XML-File which get inscribed the path settings and simulation settings after you click <strong>SAVE</strong>.</p> -<section id="general"> -<h2>General<a class="headerlink" href="#general" title="Link to this heading">ïƒ</a></h2> -<img alt="../../_images/general.png" src="../../_images/general.png" /> -<p>In this segment you are able to name the Simulation Manager Configuration.</p> -</section> -<section id="path-settings"> -<h2>Path Settings<a class="headerlink" href="#path-settings" title="Link to this heading">ïƒ</a></h2> -<img alt="../../_images/pathSettings.png" src="../../_images/pathSettings.png" /> -<p>The next step is path settings. -These will change depending on where your openPASS.exe is located. -In the screen shot above the openPASS.exe is located at <code class="docutils literal notranslate"><span class="pre">C:openPASS</span></code>. -For easier use of this tutorial it is recommended to save the Demo Folder in <code class="docutils literal notranslate"><span class="pre">C:/</span></code> and name it <em>openPASS</em>. -On to the settings. -As you can see three paths need to be set. -The library comes with openPASS. -There are plans to remove the option for the user to set the library path, but at this moment there is still the option to change it, although this is not recommended. -The Simulation Path references the opSimulation.exe, the file to execute the simulation. -If you are using the provided Demo, there is no need for you to change it. -The only path you need to set is the path of the Configuration Files. -In the Demo it will be located at <code class="docutils literal notranslate"><span class="pre">[directory</span> <span class="pre">of</span> <span class="pre">openPASS.exe]/configs</span></code>, so in this case it would be <code class="docutils literal notranslate"><span class="pre">C:/openPASS/configs</span></code>.</p> -</section> -<section id="simulation-output-settings"> -<h2>Simulation Output Settings<a class="headerlink" href="#simulation-output-settings" title="Link to this heading">ïƒ</a></h2> -<img alt="../../_images/simOutputSettings.png" src="../../_images/simOutputSettings.png" /> -<p>Next step is the Simulation Output Settings. There are three output files. First is the log file of the simulation manager. -However, when simulation jobs are started by the GUI, the openPASS simulation manager is not executed and, hence, the log will not contain any entries. -Second is the log file created by the simulation. In this log file you will find error messages, actions of the simulation etc. depending on the log level. -The Log level lets you choose which type of messages are logged. “0†means that only errors are logged, -whereas the highest log level of “5†leads to the most detailed description of which steps are executed by the simulation. -The results path specifies the folder in which the results of a successful simulation will be saved.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>It is recommended to create a new folder in C:/openPASS called “results†and set it as the results path as in the picture above.</p> -</div> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../30_gui_plugins.html" class="btn btn-neutral float-left" title="GUI Plugins" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="20_system_editor.html" class="btn btn-neutral float-right" title="System Editor" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Project — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="System Editor" href="20_system_editor.html" /> + <link rel="prev" title="GUI Plugins" href="../30_gui_plugins.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_glossary.html">Glossary</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_gui_plugins.html">GUI Plugins</a><ul class="current"> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Project</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#general">General</a></li> +<li class="toctree-l3"><a class="reference internal" href="#path-settings">Path Settings</a></li> +<li class="toctree-l3"><a class="reference internal" href="#simulation-output-settings">Simulation Output Settings</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="20_system_editor.html">System Editor</a></li> +<li class="toctree-l2"><a class="reference internal" href="30_pcm_sim.html">PCM Simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="40_pcm_eval.html">PCM Evaluation</a></li> +<li class="toctree-l2"><a class="reference internal" href="50_result_visualization.html">Result Visualization</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_gui_plugins.html">GUI Plugins</a></li> + <li class="breadcrumb-item active">Project</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/other_information/gui_user_guide/10_projects.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="project"> +<span id="id1"></span><h1>Project<a class="headerlink" href="#project" title="Link to this heading">ïƒ</a></h1> +<blockquote> +<div><ul class="simple"> +<li><p>The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11.</p></li> +<li><p>The latest version of this deprecated GUI can be found here: <a class="reference external" href="https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/">https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/</a></p></li> +</ul> +</div></blockquote> +<p>The Project Plugin can be used to simply start a simulation from the gui.</p> +<img alt="../../_images/overview.png" src="../../_images/overview.png" /> +<p>Before the simulation adjustments begin, the user is obligated to load or create a “Simulation Manager Configuration†(<cite>opSimulationManager.xml</cite>). +Such a configuration in openPASS can be understood as a project. +It is a XML-File which get inscribed the path settings and simulation settings after you click <strong>SAVE</strong>.</p> +<section id="general"> +<h2>General<a class="headerlink" href="#general" title="Link to this heading">ïƒ</a></h2> +<img alt="../../_images/general.png" src="../../_images/general.png" /> +<p>In this segment you are able to name the Simulation Manager Configuration.</p> +</section> +<section id="path-settings"> +<h2>Path Settings<a class="headerlink" href="#path-settings" title="Link to this heading">ïƒ</a></h2> +<img alt="../../_images/pathSettings.png" src="../../_images/pathSettings.png" /> +<p>The next step is path settings. +These will change depending on where your openPASS.exe is located. +In the screen shot above the openPASS.exe is located at <code class="docutils literal notranslate"><span class="pre">C:openPASS</span></code>. +For easier use of this tutorial it is recommended to save the Demo Folder in <code class="docutils literal notranslate"><span class="pre">C:/</span></code> and name it <em>openPASS</em>. +On to the settings. +As you can see three paths need to be set. +The library comes with openPASS. +There are plans to remove the option for the user to set the library path, but at this moment there is still the option to change it, although this is not recommended. +The Simulation Path references the opSimulation.exe, the file to execute the simulation. +If you are using the provided Demo, there is no need for you to change it. +The only path you need to set is the path of the Configuration Files. +In the Demo it will be located at <code class="docutils literal notranslate"><span class="pre">[directory</span> <span class="pre">of</span> <span class="pre">openPASS.exe]/configs</span></code>, so in this case it would be <code class="docutils literal notranslate"><span class="pre">C:/openPASS/configs</span></code>.</p> +</section> +<section id="simulation-output-settings"> +<h2>Simulation Output Settings<a class="headerlink" href="#simulation-output-settings" title="Link to this heading">ïƒ</a></h2> +<img alt="../../_images/simOutputSettings.png" src="../../_images/simOutputSettings.png" /> +<p>Next step is the Simulation Output Settings. There are three output files. First is the log file of the simulation manager. +However, when simulation jobs are started by the GUI, the openPASS simulation manager is not executed and, hence, the log will not contain any entries. +Second is the log file created by the simulation. In this log file you will find error messages, actions of the simulation etc. depending on the log level. +The Log level lets you choose which type of messages are logged. “0†means that only errors are logged, +whereas the highest log level of “5†leads to the most detailed description of which steps are executed by the simulation. +The results path specifies the folder in which the results of a successful simulation will be saved.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>It is recommended to create a new folder in C:/openPASS called “results†and set it as the results path as in the picture above.</p> +</div> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../30_gui_plugins.html" class="btn btn-neutral float-left" title="GUI Plugins" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="20_system_editor.html" class="btn btn-neutral float-right" title="System Editor" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/other_information/gui_user_guide/20_system_editor.html b/content/html/other_information/gui_user_guide/20_system_editor.html index ae9cc55a6bdb31d0dd379e2f76c93932a37a4654..2366f0f52f8d40ac74a2ac4aafe84d6938a3c7e2 100644 --- a/content/html/other_information/gui_user_guide/20_system_editor.html +++ b/content/html/other_information/gui_user_guide/20_system_editor.html @@ -1,170 +1,171 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>System Editor — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="PCM Simulation" href="30_pcm_sim.html" /> - <link rel="prev" title="Project" href="10_projects.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_glossary.html">Glossary</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_gui_plugins.html">GUI Plugins</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="10_projects.html">Project</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">System Editor</a></li> -<li class="toctree-l2"><a class="reference internal" href="30_pcm_sim.html">PCM Simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="40_pcm_eval.html">PCM Evaluation</a></li> -<li class="toctree-l2"><a class="reference internal" href="50_result_visualization.html">Result Visualization</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_gui_plugins.html">GUI Plugins</a></li> - <li class="breadcrumb-item active">System Editor</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/other_information/gui_user_guide/20_system_editor.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="system-editor"> -<span id="id1"></span><h1>System Editor<a class="headerlink" href="#system-editor" title="Link to this heading">ïƒ</a></h1> -<blockquote> -<div><ul class="simple"> -<li><p>The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11.</p></li> -<li><p>The latest version of this deprecated GUI can be found here: <a class="reference external" href="https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/">https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/</a></p></li> -</ul> -</div></blockquote> -<p>The System Editor helps building the system configuration (systemConfig) in the GUI. -This file is also a XML-file and specifies the components of an agent and systems used, in this case advanced driver assistance systems.</p> -<p>The editing of the System Configuration has two modes: the static and dynamic mode.</p> -<p>The <strong>static mode</strong> requires the user to build a complete system which includes sensors, algorithms and actions. -As the actions directly manipulate the simulated vehicle’s parameters, which are the same no matter the system (i.e. gas pedal position, braking pedal position, steering wheel angle), there is no need to code the interaction between system and simulation.</p> -<p>At this point there is no support for supporting statistical inclusion of systems in the static mode. -The current demo only provides an example for the static mode (a System Configuration of an agent to follow a PCM trajectory), so make sure you have the static mode selected.</p> -<p>The <strong>dynamic mode</strong> is covered by the Scenario Simulation User guide.</p> -<img alt="../../_images/overview1.png" src="../../_images/overview1.png" /> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="10_projects.html" class="btn btn-neutral float-left" title="Project" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="30_pcm_sim.html" class="btn btn-neutral float-right" title="PCM Simulation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>System Editor — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="PCM Simulation" href="30_pcm_sim.html" /> + <link rel="prev" title="Project" href="10_projects.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_glossary.html">Glossary</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_gui_plugins.html">GUI Plugins</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="10_projects.html">Project</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">System Editor</a></li> +<li class="toctree-l2"><a class="reference internal" href="30_pcm_sim.html">PCM Simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="40_pcm_eval.html">PCM Evaluation</a></li> +<li class="toctree-l2"><a class="reference internal" href="50_result_visualization.html">Result Visualization</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_gui_plugins.html">GUI Plugins</a></li> + <li class="breadcrumb-item active">System Editor</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/other_information/gui_user_guide/20_system_editor.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="system-editor"> +<span id="id1"></span><h1>System Editor<a class="headerlink" href="#system-editor" title="Link to this heading">ïƒ</a></h1> +<blockquote> +<div><ul class="simple"> +<li><p>The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11.</p></li> +<li><p>The latest version of this deprecated GUI can be found here: <a class="reference external" href="https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/">https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/</a></p></li> +</ul> +</div></blockquote> +<p>The System Editor helps building the system configuration (systemConfig) in the GUI. +This file is also a XML-file and specifies the components of an agent and systems used, in this case advanced driver assistance systems.</p> +<p>The editing of the System Configuration has two modes: the static and dynamic mode.</p> +<p>The <strong>static mode</strong> requires the user to build a complete system which includes sensors, algorithms and actions. +As the actions directly manipulate the simulated vehicle’s parameters, which are the same no matter the system (i.e. gas pedal position, braking pedal position, steering wheel angle), there is no need to code the interaction between system and simulation.</p> +<p>At this point there is no support for supporting statistical inclusion of systems in the static mode. +The current demo only provides an example for the static mode (a System Configuration of an agent to follow a PCM trajectory), so make sure you have the static mode selected.</p> +<p>The <strong>dynamic mode</strong> is covered by the Scenario Simulation User guide.</p> +<img alt="../../_images/overview1.png" src="../../_images/overview1.png" /> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="10_projects.html" class="btn btn-neutral float-left" title="Project" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="30_pcm_sim.html" class="btn btn-neutral float-right" title="PCM Simulation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/other_information/gui_user_guide/30_pcm_sim.html b/content/html/other_information/gui_user_guide/30_pcm_sim.html index a3ce4bd6dd4c88026d3741bdf4c204dcbed8799e..47c2ae25b8343828d71ff0d54c955a15f703342e 100644 --- a/content/html/other_information/gui_user_guide/30_pcm_sim.html +++ b/content/html/other_information/gui_user_guide/30_pcm_sim.html @@ -1,318 +1,319 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>PCM Simulation — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="PCM Evaluation" href="40_pcm_eval.html" /> - <link rel="prev" title="System Editor" href="20_system_editor.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_glossary.html">Glossary</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_gui_plugins.html">GUI Plugins</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="10_projects.html">Project</a></li> -<li class="toctree-l2"><a class="reference internal" href="20_system_editor.html">System Editor</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">PCM Simulation</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#simulation-input">Simulation Input</a></li> -<li class="toctree-l3"><a class="reference internal" href="#simulation-output">Simulation Output</a></li> -<li class="toctree-l3"><a class="reference internal" href="#simulation-configuration">Simulation Configuration</a></li> -<li class="toctree-l3"><a class="reference internal" href="#variation">Variation</a></li> -<li class="toctree-l3"><a class="reference internal" href="#simulation-start">Simulation Start</a></li> -<li class="toctree-l3"><a class="reference internal" href="#save-load-experiment">Save / Load Experiment</a></li> -<li class="toctree-l3"><a class="reference internal" href="#result-folder-structure">Result Folder Structure</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="40_pcm_eval.html">PCM Evaluation</a></li> -<li class="toctree-l2"><a class="reference internal" href="50_result_visualization.html">Result Visualization</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_gui_plugins.html">GUI Plugins</a></li> - <li class="breadcrumb-item active">PCM Simulation</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/other_information/gui_user_guide/30_pcm_sim.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="pcm-simulation"> -<span id="pcm-sim"></span><h1>PCM Simulation<a class="headerlink" href="#pcm-simulation" title="Link to this heading">ïƒ</a></h1> -<blockquote> -<div><ul class="simple"> -<li><p>The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11.</p></li> -<li><p>The latest version of this deprecated GUI can be found here: <a class="reference external" href="https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/">https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/</a></p></li> -</ul> -</div></blockquote> -<p>This plugin is used to configure and start a simulation based pcm data or simulation configuration sets of previous simulations.</p> -<section id="simulation-input"> -<h2>Simulation Input<a class="headerlink" href="#simulation-input" title="Link to this heading">ïƒ</a></h2> -<ul> -<li><p><strong>UseCase: Database</strong></p> -<blockquote> -<div><ul class="simple"> -<li><p>Select the radio button <code class="docutils literal notranslate"><span class="pre">PCM</span> <span class="pre">Database</span></code></p></li> -<li><p>Select a PCM database file</p></li> -</ul> -</div></blockquote> -</li> -</ul> -<img alt="../../_images/input_db.png" src="../../_images/input_db.png" /> -<ul> -<li><p><strong>UseCase: Resimulation</strong></p> -<blockquote> -<div><ul class="simple"> -<li><p>Select the radio button <code class="docutils literal notranslate"><span class="pre">Simulation</span> <span class="pre">Results</span></code></p></li> -<li><p>Select a folder with previous Results</p></li> -</ul> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The selected output folder must be different to the input folder</p> -</div> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>To ensure that the previous results are correctly read, the folder structure of the results has to follow the structure the GUI itself generates when the simulation is started from a database. -Only the configuration files of the default folders are loaded. No variation is loaded and taken into account at this place.</p> -</div> -</div></blockquote> -</li> -</ul> -<img alt="../../_images/input_resim.png" src="../../_images/input_resim.png" /> -</section> -<section id="simulation-output"> -<h2>Simulation Output<a class="headerlink" href="#simulation-output" title="Link to this heading">ïƒ</a></h2> -<blockquote> -<div><ul> -<li><p>In <code class="docutils literal notranslate"><span class="pre">Result</span> <span class="pre">Folder</span></code> you can select a folder where the output shall be written</p></li> -<li><p>In <code class="docutils literal notranslate"><span class="pre">Log</span> <span class="pre">Level</span></code> you can define at what level a logging output shall be produced</p> -<blockquote> -<div><ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">Error</span></code> - Log only Errors</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">Warning</span></code> - Log additionally warnings</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">Info</span></code> - Log additionally information</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">Debug</span></code> - Log additionally debug information</p></li> -</ul> -</div></blockquote> -</li> -</ul> -</div></blockquote> -<img alt="../../_images/output.png" src="../../_images/output.png" /> -</section> -<section id="simulation-configuration"> -<h2>Simulation Configuration<a class="headerlink" href="#simulation-configuration" title="Link to this heading">ïƒ</a></h2> -<p>At this point, the User is able to choose what system configuration shall be used for each agent. -The User can either select one or multiple system configuration files (comma separated). -In the case of multiple files are configured, there will be unique sets of simulation configuration files generated for each possible combination, which are placed in folders named / coded like <code class="docutils literal notranslate"><span class="pre"><Car1_Index>-<Car2_Index>-<Other_Index></span></code> e.g. <code class="docutils literal notranslate"><span class="pre">1-0-2</span></code></p> -<img alt="../../_images/system_config.png" src="../../_images/system_config.png" /> -</section> -<section id="variation"> -<h2>Variation<a class="headerlink" href="#variation" title="Link to this heading">ïƒ</a></h2> -<ul> -<li><p>The random seed can be set to a specific initial random seed by <code class="docutils literal notranslate"><span class="pre">using</span> <span class="pre">a</span> <span class="pre">given</span> <span class="pre">value</span></code> or just by <code class="docutils literal notranslate"><span class="pre">using</span> <span class="pre">the</span> <span class="pre">case</span> <span class="pre">number</span></code></p></li> -<li><p>The number runs can with different random seed can be set by changing <code class="docutils literal notranslate"><span class="pre">Variation</span> <span class="pre">Count</span></code></p></li> -<li><p>The original trajectory can be shifted randomly by setting the <code class="docutils literal notranslate"><span class="pre">Shift</span> <span class="pre">radius</span></code> for <em>Car1</em> and <em>Car2</em></p> -<blockquote> -<div><ul class="simple"> -<li><p>Given a shift radius R for a vehicle</p></li> -<li><p>For each position P in trajectory, it shifted position P’ is calculated by randomly generating a distance D (D<= R) and a relative angle in polar coordinate</p></li> -</ul> -<div class="math"> -<p><img src="../../_images/math/483636c85068dd3159fa50e49105a8ada221aaec.png" alt="`x_{\text{new}}(t) = x(t) + \delta x` -`y_{\text{new}}(t) = x(y) + \delta y`"/></p> -</div></div></blockquote> -</li> -</ul> -<img alt="../../_images/trajectory_shifting.png" src="../../_images/trajectory_shifting.png" /> -<ul> -<li><p>The original velocity can be scaled randomly by setting the <code class="docutils literal notranslate"><span class="pre">Max</span> <span class="pre">scale</span></code> for <em>Car1</em> and <em>Car2</em></p></li> -<li><p>Given a velocity deviation :math <cite>delta V</cite> for a vehicle</p></li> -<li><p>In a trajectory, a position P_{i} is represented as</p> -<blockquote> -<div><div class="math"> -<p><img src="../../_images/math/6320e0b9994d88e6de4c1c19af9f9f2f027bd7ff.png" alt="`x(t) = x_{0} + \int_{0}^{t} v_{x} (t) dt` -`y(t) = y_{0} + \int_{0}^{t} v_{y} (t) dt`"/></p> -</div></div></blockquote> -</li> -<li><p>The new position P_{i} can be represented as</p> -<div class="math"> -<p><img src="../../_images/math/8ffb1c6ecf28ce9d5aa3c83bceed6ed16c0da9bb.png" alt="`x(t) = x_{0} + k \int_{0}^{t} v_{x} (t) dt` -`y(t) = y_{0} + k \int_{0}^{t} v_{y} (t) dt`"/></p> -</div></li> -<li><p>with a scaling factor k</p></li> -</ul> -<img alt="../../_images/velocity_scaling.png" src="../../_images/velocity_scaling.png" /> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The additional random seeds which are used by the variation are chosen randomly depending on the initial random seed. -Therefore they´re reproducible</p> -</div> -<img alt="../../_images/variation.png" src="../../_images/variation.png" /> -</section> -<section id="simulation-start"> -<h2>Simulation Start<a class="headerlink" href="#simulation-start" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Select one or multiple simulation cases (by pressing the CTRL / SHIFT key)</p></li> -<li><p>Press the button <code class="docutils literal notranslate"><span class="pre">Start</span> <span class="pre">Simulation</span></code></p></li> -</ul> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The User can interrupt the simulation process by pressing <code class="docutils literal notranslate"><span class="pre">Stop</span> <span class="pre">Simulation</span></code>. -The simulation will stop after the current simulation is finished. -Therefore it won´t start the remaining simulations anymore.</p> -</div> -<img alt="../../_images/select.png" src="../../_images/select.png" /> -</section> -<section id="save-load-experiment"> -<h2>Save / Load Experiment<a class="headerlink" href="#save-load-experiment" title="Link to this heading">ïƒ</a></h2> -<p>Every change in the gui can be saved as in “Experiment†in an text file. -This file can later be loaded to retrieve the previous used configuration of the “Experimentâ€.</p> -<img alt="../../_images/experiment.png" src="../../_images/experiment.png" /> -</section> -<section id="result-folder-structure"> -<span id="id1"></span><h2>Result Folder Structure<a class="headerlink" href="#result-folder-structure" title="Link to this heading">ïƒ</a></h2> -<ul> -<li><p><Result Folder Name> (e.g. <em>result_pcm</em>)</p> -<blockquote> -<div><ul> -<li><p><Case Name> (e.g. <em>1000208</em>)</p> -<blockquote> -<div><ul> -<li><p><System Configuration combination code> (e.g. <em>1-0-2</em>)</p> -<blockquote> -<div><ul class="simple"> -<li><p><Variation Name> (e.g. <em>default</em> or <em>Var_00001</em>)</p></li> -</ul> -</div></blockquote> -</li> -</ul> -</div></blockquote> -</li> -</ul> -</div></blockquote> -</li> -</ul> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="20_system_editor.html" class="btn btn-neutral float-left" title="System Editor" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="40_pcm_eval.html" class="btn btn-neutral float-right" title="PCM Evaluation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>PCM Simulation — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="PCM Evaluation" href="40_pcm_eval.html" /> + <link rel="prev" title="System Editor" href="20_system_editor.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_glossary.html">Glossary</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_gui_plugins.html">GUI Plugins</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="10_projects.html">Project</a></li> +<li class="toctree-l2"><a class="reference internal" href="20_system_editor.html">System Editor</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">PCM Simulation</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#simulation-input">Simulation Input</a></li> +<li class="toctree-l3"><a class="reference internal" href="#simulation-output">Simulation Output</a></li> +<li class="toctree-l3"><a class="reference internal" href="#simulation-configuration">Simulation Configuration</a></li> +<li class="toctree-l3"><a class="reference internal" href="#variation">Variation</a></li> +<li class="toctree-l3"><a class="reference internal" href="#simulation-start">Simulation Start</a></li> +<li class="toctree-l3"><a class="reference internal" href="#save-load-experiment">Save / Load Experiment</a></li> +<li class="toctree-l3"><a class="reference internal" href="#result-folder-structure">Result Folder Structure</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="40_pcm_eval.html">PCM Evaluation</a></li> +<li class="toctree-l2"><a class="reference internal" href="50_result_visualization.html">Result Visualization</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_gui_plugins.html">GUI Plugins</a></li> + <li class="breadcrumb-item active">PCM Simulation</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/other_information/gui_user_guide/30_pcm_sim.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="pcm-simulation"> +<span id="pcm-sim"></span><h1>PCM Simulation<a class="headerlink" href="#pcm-simulation" title="Link to this heading">ïƒ</a></h1> +<blockquote> +<div><ul class="simple"> +<li><p>The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11.</p></li> +<li><p>The latest version of this deprecated GUI can be found here: <a class="reference external" href="https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/">https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/</a></p></li> +</ul> +</div></blockquote> +<p>This plugin is used to configure and start a simulation based pcm data or simulation configuration sets of previous simulations.</p> +<section id="simulation-input"> +<h2>Simulation Input<a class="headerlink" href="#simulation-input" title="Link to this heading">ïƒ</a></h2> +<ul> +<li><p><strong>UseCase: Database</strong></p> +<blockquote> +<div><ul class="simple"> +<li><p>Select the radio button <code class="docutils literal notranslate"><span class="pre">PCM</span> <span class="pre">Database</span></code></p></li> +<li><p>Select a PCM database file</p></li> +</ul> +</div></blockquote> +</li> +</ul> +<img alt="../../_images/input_db.png" src="../../_images/input_db.png" /> +<ul> +<li><p><strong>UseCase: Resimulation</strong></p> +<blockquote> +<div><ul class="simple"> +<li><p>Select the radio button <code class="docutils literal notranslate"><span class="pre">Simulation</span> <span class="pre">Results</span></code></p></li> +<li><p>Select a folder with previous Results</p></li> +</ul> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The selected output folder must be different to the input folder</p> +</div> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>To ensure that the previous results are correctly read, the folder structure of the results has to follow the structure the GUI itself generates when the simulation is started from a database. +Only the configuration files of the default folders are loaded. No variation is loaded and taken into account at this place.</p> +</div> +</div></blockquote> +</li> +</ul> +<img alt="../../_images/input_resim.png" src="../../_images/input_resim.png" /> +</section> +<section id="simulation-output"> +<h2>Simulation Output<a class="headerlink" href="#simulation-output" title="Link to this heading">ïƒ</a></h2> +<blockquote> +<div><ul> +<li><p>In <code class="docutils literal notranslate"><span class="pre">Result</span> <span class="pre">Folder</span></code> you can select a folder where the output shall be written</p></li> +<li><p>In <code class="docutils literal notranslate"><span class="pre">Log</span> <span class="pre">Level</span></code> you can define at what level a logging output shall be produced</p> +<blockquote> +<div><ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">Error</span></code> - Log only Errors</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">Warning</span></code> - Log additionally warnings</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">Info</span></code> - Log additionally information</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">Debug</span></code> - Log additionally debug information</p></li> +</ul> +</div></blockquote> +</li> +</ul> +</div></blockquote> +<img alt="../../_images/output.png" src="../../_images/output.png" /> +</section> +<section id="simulation-configuration"> +<h2>Simulation Configuration<a class="headerlink" href="#simulation-configuration" title="Link to this heading">ïƒ</a></h2> +<p>At this point, the User is able to choose what system configuration shall be used for each agent. +The User can either select one or multiple system configuration files (comma separated). +In the case of multiple files are configured, there will be unique sets of simulation configuration files generated for each possible combination, which are placed in folders named / coded like <code class="docutils literal notranslate"><span class="pre"><Car1_Index>-<Car2_Index>-<Other_Index></span></code> e.g. <code class="docutils literal notranslate"><span class="pre">1-0-2</span></code></p> +<img alt="../../_images/system_config.png" src="../../_images/system_config.png" /> +</section> +<section id="variation"> +<h2>Variation<a class="headerlink" href="#variation" title="Link to this heading">ïƒ</a></h2> +<ul> +<li><p>The random seed can be set to a specific initial random seed by <code class="docutils literal notranslate"><span class="pre">using</span> <span class="pre">a</span> <span class="pre">given</span> <span class="pre">value</span></code> or just by <code class="docutils literal notranslate"><span class="pre">using</span> <span class="pre">the</span> <span class="pre">case</span> <span class="pre">number</span></code></p></li> +<li><p>The number runs can with different random seed can be set by changing <code class="docutils literal notranslate"><span class="pre">Variation</span> <span class="pre">Count</span></code></p></li> +<li><p>The original trajectory can be shifted randomly by setting the <code class="docutils literal notranslate"><span class="pre">Shift</span> <span class="pre">radius</span></code> for <em>Car1</em> and <em>Car2</em></p> +<blockquote> +<div><ul class="simple"> +<li><p>Given a shift radius R for a vehicle</p></li> +<li><p>For each position P in trajectory, it shifted position P’ is calculated by randomly generating a distance D (D<= R) and a relative angle in polar coordinate</p></li> +</ul> +<div class="math"> +<p><img src="../../_images/math/483636c85068dd3159fa50e49105a8ada221aaec.png" alt="`x_{\text{new}}(t) = x(t) + \delta x` +`y_{\text{new}}(t) = x(y) + \delta y`"/></p> +</div></div></blockquote> +</li> +</ul> +<img alt="../../_images/trajectory_shifting.png" src="../../_images/trajectory_shifting.png" /> +<ul> +<li><p>The original velocity can be scaled randomly by setting the <code class="docutils literal notranslate"><span class="pre">Max</span> <span class="pre">scale</span></code> for <em>Car1</em> and <em>Car2</em></p></li> +<li><p>Given a velocity deviation :math <cite>delta V</cite> for a vehicle</p></li> +<li><p>In a trajectory, a position P_{i} is represented as</p> +<blockquote> +<div><div class="math"> +<p><img src="../../_images/math/6320e0b9994d88e6de4c1c19af9f9f2f027bd7ff.png" alt="`x(t) = x_{0} + \int_{0}^{t} v_{x} (t) dt` +`y(t) = y_{0} + \int_{0}^{t} v_{y} (t) dt`"/></p> +</div></div></blockquote> +</li> +<li><p>The new position P_{i} can be represented as</p> +<div class="math"> +<p><img src="../../_images/math/8ffb1c6ecf28ce9d5aa3c83bceed6ed16c0da9bb.png" alt="`x(t) = x_{0} + k \int_{0}^{t} v_{x} (t) dt` +`y(t) = y_{0} + k \int_{0}^{t} v_{y} (t) dt`"/></p> +</div></li> +<li><p>with a scaling factor k</p></li> +</ul> +<img alt="../../_images/velocity_scaling.png" src="../../_images/velocity_scaling.png" /> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The additional random seeds which are used by the variation are chosen randomly depending on the initial random seed. +Therefore they´re reproducible</p> +</div> +<img alt="../../_images/variation.png" src="../../_images/variation.png" /> +</section> +<section id="simulation-start"> +<h2>Simulation Start<a class="headerlink" href="#simulation-start" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Select one or multiple simulation cases (by pressing the CTRL / SHIFT key)</p></li> +<li><p>Press the button <code class="docutils literal notranslate"><span class="pre">Start</span> <span class="pre">Simulation</span></code></p></li> +</ul> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The User can interrupt the simulation process by pressing <code class="docutils literal notranslate"><span class="pre">Stop</span> <span class="pre">Simulation</span></code>. +The simulation will stop after the current simulation is finished. +Therefore it won´t start the remaining simulations anymore.</p> +</div> +<img alt="../../_images/select.png" src="../../_images/select.png" /> +</section> +<section id="save-load-experiment"> +<h2>Save / Load Experiment<a class="headerlink" href="#save-load-experiment" title="Link to this heading">ïƒ</a></h2> +<p>Every change in the gui can be saved as in “Experiment†in an text file. +This file can later be loaded to retrieve the previous used configuration of the “Experimentâ€.</p> +<img alt="../../_images/experiment.png" src="../../_images/experiment.png" /> +</section> +<section id="result-folder-structure"> +<span id="id1"></span><h2>Result Folder Structure<a class="headerlink" href="#result-folder-structure" title="Link to this heading">ïƒ</a></h2> +<ul> +<li><p><Result Folder Name> (e.g. <em>result_pcm</em>)</p> +<blockquote> +<div><ul> +<li><p><Case Name> (e.g. <em>1000208</em>)</p> +<blockquote> +<div><ul> +<li><p><System Configuration combination code> (e.g. <em>1-0-2</em>)</p> +<blockquote> +<div><ul class="simple"> +<li><p><Variation Name> (e.g. <em>default</em> or <em>Var_00001</em>)</p></li> +</ul> +</div></blockquote> +</li> +</ul> +</div></blockquote> +</li> +</ul> +</div></blockquote> +</li> +</ul> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="20_system_editor.html" class="btn btn-neutral float-left" title="System Editor" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="40_pcm_eval.html" class="btn btn-neutral float-right" title="PCM Evaluation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/other_information/gui_user_guide/40_pcm_eval.html b/content/html/other_information/gui_user_guide/40_pcm_eval.html index f9fc1146b495386490670938ed57f51ee7c48a63..fe46500c5ed28d8b1f0e9f744d127dadb0cb9d58 100644 --- a/content/html/other_information/gui_user_guide/40_pcm_eval.html +++ b/content/html/other_information/gui_user_guide/40_pcm_eval.html @@ -1,190 +1,191 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>PCM Evaluation — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Result Visualization" href="50_result_visualization.html" /> - <link rel="prev" title="PCM Simulation" href="30_pcm_sim.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_glossary.html">Glossary</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_gui_plugins.html">GUI Plugins</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="10_projects.html">Project</a></li> -<li class="toctree-l2"><a class="reference internal" href="20_system_editor.html">System Editor</a></li> -<li class="toctree-l2"><a class="reference internal" href="30_pcm_sim.html">PCM Simulation</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">PCM Evaluation</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#loading-results">Loading Results</a></li> -<li class="toctree-l3"><a class="reference internal" href="#evaluating-results">Evaluating Results</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="50_result_visualization.html">Result Visualization</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_gui_plugins.html">GUI Plugins</a></li> - <li class="breadcrumb-item active">PCM Evaluation</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/other_information/gui_user_guide/40_pcm_eval.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="pcm-evaluation"> -<span id="pcm-eval"></span><h1>PCM Evaluation<a class="headerlink" href="#pcm-evaluation" title="Link to this heading">ïƒ</a></h1> -<blockquote> -<div><ul class="simple"> -<li><p>The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11.</p></li> -<li><p>The latest version of this deprecated GUI can be found here: <a class="reference external" href="https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/">https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/</a></p></li> -</ul> -</div></blockquote> -<p>This plugin is used to load results of previous simulations.</p> -<section id="loading-results"> -<h2>Loading Results<a class="headerlink" href="#loading-results" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Click <code class="docutils literal notranslate"><span class="pre">Browse</span> <span class="pre">Result</span> <span class="pre">Files</span></code> to choose a result folder to be evaluated</p></li> -<li><p>Simulation results are displayed in a tree structure</p></li> -</ul> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Result folder has to be structured like the result folder of a previous simulation. -See <a class="reference internal" href="30_pcm_sim.html#result-folder-structure"><span class="std std-ref">Result Folder Structure</span></a></p> -</div> -<img alt="../../_images/overview2.png" src="../../_images/overview2.png" /> -</section> -<section id="evaluating-results"> -<h2>Evaluating Results<a class="headerlink" href="#evaluating-results" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Select result files to be shown.</p></li> -</ul> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>It is possible to select multiple files to compare different trajectories in the visualization area.</p> -</div> -<img alt="../../_images/select1.png" src="../../_images/select1.png" /> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="30_pcm_sim.html" class="btn btn-neutral float-left" title="PCM Simulation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="50_result_visualization.html" class="btn btn-neutral float-right" title="Result Visualization" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>PCM Evaluation — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Result Visualization" href="50_result_visualization.html" /> + <link rel="prev" title="PCM Simulation" href="30_pcm_sim.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_glossary.html">Glossary</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_gui_plugins.html">GUI Plugins</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="10_projects.html">Project</a></li> +<li class="toctree-l2"><a class="reference internal" href="20_system_editor.html">System Editor</a></li> +<li class="toctree-l2"><a class="reference internal" href="30_pcm_sim.html">PCM Simulation</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">PCM Evaluation</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#loading-results">Loading Results</a></li> +<li class="toctree-l3"><a class="reference internal" href="#evaluating-results">Evaluating Results</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="50_result_visualization.html">Result Visualization</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_gui_plugins.html">GUI Plugins</a></li> + <li class="breadcrumb-item active">PCM Evaluation</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/other_information/gui_user_guide/40_pcm_eval.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="pcm-evaluation"> +<span id="pcm-eval"></span><h1>PCM Evaluation<a class="headerlink" href="#pcm-evaluation" title="Link to this heading">ïƒ</a></h1> +<blockquote> +<div><ul class="simple"> +<li><p>The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11.</p></li> +<li><p>The latest version of this deprecated GUI can be found here: <a class="reference external" href="https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/">https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/</a></p></li> +</ul> +</div></blockquote> +<p>This plugin is used to load results of previous simulations.</p> +<section id="loading-results"> +<h2>Loading Results<a class="headerlink" href="#loading-results" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Click <code class="docutils literal notranslate"><span class="pre">Browse</span> <span class="pre">Result</span> <span class="pre">Files</span></code> to choose a result folder to be evaluated</p></li> +<li><p>Simulation results are displayed in a tree structure</p></li> +</ul> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Result folder has to be structured like the result folder of a previous simulation. +See <a class="reference internal" href="30_pcm_sim.html#result-folder-structure"><span class="std std-ref">Result Folder Structure</span></a></p> +</div> +<img alt="../../_images/overview2.png" src="../../_images/overview2.png" /> +</section> +<section id="evaluating-results"> +<h2>Evaluating Results<a class="headerlink" href="#evaluating-results" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Select result files to be shown.</p></li> +</ul> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>It is possible to select multiple files to compare different trajectories in the visualization area.</p> +</div> +<img alt="../../_images/select1.png" src="../../_images/select1.png" /> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="30_pcm_sim.html" class="btn btn-neutral float-left" title="PCM Simulation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="50_result_visualization.html" class="btn btn-neutral float-right" title="Result Visualization" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/other_information/gui_user_guide/50_result_visualization.html b/content/html/other_information/gui_user_guide/50_result_visualization.html index 713cfa00c762f1e57133ee83c4c2001ddde18f9b..d4ae989206e0435ddb498a855324a00584e6e6be 100644 --- a/content/html/other_information/gui_user_guide/50_result_visualization.html +++ b/content/html/other_information/gui_user_guide/50_result_visualization.html @@ -1,172 +1,173 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Result Visualization — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Statistics" href="result_visualization/10_statistics.html" /> - <link rel="prev" title="PCM Evaluation" href="40_pcm_eval.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_glossary.html">Glossary</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_gui_plugins.html">GUI Plugins</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="10_projects.html">Project</a></li> -<li class="toctree-l2"><a class="reference internal" href="20_system_editor.html">System Editor</a></li> -<li class="toctree-l2"><a class="reference internal" href="30_pcm_sim.html">PCM Simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="40_pcm_eval.html">PCM Evaluation</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Result Visualization</a><ul> -<li class="toctree-l3"><a class="reference internal" href="result_visualization/10_statistics.html">Statistics</a></li> -<li class="toctree-l3"><a class="reference internal" href="result_visualization/20_timePlot.html">TimePlot</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_gui_plugins.html">GUI Plugins</a></li> - <li class="breadcrumb-item active">Result Visualization</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/other_information/gui_user_guide/50_result_visualization.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="result-visualization"> -<span id="id1"></span><h1>Result Visualization<a class="headerlink" href="#result-visualization" title="Link to this heading">ïƒ</a></h1> -<blockquote> -<div><ul class="simple"> -<li><p>The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11.</p></li> -<li><p>The latest version of this deprecated GUI can be found here: <a class="reference external" href="https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/">https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/</a></p></li> -</ul> -</div></blockquote> -<img alt="../../_images/select2.png" src="../../_images/select2.png" /> -<div class="toctree-wrapper compound"> -<ul> -<li class="toctree-l1"><a class="reference internal" href="result_visualization/10_statistics.html">Statistics</a></li> -<li class="toctree-l1"><a class="reference internal" href="result_visualization/20_timePlot.html">TimePlot</a></li> -</ul> -</div> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="40_pcm_eval.html" class="btn btn-neutral float-left" title="PCM Evaluation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="result_visualization/10_statistics.html" class="btn btn-neutral float-right" title="Statistics" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Result Visualization — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Statistics" href="result_visualization/10_statistics.html" /> + <link rel="prev" title="PCM Evaluation" href="40_pcm_eval.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_glossary.html">Glossary</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_gui_plugins.html">GUI Plugins</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="10_projects.html">Project</a></li> +<li class="toctree-l2"><a class="reference internal" href="20_system_editor.html">System Editor</a></li> +<li class="toctree-l2"><a class="reference internal" href="30_pcm_sim.html">PCM Simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="40_pcm_eval.html">PCM Evaluation</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Result Visualization</a><ul> +<li class="toctree-l3"><a class="reference internal" href="result_visualization/10_statistics.html">Statistics</a></li> +<li class="toctree-l3"><a class="reference internal" href="result_visualization/20_timePlot.html">TimePlot</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_gui_plugins.html">GUI Plugins</a></li> + <li class="breadcrumb-item active">Result Visualization</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/other_information/gui_user_guide/50_result_visualization.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="result-visualization"> +<span id="id1"></span><h1>Result Visualization<a class="headerlink" href="#result-visualization" title="Link to this heading">ïƒ</a></h1> +<blockquote> +<div><ul class="simple"> +<li><p>The deprecated “Qt GUI†for simulation configuration based on Qt mainly aimed to edit PCM-based openPASS experiments was part of minor releases v0.5 – v0.11.</p></li> +<li><p>The latest version of this deprecated GUI can be found here: <a class="reference external" href="https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/">https://ci.eclipse.org/openpass/job/openPASS_simulator_build/view/tags/job/openPASS_0.11/</a></p></li> +</ul> +</div></blockquote> +<img alt="../../_images/select2.png" src="../../_images/select2.png" /> +<div class="toctree-wrapper compound"> +<ul> +<li class="toctree-l1"><a class="reference internal" href="result_visualization/10_statistics.html">Statistics</a></li> +<li class="toctree-l1"><a class="reference internal" href="result_visualization/20_timePlot.html">TimePlot</a></li> +</ul> +</div> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="40_pcm_eval.html" class="btn btn-neutral float-left" title="PCM Evaluation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="result_visualization/10_statistics.html" class="btn btn-neutral float-right" title="Statistics" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/other_information/gui_user_guide/result_visualization/10_statistics.html b/content/html/other_information/gui_user_guide/result_visualization/10_statistics.html index c52d1ba4b5b021c511131ca0816810210f1c32a8..e3f6a1c71044c18ce73d9f83bc042a7a990c961e 100644 --- a/content/html/other_information/gui_user_guide/result_visualization/10_statistics.html +++ b/content/html/other_information/gui_user_guide/result_visualization/10_statistics.html @@ -1,214 +1,215 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Statistics — openPASS Documentation</title> - <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../../_static/doctools.js?v=888ff710"></script> - <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../../genindex.html" /> - <link rel="search" title="Search" href="../../../search.html" /> - <link rel="next" title="TimePlot" href="20_timePlot.html" /> - <link rel="prev" title="Result Visualization" href="../50_result_visualization.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../../index.html" class="icon icon-home"> - openPASS - <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../../10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../20_glossary.html">Glossary</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../../30_gui_plugins.html">GUI Plugins</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../10_projects.html">Project</a></li> -<li class="toctree-l2"><a class="reference internal" href="../20_system_editor.html">System Editor</a></li> -<li class="toctree-l2"><a class="reference internal" href="../30_pcm_sim.html">PCM Simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="../40_pcm_eval.html">PCM Evaluation</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="../50_result_visualization.html">Result Visualization</a><ul class="current"> -<li class="toctree-l3 current"><a class="current reference internal" href="#">Statistics</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#loading-results">Loading Results</a></li> -<li class="toctree-l4"><a class="reference internal" href="#evaluating-results">Evaluating Results</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="20_timePlot.html">TimePlot</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../../40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../../30_gui_plugins.html">GUI Plugins</a></li> - <li class="breadcrumb-item"><a href="../50_result_visualization.html">Result Visualization</a></li> - <li class="breadcrumb-item active">Statistics</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../../_sources/other_information/gui_user_guide/result_visualization/10_statistics.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="statistics"> -<span id="id1"></span><h1>Statistics<a class="headerlink" href="#statistics" title="Link to this heading">ïƒ</a></h1> -<p>This plugin is used to calculate and show statistics and histograms from a result folder.</p> -<section id="loading-results"> -<h2>Loading Results<a class="headerlink" href="#loading-results" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Click <code class="docutils literal notranslate"><span class="pre">Add</span> <span class="pre">result</span> <span class="pre">folder</span></code> to choose a result folder of which the statistics shall be calculated.</p></li> -</ul> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>It is possible to add multiple result folders.</p> -<blockquote> -<div><ul class="simple"> -<li><p>Subsequently selected folders are added to the list in the TreeView</p></li> -<li><p>Histograms will be calculated for each folder including subfolders and will be shown in a new row</p></li> -</ul> -</div></blockquote> -</div> -<img alt="../../../_images/overview3.png" src="../../../_images/overview3.png" /> -</section> -<section id="evaluating-results"> -<h2>Evaluating Results<a class="headerlink" href="#evaluating-results" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Select a result folder for showing their statistics and histograms</p></li> -<li><p>Histograms over a folder are shown in one (scrollable) row of images</p></li> -<li><p>Selecting the white background of the folder list clears the histogram preview panel</p></li> -<li><p>Each row of histograms contains the contents of the corresponding folder in the folder list</p></li> -<li><p>Adding a new folder re-calculates all histograms for each column using a common x-range</p></li> -</ul> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Select an input folder that contains files in the following format</p> -<blockquote> -<div><ul class="simple"> -<li><p>Relevant files need ending <code class="docutils literal notranslate"><span class="pre">.csv`</span></code></p></li> -<li><p>Columns can be separated by comma, semicolon or space</p></li> -<li><p>First two columns need <em>frame</em> and <em>id*</em> in header</p></li> -</ul> -</div></blockquote> -</div> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>For all files in a selected folder and subfolders the headers are read in</p> -<blockquote> -<div><ul class="simple"> -<li><p>All of these files consistent with the first read header are used to calculate histograms for all columns</p></li> -<li><p>Files with non-consistent headers are ignored</p></li> -</ul> -</div></blockquote> -</div> -<img alt="../../../_images/select3.png" src="../../../_images/select3.png" /> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../50_result_visualization.html" class="btn btn-neutral float-left" title="Result Visualization" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="20_timePlot.html" class="btn btn-neutral float-right" title="TimePlot" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Statistics — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../../_static/doctools.js?v=888ff710"></script> + <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../../genindex.html" /> + <link rel="search" title="Search" href="../../../search.html" /> + <link rel="next" title="TimePlot" href="20_timePlot.html" /> + <link rel="prev" title="Result Visualization" href="../50_result_visualization.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../../index.html" class="icon icon-home"> + openPASS + <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../../10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../20_glossary.html">Glossary</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../../30_gui_plugins.html">GUI Plugins</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="../10_projects.html">Project</a></li> +<li class="toctree-l2"><a class="reference internal" href="../20_system_editor.html">System Editor</a></li> +<li class="toctree-l2"><a class="reference internal" href="../30_pcm_sim.html">PCM Simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="../40_pcm_eval.html">PCM Evaluation</a></li> +<li class="toctree-l2 current"><a class="reference internal" href="../50_result_visualization.html">Result Visualization</a><ul class="current"> +<li class="toctree-l3 current"><a class="current reference internal" href="#">Statistics</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#loading-results">Loading Results</a></li> +<li class="toctree-l4"><a class="reference internal" href="#evaluating-results">Evaluating Results</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="20_timePlot.html">TimePlot</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../../40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../../30_gui_plugins.html">GUI Plugins</a></li> + <li class="breadcrumb-item"><a href="../50_result_visualization.html">Result Visualization</a></li> + <li class="breadcrumb-item active">Statistics</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../../_sources/other_information/gui_user_guide/result_visualization/10_statistics.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="statistics"> +<span id="id1"></span><h1>Statistics<a class="headerlink" href="#statistics" title="Link to this heading">ïƒ</a></h1> +<p>This plugin is used to calculate and show statistics and histograms from a result folder.</p> +<section id="loading-results"> +<h2>Loading Results<a class="headerlink" href="#loading-results" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Click <code class="docutils literal notranslate"><span class="pre">Add</span> <span class="pre">result</span> <span class="pre">folder</span></code> to choose a result folder of which the statistics shall be calculated.</p></li> +</ul> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>It is possible to add multiple result folders.</p> +<blockquote> +<div><ul class="simple"> +<li><p>Subsequently selected folders are added to the list in the TreeView</p></li> +<li><p>Histograms will be calculated for each folder including subfolders and will be shown in a new row</p></li> +</ul> +</div></blockquote> +</div> +<img alt="../../../_images/overview3.png" src="../../../_images/overview3.png" /> +</section> +<section id="evaluating-results"> +<h2>Evaluating Results<a class="headerlink" href="#evaluating-results" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Select a result folder for showing their statistics and histograms</p></li> +<li><p>Histograms over a folder are shown in one (scrollable) row of images</p></li> +<li><p>Selecting the white background of the folder list clears the histogram preview panel</p></li> +<li><p>Each row of histograms contains the contents of the corresponding folder in the folder list</p></li> +<li><p>Adding a new folder re-calculates all histograms for each column using a common x-range</p></li> +</ul> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Select an input folder that contains files in the following format</p> +<blockquote> +<div><ul class="simple"> +<li><p>Relevant files need ending <code class="docutils literal notranslate"><span class="pre">.csv`</span></code></p></li> +<li><p>Columns can be separated by comma, semicolon or space</p></li> +<li><p>First two columns need <em>frame</em> and <em>id*</em> in header</p></li> +</ul> +</div></blockquote> +</div> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>For all files in a selected folder and subfolders the headers are read in</p> +<blockquote> +<div><ul class="simple"> +<li><p>All of these files consistent with the first read header are used to calculate histograms for all columns</p></li> +<li><p>Files with non-consistent headers are ignored</p></li> +</ul> +</div></blockquote> +</div> +<img alt="../../../_images/select3.png" src="../../../_images/select3.png" /> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../50_result_visualization.html" class="btn btn-neutral float-left" title="Result Visualization" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="20_timePlot.html" class="btn btn-neutral float-right" title="TimePlot" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/other_information/gui_user_guide/result_visualization/20_timePlot.html b/content/html/other_information/gui_user_guide/result_visualization/20_timePlot.html index 86a3d602368e21f651e8b7f4b88343b8e4c849af..3720e689877a82c053664f98856b6430c683ddc0 100644 --- a/content/html/other_information/gui_user_guide/result_visualization/20_timePlot.html +++ b/content/html/other_information/gui_user_guide/result_visualization/20_timePlot.html @@ -1,205 +1,206 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>TimePlot — openPASS Documentation</title> - <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../../_static/doctools.js?v=888ff710"></script> - <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../../genindex.html" /> - <link rel="search" title="Search" href="../../../search.html" /> - <link rel="next" title="License" href="../../40_license.html" /> - <link rel="prev" title="Statistics" href="10_statistics.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../../index.html" class="icon icon-home"> - openPASS - <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../../10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../20_glossary.html">Glossary</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../../30_gui_plugins.html">GUI Plugins</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../10_projects.html">Project</a></li> -<li class="toctree-l2"><a class="reference internal" href="../20_system_editor.html">System Editor</a></li> -<li class="toctree-l2"><a class="reference internal" href="../30_pcm_sim.html">PCM Simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="../40_pcm_eval.html">PCM Evaluation</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="../50_result_visualization.html">Result Visualization</a><ul class="current"> -<li class="toctree-l3"><a class="reference internal" href="10_statistics.html">Statistics</a></li> -<li class="toctree-l3 current"><a class="current reference internal" href="#">TimePlot</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#loading-results">Loading Results</a></li> -<li class="toctree-l4"><a class="reference internal" href="#evaluating-results">Evaluating Results</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../../40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../../30_gui_plugins.html">GUI Plugins</a></li> - <li class="breadcrumb-item"><a href="../50_result_visualization.html">Result Visualization</a></li> - <li class="breadcrumb-item active">TimePlot</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../../_sources/other_information/gui_user_guide/result_visualization/20_timePlot.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="timeplot"> -<span id="id1"></span><h1>TimePlot<a class="headerlink" href="#timeplot" title="Link to this heading">ïƒ</a></h1> -<p>This plugin is used to plot trajectories (position, velocity, etc.) over time.</p> -<section id="loading-results"> -<h2>Loading Results<a class="headerlink" href="#loading-results" title="Link to this heading">ïƒ</a></h2> -<ul class="simple"> -<li><p>Click <code class="docutils literal notranslate"><span class="pre">Select</span> <span class="pre">result</span> <span class="pre">folder</span></code> to choose a result folder that contains files in the required format (see below) to be plotted.</p></li> -</ul> -<img alt="../../../_images/overview4.png" src="../../../_images/overview4.png" /> -</section> -<section id="evaluating-results"> -<h2>Evaluating Results<a class="headerlink" href="#evaluating-results" title="Link to this heading">ïƒ</a></h2> -<ul> -<li><p>Select an input folder that contains files in this format:</p> -<blockquote> -<div><ul class="simple"> -<li><p>Relevant files need ending <code class="docutils literal notranslate"><span class="pre">.csv</span></code></p></li> -<li><p>Columns can be separated by comma, semicolon or space</p></li> -<li><p>First two columns need <em>frame</em> and <em>id*</em> in header</p></li> -</ul> -</div></blockquote> -</li> -<li><p>Select table column to be plotted (up to three)</p></li> -<li><p>For each open tab the selected columns are plotted</p> -<blockquote> -<div><ul class="simple"> -<li><p>first column selected is shown on the x-axis</p></li> -<li><p>second column selected is shown on the y-axis</p></li> -<li><p>third column selected is shown on the right y-axis</p></li> -</ul> -</div></blockquote> -</li> -</ul> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<ul class="simple"> -<li><p>The track_id items can be selected individually</p></li> -<li><p>Selecting the lowest subfolders yields tabs for all contained tracks</p></li> -<li><p>Selections can be combined with <code class="docutils literal notranslate"><span class="pre">Ctrl+select</span></code> or <code class="docutils literal notranslate"><span class="pre">Shift+select</span></code></p></li> -</ul> -</div> -<img alt="../../../_images/select2.png" src="../../../_images/select2.png" /> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="10_statistics.html" class="btn btn-neutral float-left" title="Statistics" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="../../40_license.html" class="btn btn-neutral float-right" title="License" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>TimePlot — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../../_static/doctools.js?v=888ff710"></script> + <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../../genindex.html" /> + <link rel="search" title="Search" href="../../../search.html" /> + <link rel="next" title="License" href="../../40_license.html" /> + <link rel="prev" title="Statistics" href="10_statistics.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../../index.html" class="icon icon-home"> + openPASS + <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../../10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../20_glossary.html">Glossary</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../../30_gui_plugins.html">GUI Plugins</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="../10_projects.html">Project</a></li> +<li class="toctree-l2"><a class="reference internal" href="../20_system_editor.html">System Editor</a></li> +<li class="toctree-l2"><a class="reference internal" href="../30_pcm_sim.html">PCM Simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="../40_pcm_eval.html">PCM Evaluation</a></li> +<li class="toctree-l2 current"><a class="reference internal" href="../50_result_visualization.html">Result Visualization</a><ul class="current"> +<li class="toctree-l3"><a class="reference internal" href="10_statistics.html">Statistics</a></li> +<li class="toctree-l3 current"><a class="current reference internal" href="#">TimePlot</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#loading-results">Loading Results</a></li> +<li class="toctree-l4"><a class="reference internal" href="#evaluating-results">Evaluating Results</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../../40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../../30_gui_plugins.html">GUI Plugins</a></li> + <li class="breadcrumb-item"><a href="../50_result_visualization.html">Result Visualization</a></li> + <li class="breadcrumb-item active">TimePlot</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../../_sources/other_information/gui_user_guide/result_visualization/20_timePlot.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="timeplot"> +<span id="id1"></span><h1>TimePlot<a class="headerlink" href="#timeplot" title="Link to this heading">ïƒ</a></h1> +<p>This plugin is used to plot trajectories (position, velocity, etc.) over time.</p> +<section id="loading-results"> +<h2>Loading Results<a class="headerlink" href="#loading-results" title="Link to this heading">ïƒ</a></h2> +<ul class="simple"> +<li><p>Click <code class="docutils literal notranslate"><span class="pre">Select</span> <span class="pre">result</span> <span class="pre">folder</span></code> to choose a result folder that contains files in the required format (see below) to be plotted.</p></li> +</ul> +<img alt="../../../_images/overview4.png" src="../../../_images/overview4.png" /> +</section> +<section id="evaluating-results"> +<h2>Evaluating Results<a class="headerlink" href="#evaluating-results" title="Link to this heading">ïƒ</a></h2> +<ul> +<li><p>Select an input folder that contains files in this format:</p> +<blockquote> +<div><ul class="simple"> +<li><p>Relevant files need ending <code class="docutils literal notranslate"><span class="pre">.csv</span></code></p></li> +<li><p>Columns can be separated by comma, semicolon or space</p></li> +<li><p>First two columns need <em>frame</em> and <em>id*</em> in header</p></li> +</ul> +</div></blockquote> +</li> +<li><p>Select table column to be plotted (up to three)</p></li> +<li><p>For each open tab the selected columns are plotted</p> +<blockquote> +<div><ul class="simple"> +<li><p>first column selected is shown on the x-axis</p></li> +<li><p>second column selected is shown on the y-axis</p></li> +<li><p>third column selected is shown on the right y-axis</p></li> +</ul> +</div></blockquote> +</li> +</ul> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<ul class="simple"> +<li><p>The track_id items can be selected individually</p></li> +<li><p>Selecting the lowest subfolders yields tabs for all contained tracks</p></li> +<li><p>Selections can be combined with <code class="docutils literal notranslate"><span class="pre">Ctrl+select</span></code> or <code class="docutils literal notranslate"><span class="pre">Shift+select</span></code></p></li> +</ul> +</div> +<img alt="../../../_images/select2.png" src="../../../_images/select2.png" /> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="10_statistics.html" class="btn btn-neutral float-left" title="Statistics" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../../40_license.html" class="btn btn-neutral float-right" title="License" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/search.html b/content/html/search.html index 55ea7e598563c41be98bbbef6e082f84bee198db..4a45585df1eab64f72f560ef7c97b797d70ff6a3 100644 --- a/content/html/search.html +++ b/content/html/search.html @@ -1,159 +1,159 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Search — openPASS Documentation</title> - <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="_static/openPASS.ico"/> - - <!--[if lt IE 9]> - <script src="_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="_static/jquery.js?v=5d32c60e"></script> - <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="_static/documentation_options.js?v=afa6e5cd"></script> - <script src="_static/doctools.js?v=888ff710"></script> - <script src="_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="_static/tabs.js?v=3030b3cb"></script> - <script src="_static/js/theme.js"></script> - <script src="_static/searchtools.js"></script> - <script src="_static/language_data.js"></script> - <link rel="index" title="Index" href="genindex.html" /> - <link rel="search" title="Search" href="#" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="index.html" class="icon icon-home"> - openPASS - <img src="_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="#" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="user_guide/50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Search</li> - <li class="wy-breadcrumbs-aside"> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <noscript> - <div id="fallback" class="admonition warning"> - <p class="last"> - Please activate JavaScript to enable the search functionality. - </p> - </div> - </noscript> - - - <div id="search-results"> - - </div> - - </div> - </div> - <footer> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - <script> - jQuery(function() { Search.loadIndex("searchindex.js"); }); - </script> - - <script id="searchindexloader"></script> - - - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="./"> +<head> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Search — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="_static/openPASS.ico"/> + + <!--[if lt IE 9]> + <script src="_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="_static/jquery.js?v=5d32c60e"></script> + <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="_static/documentation_options.js?v=6efca38a"></script> + <script src="_static/doctools.js?v=888ff710"></script> + <script src="_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="_static/js/theme.js"></script> + <script src="_static/searchtools.js"></script> + <script src="_static/language_data.js"></script> + <link rel="index" title="Index" href="genindex.html" /> + <link rel="search" title="Search" href="#" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="index.html" class="icon icon-home"> + openPASS + <img src="_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="#" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="user_guide/50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Search</li> + <li class="wy-breadcrumbs-aside"> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <noscript> + <div id="fallback" class="admonition warning"> + <p class="last"> + Please activate JavaScript to enable the search functionality. + </p> + </div> + </noscript> + + + <div id="search-results"> + + </div> + + </div> + </div> + <footer> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + <script> + jQuery(function() { Search.loadIndex("searchindex.js"); }); + </script> + + <script id="searchindexloader"></script> + + + +</body> </html> \ No newline at end of file diff --git a/content/html/searchindex.js b/content/html/searchindex.js index 063def1fa49997707869fb9c05d665760fbe4100..8ff9cad1d0c37f974c3d0ee72db32fd0a1869a5e 100644 --- a/content/html/searchindex.js +++ b/content/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["advanced_topics/20_simulator_advanced", "advanced_topics/30_testing", "advanced_topics/simulator/agent_components", "advanced_topics/simulator/coordinate_systems", "advanced_topics/simulator/event_detector", "advanced_topics/simulator/scenario_actions", "advanced_topics/simulator/simulation", "advanced_topics/simulator/spawner_features", "advanced_topics/simulator/system_structure_and_parameterization_(SSP)", "advanced_topics/simulator/world_osi", "developer_information/10_ide_support", "developer_information/20_documentation", "developer_information/30_coding_conventions", "developer_information/ide_support/30_vscode", "index", "installation_guide/10_getting_started", "installation_guide/15_system_requirements", "installation_guide/20_install_prerequisites", "installation_guide/30_install_openpass", "installation_guide/50_further_guidance", "installation_guide/60_conan", "installation_guide/further_guidance/10_cmake", "other_information/10_external_dependencies", "other_information/20_glossary", "other_information/30_gui_plugins", "other_information/40_license", "other_information/gui_user_guide/10_projects", "other_information/gui_user_guide/20_system_editor", "other_information/gui_user_guide/30_pcm_sim", "other_information/gui_user_guide/40_pcm_eval", "other_information/gui_user_guide/50_result_visualization", "other_information/gui_user_guide/result_visualization/10_statistics", "other_information/gui_user_guide/result_visualization/20_timePlot", "user_guide/10_overview", "user_guide/20_tutorials", "user_guide/30_configs_in_depth", "user_guide/40_outputs_in_depth", "user_guide/50_scenario_simulation", "user_guide/configs/profilescatalog", "user_guide/configs/scenario", "user_guide/configs/scenario_api_support", "user_guide/configs/scenery", "user_guide/configs/simulationconfig", "user_guide/configs/staticsystemconfig", "user_guide/configs/systemconfigblueprint", "user_guide/outputs/observation_log", "user_guide/outputs/observation_repository", "user_guide/sim_user_guide/10_overview", "user_guide/sim_user_guide/20_components", "user_guide/sim_user_guide/components/algorithm_lateral", "user_guide/sim_user_guide/components/algorithm_longitudinal", "user_guide/sim_user_guide/components/driver", "user_guide/sim_user_guide/components/dynamics_regular_driving", "user_guide/sim_user_guide/components/dynamics_scenario", "user_guide/sim_user_guide/components/sensor_driver", "user_guide/sim_user_guide/components/spawner", "user_guide/sim_user_guide/components/vehicle", "user_guide/tutorials/10_scenario_simulation", "user_guide/tutorials/20_pcm_simulation"], "filenames": ["advanced_topics/20_simulator_advanced.rst", "advanced_topics/30_testing.rst", "advanced_topics/simulator/agent_components.rst", "advanced_topics/simulator/coordinate_systems.rst", "advanced_topics/simulator/event_detector.rst", "advanced_topics/simulator/scenario_actions.rst", "advanced_topics/simulator/simulation.rst", "advanced_topics/simulator/spawner_features.rst", "advanced_topics/simulator/system_structure_and_parameterization_(SSP).rst", "advanced_topics/simulator/world_osi.rst", "developer_information/10_ide_support.rst", "developer_information/20_documentation.rst", "developer_information/30_coding_conventions.rst", "developer_information/ide_support/30_vscode.rst", "index.rst", "installation_guide/10_getting_started.rst", "installation_guide/15_system_requirements.rst", "installation_guide/20_install_prerequisites.rst", "installation_guide/30_install_openpass.rst", "installation_guide/50_further_guidance.rst", "installation_guide/60_conan.rst", "installation_guide/further_guidance/10_cmake.rst", "other_information/10_external_dependencies.rst", "other_information/20_glossary.rst", "other_information/30_gui_plugins.rst", "other_information/40_license.rst", "other_information/gui_user_guide/10_projects.rst", "other_information/gui_user_guide/20_system_editor.rst", "other_information/gui_user_guide/30_pcm_sim.rst", "other_information/gui_user_guide/40_pcm_eval.rst", "other_information/gui_user_guide/50_result_visualization.rst", "other_information/gui_user_guide/result_visualization/10_statistics.rst", "other_information/gui_user_guide/result_visualization/20_timePlot.rst", "user_guide/10_overview.rst", "user_guide/20_tutorials.rst", "user_guide/30_configs_in_depth.rst", "user_guide/40_outputs_in_depth.rst", "user_guide/50_scenario_simulation.rst", "user_guide/configs/profilescatalog.rst", "user_guide/configs/scenario.rst", "user_guide/configs/scenario_api_support.rst", "user_guide/configs/scenery.rst", "user_guide/configs/simulationconfig.rst", "user_guide/configs/staticsystemconfig.rst", "user_guide/configs/systemconfigblueprint.rst", "user_guide/outputs/observation_log.rst", "user_guide/outputs/observation_repository.rst", "user_guide/sim_user_guide/10_overview.rst", "user_guide/sim_user_guide/20_components.rst", "user_guide/sim_user_guide/components/algorithm_lateral.rst", "user_guide/sim_user_guide/components/algorithm_longitudinal.rst", "user_guide/sim_user_guide/components/driver.rst", "user_guide/sim_user_guide/components/dynamics_regular_driving.rst", "user_guide/sim_user_guide/components/dynamics_scenario.rst", "user_guide/sim_user_guide/components/sensor_driver.rst", "user_guide/sim_user_guide/components/spawner.rst", "user_guide/sim_user_guide/components/vehicle.rst", "user_guide/tutorials/10_scenario_simulation.rst", "user_guide/tutorials/20_pcm_simulation.rst"], "titles": ["Simulator", "EndToEnd Test Framework", "Agent Components", "Coordinate Systems", "EventDetector", "Mapping of OpenSCENARIO Actions", "Simulation", "Spawner Features", "System Structure and Parameterization (SSP)", "World_OSI", "IDE Support", "Documentation Concept", "Coding Guidelines", "Working with Visual Studio Code", "openPASS Documentation", "Getting Started", "System Requirements", "Installing Prerequisites", "Installing openPASS", "Further Guidance", "Building with Conan", "CMake Variables and Options", "External Dependencies", "Glossary", "GUI Plugins", "License", "Project", "System Editor", "PCM Simulation", "PCM Evaluation", "Result Visualization", "Statistics", "TimePlot", "Overview", "Tutorials", "Configs in Depth", "Outputs in Depth", "Simulator", "ProfilesCatalog", "Scenario", "Scenario API Support", "Scenery", "SimulationConfig", "Static SystemConfig", "SystemConfigBlueprint", "Observation_Log", "Observation_EntityRepository", "Overview", "Component View", "Algorithm_Lateral", "Algorithm_Longitudinal", "Driver", "Dynamics_RegularDriving", "Dynamics_Scenario", "Sensor_Driver", "Spawner", "VehicleComponents", "Scenario-based simulation", "PCM Simulation"], "terms": {"agent": [0, 1, 4, 6, 8, 9, 23, 27, 28, 33, 38, 39, 42, 43, 44, 51, 52, 53, 54, 55, 56, 57], "compon": [0, 5, 6, 8, 12, 21, 23, 27, 33, 37, 43, 44, 45, 49, 51, 56, 57], "action_longitudinaldriv": [0, 44], "action_secondarydriv": 0, "agentupdat": [0, 44, 45], "algorithm_later": [0, 37, 44, 48, 52], "algorithm_longitudin": [0, 37, 48, 52], "algorithmcar2xsend": [0, 44], "dynamics_collis": [0, 44], "dynamics_scenario": [0, 37, 44, 48], "dynamics_regulardriv": [0, 37, 44, 45, 48, 49, 50], "limiteraccelerationvehiclecompon": [0, 42, 44], "openscenarioact": [0, 44], "parameters_vehicl": [0, 49, 50, 52], "vehicl": [0, 3, 4, 8, 23, 27, 28, 33, 38, 39, 40, 44, 45, 48, 49, 50, 51, 52, 54, 56, 57], "model": [0, 4, 8, 23, 33, 38, 39, 45, 48, 49, 51, 52, 56], "relat": [0, 8, 9, 12, 13, 20, 21, 33, 45, 49, 50, 52, 56], "paramet": [0, 1, 4, 8, 12, 14, 23, 27, 33, 38, 39, 42, 43, 45, 46, 47, 49, 50, 51, 52, 55, 56, 57], "powertrain": [0, 50, 52, 56], "steer": [0, 27, 44, 45, 49, 51, 52, 54, 56], "sensor_driv": [0, 37, 44, 45, 48, 49, 50], "sensor_osi": [0, 3, 44, 45], "sensorgeometric2d": [0, 48], "function": [0, 6, 8, 9, 12, 13, 22, 23, 33, 39, 40, 48, 49, 50, 53, 56, 57], "case": [0, 1, 4, 8, 9, 12, 26, 27, 28, 33, 38, 39, 45, 54, 55, 56, 57], "visual": [0, 10, 15, 18, 21, 24, 29, 33, 42, 45, 46, 56], "obstruct": [0, 45, 56], "sensorfusionosi": 0, "signalpriorit": [0, 44], "componentcontrol": [0, 39, 44], "overview": [0, 6, 11, 12, 14, 22, 37, 48, 56, 57], "state": [0, 4, 5, 6, 9, 17, 38, 39, 44, 45, 47, 49, 50, 51, 52, 53, 56, 57], "handl": [0, 6, 7, 8, 12, 38, 39, 44, 56], "insid": [0, 8, 13, 21, 39, 42, 54, 55, 56], "us": [0, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 20, 21, 23, 26, 27, 28, 29, 31, 32, 33, 38, 39, 42, 43, 44, 45, 49, 50, 51, 52, 54, 55, 56, 57], "signal": [0, 6, 8, 12, 39, 41, 44, 45, 49, 52, 56], "coordin": [0, 2, 4, 7, 9, 28, 38, 39, 45, 49, 52, 54, 56], "system": [0, 1, 2, 4, 9, 12, 13, 14, 15, 17, 18, 20, 21, 23, 24, 28, 33, 38, 43, 44, 49, 50, 52, 56, 57], "world": [0, 2, 4, 6, 12, 22, 33, 39, 42, 45, 48, 49, 54, 55, 56, 57], "road": [0, 22, 23, 33, 39, 41, 42, 45, 46, 49, 50, 51, 52, 54, 55, 56], "sensor": [0, 2, 8, 12, 22, 27, 33, 42, 44, 45, 56, 57], "convers": [0, 50], "between": [0, 1, 2, 4, 6, 7, 8, 9, 13, 14, 22, 27, 33, 42, 43, 44, 45, 49, 50, 51, 52, 53, 54, 55, 56], "sensordata": [0, 2, 8, 44, 56], "eventdetector": [0, 6, 45], "collisiondetector": 0, "map": [0, 8, 12, 46, 50, 52, 56], "openscenario": [0, 2, 9, 17, 33, 39, 44, 45, 46, 53, 56], "action": [0, 2, 12, 26, 27, 33, 44, 53], "acquirepositionact": 0, "assignrouteact": [0, 39], "customcommandact": [0, 39, 44], "followtrajectoryact": [0, 53], "lanechangeact": [0, 53], "speedact": [0, 53], "teleportact": 0, "trafficsignalact": 0, "trafficsignalstateact": 0, "trafficsinkact": 0, "visibilityact": 0, "command": [0, 5, 11, 12, 13, 17, 18, 20, 39, 42, 49, 50], "line": [0, 2, 9, 12, 13, 14, 17, 21, 41, 42], "argument": [0, 1, 12, 20, 42], "schedul": [0, 2, 8, 43, 44], "execut": [0, 2, 4, 9, 11, 12, 13, 17, 18, 26, 33, 39, 44, 47, 53, 56, 57], "phase": [0, 23, 39, 56], "task": [0, 2, 9, 12, 20, 22, 56], "type": [0, 1, 2, 4, 5, 8, 9, 12, 13, 21, 26, 38, 39, 41, 42, 43, 44, 45, 46, 51, 54, 55, 56], "descript": [0, 1, 2, 4, 8, 12, 13, 26, 33, 38, 39, 42, 43, 44, 45, 46, 48, 51, 54, 55, 56, 57], "prioriti": [0, 1, 2, 8, 12, 42, 43, 56], "spawner": [0, 6, 33, 37, 38, 48, 57], "featur": [0, 8, 12, 21, 22, 39, 48, 54], "prerunspawn": [0, 48], "spawn": [0, 6, 39, 46, 55, 57], "lane": [0, 1, 2, 22, 38, 39, 41, 42, 45, 46, 51, 53, 54, 55, 56, 57], "rang": [0, 1, 2, 31, 42, 44, 45, 46, 50, 55, 56], "traffic": [0, 14, 22, 23, 33, 38, 39, 47, 49, 51, 54, 55, 57], "stochast": [0, 13, 33, 38, 39, 44, 55, 57], "runtimespawn": [0, 48], "structur": [0, 2, 11, 12, 15, 17, 22, 29, 41, 43, 54], "parameter": [0, 1, 21, 39, 43, 48, 56], "ssp": [0, 48], "input": [0, 1, 2, 6, 12, 31, 32, 35, 38, 43, 44, 47, 49, 52, 56, 57], "packag": [0, 1, 11, 13, 20, 21, 56], "ssd": 0, "definit": [0, 1, 9, 12, 33, 38, 39, 41, 42, 49, 56], "implement": [0, 2, 5, 9, 12, 21, 33, 39, 40, 50, 51, 53], "pars": [0, 1, 6, 22, 56], "osi": [0, 2, 3, 9, 13, 21, 23, 43, 56], "connector": [0, 42], "object": [0, 2, 3, 4, 9, 22, 23, 33, 41, 45, 46, 54, 56, 57], "openpass": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "limit": [0, 1, 2, 22, 33, 50, 56], "output": [0, 1, 2, 6, 7, 12, 14, 18, 21, 39, 42, 43, 44, 49, 50, 53, 56, 57], "folderstructur": 0, "writemessageparamet": 0, "world_osi": [0, 42], "sampl": [0, 2, 5, 33, 43, 45, 47, 55], "geometri": [0, 41, 54], "local": [0, 1, 4, 13, 17, 18, 20, 39, 43], "basic": [0, 7, 13, 15, 20, 42, 45, 56], "sequenc": [0, 1, 6, 45, 55], "sign": [0, 33, 38, 54], "mark": [0, 21, 22, 54, 57], "trafficlight": [0, 45, 54], "getobstruct": [0, 56], "work": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "group": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "open": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "mingw": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "64": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "bit": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "shell": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "3": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "20": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "0": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "6": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "2": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "v1": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "12": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "1": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "14": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "72": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "5": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "15": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "9": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "13": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "27": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "4": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "7": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "pyopenpass": [1, 21], "thi": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 38, 39, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "tool": [1, 7, 8, 13, 14, 17, 22, 23, 47], "act": [1, 9, 11, 21, 33, 39, 45, 48, 49, 50, 52, 53, 55, 56], "executor": 1, "complet": [1, 8, 23, 27, 33, 35, 57], "set": [1, 2, 3, 7, 8, 10, 11, 12, 14, 15, 17, 18, 20, 21, 22, 23, 28, 33, 38, 39, 40, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 55, 56, 57], "config": [1, 2, 6, 11, 13, 14, 17, 26, 33, 42, 56, 57], "simul": [1, 2, 7, 8, 9, 11, 13, 14, 15, 16, 17, 18, 20, 21, 23, 24, 27, 29, 30, 33, 34, 36, 38, 39, 41, 42, 43, 44, 45, 47, 49, 50, 51, 52, 53, 55, 56], "The": [1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 20, 21, 22, 24, 26, 27, 28, 29, 30, 32, 33, 38, 39, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 54, 55, 56, 57], "i": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 32, 33, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "locat": [1, 3, 8, 9, 11, 12, 13, 14, 17, 18, 20, 26, 39, 55, 57], "sim": [1, 11, 13, 39, 56, 57], "endtoendtest": 1, "base": [1, 2, 4, 6, 8, 9, 12, 13, 14, 17, 18, 21, 22, 23, 24, 26, 27, 28, 29, 30, 33, 34, 39, 42, 44, 46, 47, 49, 52, 53, 54, 55, 56], "python": [1, 17, 20, 21], "some": [1, 11, 13, 17, 21, 22, 33, 41, 45, 49, 50, 51, 55, 57], "addit": [1, 4, 8, 9, 11, 12, 13, 17, 21, 28, 38, 39, 41, 45, 48, 49, 50, 56], "modul": [1, 2, 6, 21, 23, 42, 44, 48, 53, 56], "instal": [1, 11, 12, 15, 16, 22, 57], "requir": [1, 2, 7, 8, 9, 11, 13, 14, 15, 17, 18, 20, 21, 27, 32, 33, 38, 41, 43, 44, 49, 50, 51, 55, 56, 57], "can": [1, 2, 4, 6, 8, 9, 11, 12, 13, 14, 17, 18, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 38, 39, 41, 42, 44, 45, 48, 49, 50, 51, 52, 53, 55, 56, 57], "accomplish": 1, "pip": [1, 17, 20], "pleas": [1, 12, 13, 15, 17, 18, 20, 21, 33, 39, 42, 44, 51], "refer": [1, 3, 8, 9, 11, 12, 13, 17, 21, 26, 33, 38, 39, 42, 44, 45, 49, 51, 55, 56], "file": [1, 4, 6, 7, 8, 9, 11, 13, 14, 17, 20, 21, 26, 27, 28, 29, 31, 32, 33, 35, 38, 39, 41, 42, 43, 44, 56, 57], "txt": [1, 11, 17, 20], "code": [1, 10, 11, 14, 15, 17, 18, 20, 21, 22, 27, 28, 56], "repositori": [1, 11, 12, 13, 17, 18, 20, 42, 46, 57], "list": [1, 2, 4, 7, 8, 13, 16, 17, 18, 20, 21, 31, 33, 38, 39, 42, 44, 45, 54, 55, 56, 57], "depend": [1, 2, 6, 9, 12, 13, 14, 18, 20, 21, 23, 26, 28, 33, 38, 39, 42, 44, 49, 50], "see": [1, 2, 8, 9, 11, 12, 13, 17, 18, 19, 20, 22, 23, 26, 29, 32, 33, 38, 39, 42, 44, 45, 47, 49, 56, 57], "instruct": [1, 13, 15, 17, 18, 20, 22, 56, 57], "checkout": [1, 17, 22, 57], "directli": [1, 8, 12, 17, 21, 27, 39, 42, 50, 57], "pass": [1, 8, 20, 38, 52, 56], "r": [1, 2, 9, 28, 39, 45, 49, 52, 56], "from": [1, 2, 3, 8, 9, 11, 12, 13, 14, 17, 18, 20, 21, 22, 26, 28, 31, 33, 38, 39, 42, 44, 45, 46, 47, 49, 50, 51, 52, 54, 55, 56, 57], "try": [1, 13, 39, 51], "fetch": [1, 20, 52], "precompil": 1, "default": [1, 6, 8, 12, 13, 15, 17, 18, 20, 21, 28, 38, 39, 42, 46, 51, 53, 54, 55, 56, 57], "If": [1, 2, 8, 9, 12, 13, 17, 18, 21, 22, 26, 33, 38, 39, 41, 42, 44, 45, 46, 50, 53, 55, 56, 57], "unabl": 1, "binari": [1, 8, 20, 56], "current": [1, 2, 3, 8, 9, 11, 12, 13, 18, 22, 27, 28, 33, 38, 40, 42, 45, 49, 50, 51, 52, 53, 54, 55, 56, 57], "environ": [1, 2, 10, 11, 13, 14, 15, 20, 21, 22, 38, 54, 57], "compil": [1, 12, 13, 14, 15, 17, 18, 20, 21, 56], "step": [1, 2, 3, 6, 8, 9, 11, 12, 13, 15, 18, 21, 22, 26, 33, 39, 43, 45, 49, 50, 52, 53, 55, 56, 57], "fail": [1, 9, 21], "numpi": 1, "when": [1, 2, 6, 7, 9, 11, 12, 13, 18, 20, 21, 26, 28, 33, 39, 44, 45, 47, 52, 53, 56, 57], "being": [1, 7, 11, 17, 20, 33, 45, 51, 55], "built": [1, 13, 17, 18, 20, 22, 56], "msys2": [1, 17, 18, 20, 21, 23], "thu": [1, 11, 16, 41, 57], "recommend": [1, 12, 13, 15, 16, 17, 18, 21, 22, 26, 33, 39, 56], "up": [1, 2, 4, 6, 7, 8, 10, 12, 15, 17, 20, 22, 23, 32, 38, 42, 49, 56, 57], "nativ": [1, 12, 13, 17, 20, 23], "window": [1, 12, 13, 15, 16, 17, 18, 20, 21, 22, 23, 38], "perform": [1, 2, 8, 12, 16, 21, 33, 38, 39, 56, 57], "To": [1, 2, 8, 11, 12, 13, 17, 18, 20, 21, 28, 33, 39, 49, 52, 56, 57], "forc": [1, 2, 39, 51, 56, 57], "usag": [1, 8, 11, 13, 14, 17, 21, 39, 49], "specif": [1, 2, 4, 8, 9, 13, 14, 16, 17, 20, 22, 28, 33, 38, 39, 42, 45, 49, 50, 56, 57], "variabl": [1, 2, 8, 9, 12, 13, 15, 17, 18, 19, 22, 49, 50, 52, 54], "python3_execut": 1, "indend": 1, "interpret": [1, 4, 8, 9, 39, 53], "dure": [1, 2, 6, 8, 11, 16, 18, 20, 21, 39, 40, 43, 45, 52, 53, 55, 56], "cmake": [1, 11, 15, 17, 18, 19], "As": [1, 2, 8, 9, 11, 13, 17, 21, 22, 26, 27, 33, 35, 36, 39, 45, 48, 50, 53, 55, 56, 57], "pytest": [1, 17], "plugin": [1, 14, 26, 28, 29, 31, 32, 33], "yet": [1, 8, 12, 15, 22, 33, 35, 40, 52, 57], "standalon": 1, "automat": [1, 7, 8, 13, 21], "find": [1, 13, 18, 26, 44, 57], "its": [1, 2, 3, 4, 6, 8, 9, 13, 17, 20, 21, 22, 39, 49, 50, 51, 52, 54, 56], "entri": [1, 8, 14, 26, 33, 38, 39, 42, 45, 56], "point": [1, 2, 3, 4, 9, 11, 12, 13, 14, 27, 28, 33, 39, 45, 49, 52, 53, 54, 55, 56], "conftest": 1, "py": [1, 11, 20], "next": [1, 2, 6, 8, 11, 13, 18, 26, 33, 39, 45, 53, 54, 55, 57], "name": [1, 2, 5, 6, 8, 9, 11, 13, 20, 26, 28, 33, 38, 39, 40, 41, 42, 44, 45, 46, 51, 55, 56, 57], "test_": 1, "json": [1, 8, 13, 56], "so": [1, 2, 8, 9, 12, 13, 16, 17, 22, 23, 26, 27, 33, 39, 46, 50, 52, 55, 56, 57], "must": [1, 2, 8, 9, 11, 12, 13, 18, 28, 38, 39, 42, 49, 50, 56], "copi": [1, 11, 13, 17, 18, 21, 57], "directori": [1, 8, 11, 12, 13, 17, 18, 21, 26, 39, 56, 57], "befor": [1, 6, 11, 13, 17, 18, 20, 22, 23, 26, 49, 55, 56], "simulation_ex": 1, "path": [1, 6, 7, 11, 12, 17, 18, 20, 21, 33, 39, 42, 43, 45, 56], "e": [1, 2, 4, 6, 8, 9, 11, 12, 13, 17, 20, 21, 22, 23, 27, 28, 33, 38, 39, 42, 45, 46, 49, 51, 52, 54, 56, 57], "g": [1, 2, 6, 8, 11, 12, 13, 17, 18, 20, 21, 22, 23, 28, 33, 39, 45, 46, 50, 52, 54, 56, 57], "bin": [1, 13, 17, 18, 21, 57], "opsimul": [1, 6, 13, 17, 21, 26, 33, 56, 57], "mutual": 1, "mutual_resources_path": 1, "all": [1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 31, 32, 33, 35, 36, 38, 39, 41, 42, 44, 45, 46, 48, 49, 50, 52, 53, 54, 55, 56, 57], "run": [1, 6, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 28, 33, 39, 41, 42, 45, 46, 47, 55, 56, 57], "common": [1, 4, 6, 7, 8, 9, 11, 12, 17, 31, 33, 39, 45, 46, 55, 57], "resourc": [1, 8], "resources_path": 1, "where": [1, 2, 3, 8, 9, 12, 13, 20, 26, 28, 33, 49, 50, 52, 53, 54, 55, 56, 57], "ar": [1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 32, 33, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "retriev": [1, 2, 9, 12, 13, 20, 28], "overrid": [1, 2, 11, 12, 20, 21, 39, 56], "necessari": [1, 8, 11, 12, 13, 17, 18, 20, 21, 22, 23, 50, 56], "report": [1, 13, 21, 53], "report_path": 1, "shall": [1, 7, 11, 17, 21, 28, 31, 35, 38, 47, 56], "store": [1, 4, 8, 9, 17, 39, 45, 54], "allow": [1, 2, 8, 9, 11, 12, 13, 20, 21, 23, 38, 39, 44, 49, 56], "warn": [1, 2, 13, 22, 28, 33, 56], "allowed_warnings_path": 1, "which": [1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 17, 18, 20, 21, 22, 23, 25, 26, 27, 28, 31, 33, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "contain": [1, 2, 4, 7, 8, 9, 11, 12, 14, 15, 23, 26, 31, 32, 33, 38, 39, 40, 42, 44, 45, 46, 49, 52, 54, 55, 56, 57], "ignor": [1, 7, 8, 31, 38, 39, 41, 53, 55], "test_fil": 1, "under": [1, 8, 11, 12, 13, 17, 18, 20, 21, 25, 47, 49, 52, 55, 56, 57], "you": [1, 8, 13, 15, 17, 18, 20, 21, 22, 26, 27, 28, 33, 46, 56, 57], "v": [1, 2, 13, 28, 49, 51, 52], "verbos": [1, 11], "collect": [1, 2, 8, 23, 33, 54], "onli": [1, 2, 4, 6, 8, 9, 11, 12, 13, 16, 17, 21, 22, 26, 27, 28, 38, 40, 42, 44, 45, 46, 50, 53, 55, 56, 57], "avail": [1, 2, 4, 8, 11, 13, 15, 17, 18, 20, 21, 22, 25, 33, 39, 42, 47, 48, 51, 56, 57], "http": [1, 4, 8, 9, 11, 13, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 51, 53, 56], "doc": [1, 11, 12, 13, 14, 18, 20, 21, 43, 57], "org": [1, 8, 9, 11, 17, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 51, 53, 56], "In": [1, 2, 3, 4, 8, 9, 13, 16, 17, 20, 21, 23, 26, 28, 33, 36, 38, 39, 42, 45, 46, 47, 48, 49, 53, 55, 56, 57], "support": [1, 2, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23, 27, 33, 35, 38, 39, 41, 45, 46, 53, 56], "follow": [1, 2, 3, 6, 8, 9, 11, 12, 13, 15, 17, 18, 20, 21, 27, 28, 31, 33, 36, 38, 39, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "option": [1, 9, 12, 13, 15, 17, 18, 19, 20, 22, 26, 33, 39, 42, 43, 46, 55, 56], "provid": [1, 2, 10, 11, 12, 13, 17, 21, 22, 26, 27, 33, 44, 47, 52, 56, 57], "artifact": [1, 20], "For": [1, 2, 3, 8, 9, 12, 13, 17, 18, 20, 21, 22, 26, 28, 31, 32, 33, 38, 39, 42, 44, 45, 47, 50, 51, 54, 56], "each": [1, 2, 3, 4, 6, 8, 9, 12, 21, 28, 31, 32, 33, 39, 42, 44, 45, 46, 47, 50, 53, 55, 56, 57], "specifi": [1, 2, 8, 11, 12, 17, 18, 20, 21, 23, 26, 27, 33, 38, 39, 42, 50, 54, 55, 56, 57], "correspond": [1, 2, 6, 9, 11, 13, 20, 31, 36, 38, 39, 44, 45, 50, 56, 57], "html": [1, 9, 11, 20, 21, 22], "gener": [1, 2, 3, 4, 8, 9, 11, 13, 14, 22, 23, 28, 33, 36, 38, 39, 42, 44, 45, 46, 47, 49, 50, 54, 56, 57], "might": [1, 2, 13, 17, 18, 21, 23, 33, 35, 39, 51, 57], "conflict": 1, "length": [1, 2, 3, 5, 7, 8, 9, 17, 39, 41, 45, 54, 55, 56], "increas": [1, 3, 22, 49, 56], "registri": 1, "kei": [1, 2, 17, 28, 38, 42, 44, 45, 46, 51, 55, 56], "longpathsen": 1, "access": [1, 4, 8, 17, 18, 39, 56], "comput": 1, "hkey_local_machin": 1, "currentcontrolset": 1, "control": [1, 2, 8, 9, 13, 33, 39, 44, 45, 48, 50, 53, 56], "filesystem": [1, 8, 17], "cannot": [1, 2, 9, 13], "disabl": [1, 2, 17, 56], "error": [1, 2, 7, 9, 13, 17, 21, 26, 28, 33, 49, 56], "messag": [1, 8, 11, 13, 22, 26, 43, 56], "often": [1, 10], "mislead": 1, "found": [1, 9, 17, 18, 20, 21, 24, 26, 27, 28, 29, 30, 56, 57], "actual": [1, 2, 8, 9, 13, 20, 21, 33, 39, 49, 51, 52], "exist": [1, 2, 11, 12, 17, 33, 38, 45, 46, 54, 55, 56, 57], "shutil": 1, "etc": [1, 2, 13, 20, 26, 32, 57], "xdist": 1, "invok": [1, 21, 47], "n": [1, 2, 56], "auto": 1, "similar": [1, 23, 49], "pypi": 1, "project": [1, 2, 4, 9, 11, 12, 13, 20, 24], "given": [1, 2, 6, 7, 9, 17, 20, 28, 33, 39, 42, 46, 47, 55, 56, 57], "worker": 1, "displai": [1, 8, 13, 29, 45], "an": [1, 2, 4, 6, 7, 8, 9, 11, 12, 13, 17, 20, 21, 22, 23, 27, 28, 31, 32, 33, 38, 39, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 54, 56, 57], "arbitrari": [1, 7, 39, 56], "order": [1, 2, 6, 8, 9, 11, 13, 17, 55, 57], "shown": [1, 2, 9, 12, 21, 22, 29, 31, 32, 52, 54, 56], "done": [1, 9, 10, 11, 17, 18, 47, 50, 51, 57], "individu": [1, 2, 9, 13, 14, 21, 23, 32, 33, 38, 42, 46, 48, 56], "user": [1, 2, 11, 12, 18, 20, 21, 26, 27, 28, 33, 39, 44, 47, 56, 57], "choic": [1, 8, 17], "three": [1, 2, 3, 8, 17, 26, 32, 39, 56], "differ": [1, 2, 3, 6, 8, 11, 13, 14, 17, 22, 28, 29, 39, 42, 44, 45, 49, 51, 54, 55, 56, 57], "runner": [1, 13], "determin": [1, 2, 4, 7, 9, 11, 45, 48, 51, 52, 55, 56, 57], "check": [1, 2, 4, 7, 9, 12, 13, 15, 17, 33, 39, 50, 52, 56], "x": [1, 2, 3, 4, 5, 8, 9, 22, 28, 31, 32, 39, 41, 44, 45, 52, 56], "one": [1, 2, 6, 7, 8, 9, 11, 21, 23, 28, 31, 33, 38, 39, 43, 44, 45, 49, 53, 55, 56, 57], "more": [1, 2, 4, 7, 8, 9, 11, 12, 13, 17, 18, 20, 21, 22, 23, 33, 39, 42, 44, 55, 56, 57], "split": [1, 6, 46], "two": [1, 2, 3, 4, 7, 8, 9, 11, 17, 21, 27, 31, 32, 38, 44, 45, 47, 50, 55, 56, 57], "section": [1, 2, 8, 9, 10, 11, 12, 13, 14, 17, 18, 19, 22, 33, 38, 39, 42, 44, 45, 57], "singl": [1, 2, 9, 11, 12, 14, 16, 17, 21, 38, 39, 42, 45, 46, 49, 52], "whenev": [1, 6, 52], "possibl": [1, 2, 8, 9, 11, 13, 17, 21, 22, 28, 29, 31, 33, 38, 39, 44, 45, 47, 50, 51, 55, 56], "re": [1, 17, 28, 31, 33, 42], "speed": [1, 2, 38, 47, 50, 51, 52, 54, 56], "analysi": [1, 7, 21], "config_set": 1, "config_set_1": 1, "defin": [1, 2, 3, 6, 8, 9, 12, 13, 20, 21, 28, 33, 38, 39, 42, 43, 44, 45, 46, 47, 50, 53, 55, 56, 57], "config_folder_1": 1, "config_folder_2": 1, "config_set_2": 1, "config_folder_3": 1, "config_set_3": 1, "config_folder_4": 1, "true": [1, 2, 4, 7, 8, 13, 20, 38, 39, 40, 41, 45, 50, 54, 55, 56, 57], "activ": [1, 2, 14, 21, 22, 23, 33, 39, 45, 50, 51, 53, 55, 56, 57], "durat": [1, 6, 39], "30": [1, 9, 22, 41, 42, 44, 45], "how": [1, 8, 11, 15, 17, 18, 22, 33, 42, 45, 46, 48, 49, 51, 55, 57], "long": [1, 21, 33], "invoc": [1, 33, 42, 45, 47, 57], "compar": [1, 9, 29, 47], "1x3": 1, "3x1": 1, "systemconfigfmu": 1, "xml": [1, 2, 8, 22, 26, 27, 33, 38, 39, 42, 45, 56, 57], "xpath": 1, "valu": [1, 2, 3, 6, 7, 8, 9, 13, 20, 21, 28, 33, 38, 39, 42, 43, 44, 45, 46, 50, 51, 52, 54, 55, 56], "id": [1, 2, 4, 5, 8, 9, 12, 13, 14, 19, 20, 23, 31, 32, 38, 40, 41, 42, 43, 45, 46, 54, 56], "fmupath": [1, 56], "need": [1, 2, 3, 8, 9, 12, 13, 17, 18, 21, 22, 26, 27, 31, 32, 33, 38, 39, 41, 42, 43, 44, 49, 50, 55, 56, 57], "replac": [1, 11, 12, 13, 56], "fmu1_staticfmu": 1, "fmu": [1, 5, 8, 22, 23, 39, 43, 48], "fmu2_staticfmu": 1, "10": [1, 9, 13, 16, 20, 21, 22, 38, 39, 44, 52], "100": [1, 2, 39, 41, 43, 44, 45, 52], "count": [1, 28], "agentid": [1, 12], "timestep": [1, 2, 4, 6, 8, 39, 42, 45, 52, 53, 55, 56], "10000": 1, "velocityego": [1, 42, 45, 56], "mean": [1, 2, 9, 13, 17, 26, 33, 38, 39, 42, 44, 47, 52, 53, 55, 56], "success_r": 1, "8": [1, 6, 9, 11, 16, 22, 39, 41, 42], "80": [1, 44, 55], "60": [1, 50, 52], "ram_limit": 1, "512": 1, "ram": [1, 16], "mb": 1, "measur": 1, "It": [1, 2, 3, 8, 12, 13, 17, 20, 23, 26, 29, 31, 33, 38, 39, 41, 42, 43, 45, 49, 50, 52, 53, 54, 55, 56], "also": [1, 2, 3, 7, 8, 9, 11, 12, 13, 17, 18, 19, 22, 27, 33, 38, 39, 44, 45, 46, 49, 50, 51, 53, 55, 56, 57], "success": [1, 9, 12, 13, 17, 26, 45], "exclud": [1, 21], "99": [1, 44], "intern": [1, 2, 9, 21, 22, 33, 39, 46], "datafram": 1, "aggreg": [1, 2, 9], "data": [1, 2, 3, 8, 12, 21, 22, 23, 28, 39, 43, 44, 45, 54, 56], "custom": [1, 11, 13, 20, 21, 39], "languag": [1, 12], "describ": [1, 2, 3, 4, 8, 9, 11, 12, 13, 15, 17, 18, 21, 22, 23, 33, 35, 36, 38, 39, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 54, 55, 57], "below": [1, 2, 4, 11, 12, 13, 16, 17, 20, 32, 42, 44, 45, 46, 51, 56], "gather": [1, 2], "relev": [1, 2, 5, 8, 31, 32, 44, 56, 57], "folder": [1, 8, 11, 13, 17, 18, 20, 21, 26, 29, 31, 32, 33, 56, 57], "typic": [1, 2, 21, 33, 39, 55], "expect": [1, 13, 56], "simulationoutput": [1, 33, 42, 57], "detail": [1, 4, 8, 12, 13, 17, 20, 22, 23, 26, 33, 35, 38, 39, 48, 53, 57], "cyclics_run": 1, "run_id": 1, "csv": [1, 31, 32, 33, 42, 45, 56, 57], "here": [1, 9, 11, 17, 24, 26, 27, 28, 29, 30, 33, 35, 38, 39, 42, 44, 49, 55, 56, 57], "placehold": [1, 11, 20], "number": [1, 2, 9, 11, 12, 20, 22, 28, 33, 38, 39, 42, 44, 45, 47, 50, 56, 57], "cyclic": [1, 33, 44, 57], "posit": [1, 2, 3, 9, 11, 23, 27, 28, 32, 33, 38, 39, 42, 45, 48, 49, 50, 51, 53, 54, 55, 56, 57], "y": [1, 2, 3, 4, 9, 12, 17, 28, 32, 39, 41, 45, 52, 56], "veloc": [1, 2, 3, 4, 5, 28, 32, 39, 45, 49, 50, 51, 52, 53, 54, 55, 56, 57], "independ": [1, 6, 8, 23], "subfold": [1, 31, 32, 56], "pattern": [1, 8, 13], "entiti": [1, 5, 8, 12, 33, 42, 45, 46, 56], "entity_id": 1, "discov": [1, 13], "look": [1, 8, 13, 33, 57], "recursilvi": 1, "within": [1, 2, 6, 8, 9, 12, 13, 17, 18, 21, 23, 33, 38, 39, 41, 42, 46, 50, 55, 56, 57], "them": [1, 2, 4, 8, 12, 20, 23, 43, 44, 45, 56], "everi": [1, 2, 8, 12, 28, 33, 38, 42, 44, 45, 46, 53, 56, 57], "belowstand": 1, "condit": [1, 6, 8, 23, 33, 44, 45, 47, 52, 55, 57], "satisfi": 1, "thei": [1, 6, 7, 8, 12, 13, 17, 20, 22, 28, 33, 39, 42, 43, 44, 45, 48, 50, 55, 57], "merg": [1, 2, 3, 38], "runid": [1, 45], "column": [1, 31, 32, 45, 46], "other": [1, 2, 3, 7, 8, 12, 13, 16, 17, 20, 21, 23, 38, 39, 42, 43, 44, 45, 46, 48, 49, 50, 53, 54, 55, 56], "start": [1, 7, 11, 12, 13, 14, 17, 18, 22, 26, 39, 42, 45, 46, 49, 53, 55, 56, 57], "match": [1, 7, 21, 38, 39, 49, 50, 56], "00": [1, 42, 44, 45], "detectedobject": 1, "prefix": [1, 11, 21, 39, 46], "columnnam": 1, "shorten": 1, "doe": [1, 7, 9, 12, 13, 17, 33, 39, 41, 42, 45, 50, 55, 56], "take": [1, 2, 7, 21, 56], "care": [1, 2, 18, 56], "duplic": [1, 46], "suffix": 1, "succe": 1, "like": [1, 2, 7, 8, 11, 13, 17, 28, 29, 33, 39, 42, 43, 44, 49, 50, 51, 56, 57], "oper": [1, 2, 9, 12, 13, 16, 33, 39], "everyth": [1, 56], "panda": [1, 17], "min": [1, 2, 38, 44, 50, 52, 55, 56], "max": [1, 2, 28, 38, 44, 50, 51, 52, 55, 56], "A": [1, 2, 4, 7, 8, 9, 12, 13, 17, 20, 21, 22, 23, 33, 38, 39, 42, 45, 50, 53, 55, 56, 57], "should": [1, 2, 8, 11, 12, 13, 18, 22, 33, 39, 43, 44, 48, 50, 55, 56, 57], "positionrout": [1, 39, 42, 45], "tag": [1, 9, 24, 26, 27, 28, 29, 30, 38, 39, 41, 42, 43, 45], "agenttypegroupnam": [1, 45], "agenttypenam": [1, 45], "vehiclemodeltyp": [1, 45], "driverprofilenam": [1, 45], "agenttyp": 1, "runstatist": 1, "randomse": [1, 42, 45, 56], "visibilitydist": [1, 42, 45, 54], "stopreason": [1, 45], "stoptim": [1, 8, 45], "egoaccid": [1, 45], "totaldistancetravel": [1, 42, 45], "egodistancetravel": [1, 45], "comparison": [1, 11], "approxim": [1, 2, 51], "maximum": [1, 2, 6, 9, 12, 21, 38, 39, 42, 50, 51, 52, 54, 55, 56], "deviat": [1, 9, 18, 28, 48, 51], "seldom": 1, "skip": [1, 2, 21, 42, 46], "secur": 1, "ha": [1, 2, 3, 4, 7, 8, 9, 11, 22, 27, 28, 29, 38, 39, 42, 44, 45, 47, 49, 50, 52, 54, 56, 57], "been": [1, 12, 18, 22, 33, 56, 57], "800": 1, "collis": [1, 2, 4, 11, 13, 23, 33, 54, 56], "associ": [1, 20, 33], "trigger": [1, 5, 6, 8, 13, 33, 39, 42, 44, 45, 55, 56, 57], "affect": [1, 2, 45], "pair": [1, 8, 42, 43, 45], "document": [1, 8, 12, 13, 17, 18, 21, 22, 23, 33, 39, 42], "inform": [1, 2, 8, 9, 11, 12, 13, 15, 17, 20, 28, 33, 39, 42, 43, 44, 45, 46, 49, 50, 51, 54, 56, 57], "transform": [1, 8, 9, 49, 56], "per": [1, 9, 13, 44, 45, 50, 56], "scope": [1, 12, 17, 18, 44, 48], "taken": [1, 4, 28, 56], "triggeringent": [1, 39, 45], "flag": [1, 2, 6, 9, 12, 18, 20, 45, 55], "becom": [1, 11, 49], "istrigg": 1, "affectedent": [1, 45], "isaffect": 1, "publish": [1, 2, 6, 20, 45], "xyz": 1, "withag": 1, "carri": [1, 9, 33, 39], "collisionwithag": [1, 4], "strip": 1, "No": [1, 2, 7, 9, 28, 42, 46, 50, 55], "collid": [1, 4, 54], "process": [1, 2, 6, 8, 9, 11, 13, 14, 15, 16, 17, 20, 28, 33, 39, 50, 56], "same": [1, 2, 8, 9, 11, 27, 33, 38, 39, 42, 43, 44, 45, 53, 54, 55, 56], "manner": [1, 46], "regular": [1, 21, 45, 51], "abov": [1, 2, 8, 9, 11, 12, 13, 17, 26, 39, 46, 49, 50, 56], "occurr": 1, "stori": [1, 33, 45], "maneuv": [1, 45, 57], "thestori": 1, "theact": 1, "thesequ": 1, "numberofexecut": 1, "themaneuv": 1, "ttc_event": 1, "overwrit": [1, 39, 57], "startcondit": 1, "conditiongroup": [1, 39], "byentiti": 1, "entitycondit": 1, "timetocollis": 1, "sometim": 1, "whether": [1, 2, 4, 9, 20, 45, 52, 54, 55, 56], "happen": [1, 6, 23, 33, 39, 56], "certain": [1, 8, 11, 13, 38, 39, 45], "achiev": [1, 2, 9, 38], "shift": [1, 2, 13, 28, 32, 50], "earlier": [1, 8], "350": [1, 44], "laneid": [1, 5, 39, 55], "have": [1, 2, 4, 6, 7, 8, 9, 11, 12, 13, 16, 17, 18, 21, 22, 27, 33, 38, 39, 46, 49, 53, 55, 56, 57], "integ": [1, 2, 8, 39, 42, 45, 54, 56], "would": [1, 2, 11, 13, 26, 33, 47, 50], "appli": [1, 6, 12, 18, 20, 44, 49, 50, 52, 53, 55, 56], "behavior": [1, 39, 45, 49, 50, 51, 55, 56], "lead": [1, 7, 9, 11, 15, 17, 21, 26, 45, 49, 51], "escap": [1, 21], "quot": [1, 12, 21], "restrict": [1, 9, 11, 17, 38, 55], "first": [1, 6, 7, 8, 9, 13, 15, 17, 21, 22, 23, 26, 31, 32, 33, 39, 42, 44, 46, 49, 50, 52, 55, 56], "succeed": [1, 13], "detect": [1, 2, 4, 21, 33, 45, 56], "won": [1, 13, 28], "t": [1, 2, 3, 7, 8, 9, 11, 13, 22, 28, 39, 41, 44, 45, 46, 51, 52, 54, 55, 56], "fit": [1, 2, 13, 23, 50], "": [1, 2, 3, 7, 8, 9, 12, 13, 17, 20, 23, 27, 33, 39, 41, 45, 48, 51, 53, 54, 55, 56], "intent": 1, "hold": [1, 2, 8, 9, 15, 22, 49, 51], "semicolon": [1, 21, 31, 32], "separ": [1, 9, 11, 12, 21, 22, 28, 31, 32, 33, 39, 42, 46, 51, 55, 56, 57], "just": [1, 6, 8, 11, 12, 28, 51], "element": [1, 8, 9, 39, 42, 46, 50, 52], "imposs": 1, "distinguish": [1, 12, 21], "string": [1, 5, 8, 11, 21, 38, 39, 42, 43, 44, 45, 46, 51, 55, 56], "reason": [1, 39, 45, 46], "explicitli": [1, 12, 21, 43, 44, 55], "along": [1, 2, 3, 9, 16, 39, 49, 53, 54, 56], "sensor0_detectedag": 1, "str": 1, "miss": [1, 2, 7, 13, 20, 21, 39, 50, 56, 57], "want": [1, 2, 11, 33, 57], "debug": [1, 6, 8, 21, 22, 28], "add": [1, 3, 11, 13, 17, 20, 31, 38, 41, 42, 56], "launch": [1, 13, 23], "after": [1, 2, 4, 6, 8, 9, 13, 21, 26, 28, 55, 56, 57], "arg": [1, 13, 18, 21], "core": [1, 6, 12, 13, 14, 16, 17, 18, 21, 33, 39, 42, 43, 48, 50, 52, 57], "oss": 1, "repo": [1, 11, 13, 39], "allowed_end_to_end_warn": 1, "test_end_to_end": 1, "request": [1, 2, 13, 39, 53, 56], "consol": [1, 18, 57], "integratedtermin": 1, "compos": [2, 33, 48], "multipl": [2, 4, 16, 21, 28, 29, 31, 42, 43, 44, 45, 56], "connect": [2, 6, 7, 8, 9, 13, 23, 33, 49, 50, 52, 56], "figur": [2, 8, 56], "roughli": [2, 48], "divid": [2, 6, 17, 22, 39, 48, 56, 57], "driver": [2, 12, 27, 33, 37, 42, 44, 45, 48, 49, 50, 52, 54, 56], "algorithm": [2, 8, 9, 12, 27, 44, 48], "dynam": [2, 12, 23, 27, 38, 39, 43, 44, 45, 48, 56], "priorit": [2, 33, 44], "therebi": [2, 11, 22, 33, 47], "consist": [2, 3, 8, 9, 12, 13, 23, 31, 38, 42, 44, 45, 54, 56], "sever": [2, 9, 12, 13, 14, 20, 21, 22, 42, 48, 49, 55], "submodul": 2, "read": [2, 8, 13, 21, 28, 31, 44, 45, 56], "interfac": [2, 4, 5, 8, 9, 12, 13, 14, 18, 20, 23, 39, 52, 56], "write": [2, 6, 8, 11, 12, 14, 39, 42, 45, 46, 58], "longitudin": [2, 3, 33, 38, 39, 44, 45, 48, 49, 56], "later": [2, 3, 9, 28, 33, 38, 39, 44, 45, 48, 56], "By": [2, 8, 18, 21, 46, 56], "statist": [2, 27, 30, 45], "probabl": [2, 33, 38, 42, 47, 55, 56], "profilescatalog": [2, 33, 35, 44, 48, 56, 57], "superset": [2, 33], "valid": [2, 8, 9, 33, 54, 55, 56], "combin": [2, 8, 21, 28, 32, 52], "systemconfigblueprint": [2, 33, 35, 38, 43, 45, 57], "framework": [2, 4, 14, 17, 21, 23, 52, 56], "channel": [2, 8, 20, 23, 56], "turn": [2, 11, 17, 21, 39, 42, 45, 56], "give": [2, 6, 8, 13, 17, 18, 22, 33, 56], "exhaust": 2, "over": [2, 14, 31, 32, 49, 50, 53, 56], "commun": [2, 8, 43, 44, 56], "draw": 2, "io": [2, 13, 23], "componentschannelcommunicationdiagram": 2, "drawio": 2, "parametr": [2, 8, 14, 33, 42], "explain": [2, 12], "guid": [2, 10, 15, 17, 21, 27, 33, 48, 57], "therefor": [2, 6, 8, 13, 17, 28, 33, 39, 43, 49, 50, 52, 57], "updat": [2, 4, 6, 13, 14, 17, 44, 48, 56, 57], "pedal": [2, 27, 45, 50, 51, 52, 56], "gear": [2, 39, 42, 45, 48, 49, 51, 52, 56], "prepar": [2, 6, 11, 18], "algorithmlongitudin": 2, "brake": [2, 23, 27, 45, 50, 51, 52, 56], "light": [2, 9, 39, 45, 54], "indic": [2, 3, 9, 12, 44, 45, 52, 56], "horn": 2, "switch": [2, 13, 53], "headlight": [2, 45], "high": [2, 42, 45, 47, 49, 51, 56], "beam": [2, 45], "flasher": 2, "secondari": [2, 45, 46], "drive": [2, 17, 23, 33, 38, 41, 45, 46, 49, 50, 51, 52, 53, 54, 55, 56], "transfer": [2, 8, 43, 49, 56], "grade": 2, "exampl": [2, 8, 9, 11, 12, 13, 16, 20, 21, 27, 33, 39, 44, 45, 46, 47, 50, 56, 57], "primari": 2, "direct": [2, 3, 4, 8, 9, 45, 53, 54, 56], "movement": [2, 6, 49, 53, 56], "indirect": 2, "complement": [2, 57], "tertiari": 2, "radio": [2, 28], "tabl": [2, 4, 6, 16, 32, 44, 51, 52, 54, 56], "paramemt": 2, "in_indicatorst": 2, "left": [2, 3, 9, 13, 38, 41, 45, 49, 54, 55, 56], "center": [2, 3, 9, 23, 41, 45, 49, 56], "off": [2, 11, 18, 21, 39, 45, 56], "right": [2, 3, 6, 9, 13, 18, 32, 38, 39, 41, 45, 49, 54, 55, 56, 57], "in_hornswitch": 2, "fals": [2, 4, 8, 9, 11, 12, 13, 20, 38, 39, 42, 45, 54, 56, 57], "in_headlightswitch": 2, "in_highbeamlightswitch": 2, "in_flasherswitch": 2, "method": [2, 5, 12, 44, 56], "dynamicspriorit": 2, "includ": [2, 6, 8, 11, 12, 13, 20, 21, 22, 27, 31, 33, 45, 46, 54, 55, 56, 57], "acceler": [2, 3, 40, 44, 45, 50, 51, 52, 54, 56], "rotat": [2, 3, 45, 49, 52, 56], "convert": [2, 3, 9, 40, 49, 52, 56], "wheel": [2, 27, 45, 49, 50, 51, 52, 54, 56], "angl": [2, 4, 5, 27, 28, 45, 49, 51, 52, 54, 56], "mention": [2, 13, 18, 33], "via": [2, 9, 13, 17, 22, 39, 43, 44, 52, 56], "radiointerfac": 2, "unit": [2, 5, 7, 8, 9, 13, 18, 20, 21, 22, 23, 38, 43, 44, 45, 51, 52, 54, 55, 56], "signalstrength": [2, 56], "doubl": [2, 12, 38, 39, 45, 51, 54, 55, 56, 57], "w": [2, 39, 45, 49, 52, 56], "singal": 2, "strength": [2, 56], "car2xsend": 2, "sendpositionxen": 2, "boolean": [2, 8, 45, 50, 54, 56], "sent": [2, 44, 49, 52, 56], "sendpositionyen": 2, "sendvelocityen": 2, "sendaccelerationen": 2, "sendyawen": 2, "yaw": [2, 4, 9, 38, 45, 52, 56], "partner": 2, "bigger": [2, 56], "than": [2, 7, 9, 12, 50, 51, 53, 54, 56, 57], "previou": [2, 3, 22, 28, 29, 52, 53, 55, 57], "time": [2, 4, 5, 6, 8, 12, 14, 23, 32, 33, 38, 39, 42, 43, 44, 45, 49, 51, 52, 53, 55, 56, 57], "dynamicscollis": [2, 44], "calcul": [2, 3, 4, 9, 12, 14, 22, 23, 28, 31, 39, 45, 50, 51, 52, 55, 56], "fulli": [2, 8, 15, 33, 57], "inelast": 2, "while": [2, 8, 38, 39, 51, 52, 53], "momentum": [2, 4], "conserv": 2, "slow": [2, 51], "down": [2, 8, 50], "fix": [2, 9, 11, 12, 22, 39, 55, 56], "deceler": [2, 50, 51, 52, 56], "until": [2, 33, 42, 50, 56], "stop": [2, 9, 28, 39, 45, 53, 56], "motion": [2, 56], "physic": [2, 33, 39, 51], "friction": [2, 42, 50, 56], "both": [2, 4, 7, 8, 9, 11, 33, 41, 46, 48, 55, 56], "cover": [2, 7, 27, 47], "consequ": [2, 9], "rate": [2, 9, 39, 42, 45, 51, 52, 56], "new": [2, 6, 8, 12, 14, 26, 28, 31, 33, 44, 52, 53, 55, 57], "accelerationsign": [2, 44, 56], "prioritizeraccelerationvehiclecompon": [2, 44], "constraint": [2, 50], "dynamicstrajectoryfollow": [2, 44, 48], "trajectori": [2, 5, 27, 28, 29, 32, 39, 44, 49, 53, 56, 57], "a_": [2, 50, 51, 52, 56], "text": [2, 9, 13, 28, 49, 56], "lim": 2, "frac": [2, 49, 50, 51, 52, 56], "f_": [2, 52, 56], "roll": [2, 4, 17, 38, 39, 41, 42, 50, 52], "air": [2, 51, 52, 56], "m_": [2, 50, 52, 56], "veh": 2, "symbol": [2, 56], "result": [2, 3, 6, 7, 8, 9, 11, 20, 21, 24, 26, 33, 46, 47, 50, 52, 53, 56, 57], "m": [2, 7, 9, 11, 13, 22, 23, 42, 44, 45, 49, 50, 51, 52, 54, 55, 56], "s\u00b2": [2, 45, 51, 54, 56], "drivetrain": [2, 56], "resist": [2, 50, 52, 56], "drag": [2, 50, 51, 52], "mass": [2, 4, 50, 52, 56], "kg": [2, 52], "t_": [2, 52, 56], "engin": [2, 45, 50, 51, 52, 53, 56], "cdot": [2, 49, 50, 51, 52, 56], "r_": [2, 50, 52], "axl": [2, 3, 9, 49, 50, 52, 56], "torqu": [2, 45, 50, 52, 56], "assum": [2, 11, 13, 17, 21, 42, 52], "best": [2, 21], "select": [2, 7, 8, 13, 27, 28, 29, 31, 32, 33, 38, 39, 42, 55, 56], "nm": [2, 45, 52, 56], "transmiss": [2, 12, 56], "ratio": [2, 4, 49, 50, 52, 56], "static": [2, 12, 27, 33, 35, 38, 41, 44, 50, 52, 54, 56, 57], "radiu": [2, 12, 28, 41, 49, 50, 52], "simpl": [2, 8, 13, 17, 38, 49, 50, 51], "scale": [2, 28, 38, 56], "proport": [2, 49, 52], "1350": 2, "5000": 2, "rpm": [2, 50], "minimum": [2, 6, 9, 12, 38, 50, 51, 52, 55, 57], "half": [2, 56], "maxenginespe": 2, "c_": [2, 52], "fric": 2, "coeffici": [2, 52, 56], "constant": [2, 9, 11, 12, 45, 51, 53, 56], "015": 2, "rho_": [2, 52], "front": [2, 9, 38, 45, 49, 51, 52, 54, 56], "c_w": 2, "densiti": [2, 52], "m\u00b3": 2, "surfac": [2, 52], "area": [2, 12, 29, 55], "m\u00b2": [2, 52, 56], "relai": [2, 39], "lanechang": [2, 39, 41], "userdefin": 2, "trajectorymanipul": 2, "lanechangemanipul": 2, "manipul": [2, 6, 27, 39, 45], "rais": [2, 22], "event": [2, 4, 6, 8, 33, 39, 44, 57], "forward": [2, 4, 44, 49, 50, 56], "interest": [2, 8, 33, 35, 48], "react": [2, 14, 39, 57], "content": [2, 8, 11, 12, 31, 33, 44], "without": [2, 9, 12, 13, 16, 22, 33, 42, 56], "delai": [2, 39, 44, 56], "parametersvehicl": [2, 44], "vehiclemodelparamet": [2, 52], "parametersvehiclesign": 2, "present": [2, 7, 8, 12, 23, 33, 39], "explan": [2, 12], "width": [2, 3, 9, 41, 45, 54, 56], "height": [2, 3, 38, 41, 45, 54], "wheelbas": [2, 49, 52, 56], "trackwidth": 2, "distancecogtoleadingedg": 2, "distanc": [2, 7, 9, 28, 41, 45, 49, 51, 52, 53, 54, 55, 56], "cog": [2, 23], "bumper": 2, "distancecogtofrontaxl": 2, "heightcog": 2, "graviti": [2, 23, 49, 56], "ground": [2, 22, 33], "weight": [2, 9, 41, 42, 49, 55], "overal": [2, 21, 33, 49, 50, 56, 57], "momentinertiarol": 2, "kgm\u00b2": [2, 56], "moment": [2, 9, 26, 52], "inertia": [2, 50, 52, 56], "axi": [2, 3, 9, 32, 45, 49, 56], "momentinertiapitch": 2, "momentinertiayaw": 2, "vertic": [2, 39, 45, 56], "frontsurfac": [2, 56], "airdragcoeffici": [2, 56], "minimumenginespe": 2, "idl": 2, "maximumenginespe": [2, 56], "minimumenginetorqu": 2, "maximumenginetorqu": [2, 56], "numberofgear": [2, 56], "gearbox": [2, 50], "axleratio": [2, 56], "decelerationfrompowertraindrag": 2, "caus": [2, 13, 21, 45], "steeringratio": [2, 56], "maximumsteeringwheelangleamplitud": 2, "degre": [2, 4, 49, 53], "amplitud": 2, "queri": [2, 9], "agentinterfac": [2, 5, 54, 56], "about": [2, 12, 14, 15, 17, 20, 33, 42, 45, 46, 49, 50, 54, 56, 57], "own": [2, 3, 4, 21, 22, 33, 51, 54, 56], "surround": [2, 54, 57], "These": [2, 8, 9, 11, 17, 20, 26, 33, 38, 39, 45, 55, 56], "represent": [2, 8, 9, 22, 23], "variou": [2, 11, 12, 22, 23, 33, 39, 57], "receivercar2x": [2, 38, 48], "sector": 2, "sensorview": [2, 3, 8, 56], "sensorviewconfigur": 2, "imag": [2, 8, 9, 31, 33, 49, 50, 52], "dataflow": 2, "develop": [2, 4, 10, 11, 17, 21, 22, 23, 33, 57], "perspect": [2, 21], "send": [2, 43, 44, 55, 56], "back": [2, 3, 18, 21, 53, 55, 56], "configur": [2, 4, 6, 7, 11, 12, 14, 17, 18, 20, 21, 24, 26, 27, 29, 30, 33, 38, 39, 43, 44, 45, 56, 57], "sinc": [2, 3, 6, 8, 9, 22, 52], "mayb": 2, "notabl": [2, 49], "we": [2, 8, 11, 12, 17, 22, 43, 56, 57], "full": [2, 4, 8, 39, 50, 56], "accord": [2, 3, 4, 9, 12, 13, 18, 20, 33, 38, 39, 41, 49, 51, 52, 56], "alwai": [2, 8, 9, 39, 40, 50, 51, 53, 56], "test": [2, 4, 7, 12, 13, 14, 15, 16, 17, 18, 20, 22, 33, 57], "our": [2, 8, 57], "circl": [2, 12], "around": [2, 21, 33, 49, 57], "intersect": [2, 4, 9, 55], "suitabl": [2, 17, 23, 49, 52], "polygon": [2, 9], "either": [2, 8, 9, 13, 17, 28, 38, 39, 42, 45, 55, 56, 57], "four": [2, 9, 49, 54, 56], "180": 2, "five": 2, "corner": [2, 9], "kite": 2, "lower": [2, 7, 47, 50, 56], "b": [2, 9, 41], "c": [2, 9, 11, 12, 14, 17, 18, 21, 26, 41, 56, 57], "d": [2, 9, 13, 18, 21, 28, 41, 49, 56], "greater": [2, 7, 50, 56], "equal": [2, 9, 11, 50, 51, 52], "360": 2, "convex": 2, "bbox": 2, "correct": [2, 7, 12], "construct": 2, "out": [2, 8, 9, 12, 13, 33, 39, 45, 55], "boundari": [2, 9, 22, 39, 54, 56], "tangent": 2, "field": [2, 20, 39, 56], "ani": [2, 6, 8, 9, 11, 12, 13, 20, 21, 26, 33, 38, 39, 43, 55, 56, 57], "dist": 2, "isintersect": 2, "circular": 2, "pi": [2, 12, 50, 52, 56], "radius": 2, "exactli": 2, "suffic": 2, "block": [2, 12], "sight": 2, "larg": [2, 51], "enough": [2, 50], "shadow": 2, "enablevisualobstruct": [2, 56], "percentag": [2, 56], "visibl": [2, 8, 39, 45, 53, 54, 56], "concept": [2, 4, 14], "cast": 2, "cone": [2, 56], "too": [2, 9, 17, 21, 45], "much": [2, 8, 33, 49, 51], "remov": [2, 11, 12, 21, 26, 39, 57], "bound": [2, 4, 9, 39, 42, 45, 49, 55, 56], "box": [2, 4, 9, 13, 45, 49, 56], "remain": [2, 28], "total": [2, 9, 45, 56], "smaller": [2, 47, 50], "parameteriz": [2, 33, 47], "threshold": [2, 7, 56], "ahead": 2, "captur": [2, 9], "outer": [2, 8], "vector": [2, 5, 9, 12, 45, 49, 50, 54, 55, 56], "extend": [2, 8, 9, 13, 55], "regard": [2, 22, 38, 44], "note": [2, 6, 9, 11, 12, 17, 21, 38, 44, 47, 57], "edg": [2, 9, 49], "produc": [2, 8, 28, 33, 44, 49, 50], "small": [2, 49, 51, 52], "red": [2, 9, 39], "avoid": [2, 11, 12, 56], "numer": 2, "problem": 2, "stretch": 2, "size": [2, 8, 12, 22, 49, 56], "instead": [2, 12, 13, 18, 20, 33], "overestim": 2, "guarante": [2, 9, 50], "ideal": 2, "rather": [2, 8, 12, 49], "tangenti": 2, "With": [2, 8, 44, 50, 56], "consid": [2, 4, 17, 20, 49, 50, 52, 56], "neglig": 2, "final": [2, 6, 9, 33, 55, 56], "subtract": [2, 3, 51], "repeat": [2, 41, 46, 57], "partial": [2, 7, 56], "occlud": 2, "irrelev": 2, "unsort": 2, "broadcast": 2, "ada": [2, 3, 23, 33, 38, 44, 49], "sensordatasign": [2, 56], "get": [2, 3, 8, 13, 14, 17, 21, 26, 38, 40, 44, 56], "highest": [2, 6, 26, 42, 44, 50], "higher": [2, 8, 11], "102": 2, "lowest": [2, 32, 50], "prioritizernam": 2, "150": [2, 44], "offset": [2, 9, 39, 43, 44, 53], "cycl": [2, 4, 43, 44, 52], "respons": [2, 8, 43, 44, 48, 49, 50, 52, 55, 56], "librari": [2, 6, 12, 13, 18, 20, 21, 23, 26, 38, 42, 43, 44, 45, 46, 55, 56, 57], "int": [2, 12, 38, 56], "101": 2, "One": [2, 8, 17, 21, 43, 55], "class": [2, 5, 12], "deriv": [2, 49, 52], "componentstatesign": 2, "prioritizersteeringvehiclecompon": [2, 44], "prioritizerturningind": [2, 44], "prioritizerlongitudin": [2, 44], "prioritizerst": [2, 44], "prioritizerdynam": [2, 43, 44], "cc": [2, 12, 13], "could": [2, 17, 21, 33, 38, 52, 56], "cruis": [2, 51], "latter": [2, 21, 56], "deactiv": [2, 12, 39, 56, 57], "keep": [2, 8, 11, 13, 17, 33, 51, 53], "assist": [2, 23, 27, 33, 38], "emerg": [2, 23, 38, 56, 57], "stai": [2, 13], "occur": [2, 4, 45, 55, 56], "responsibili": 2, "vehiclecompon": [2, 37, 44, 48], "make": [2, 8, 9, 11, 12, 13, 16, 17, 18, 22, 23, 27, 48, 57], "trajectoryfollow": 2, "notifi": 2, "assign": [2, 9, 39, 44, 56], "componentst": [2, 56], "arm": [2, 56], "passiv": 2, "flow": [2, 33, 44, 49], "desir": [2, 11, 17, 39, 51, 56, 57], "driverstatesign": 2, "vehiclecomptocompctrlsign": 2, "destin": [2, 11], "reachabl": [2, 39], "stati": 2, "adasstatesign": 2, "compctrltovehiclecompsign": 2, "counterclockwis": 3, "radian": [3, 56], "absolut": [3, 6, 11, 39, 40, 45, 49, 51, 52, 54, 56], "parent": 3, "rel": [3, 5, 6, 8, 11, 28, 38, 39, 43, 45, 49, 52, 54, 56], "z": [3, 39], "unus": [3, 42], "At": [3, 7, 8, 9, 11, 27, 28, 38, 39, 42, 52, 53], "begin": [3, 4, 8, 12, 13, 26, 56], "downstream": 3, "side": [3, 9, 54, 55, 56], "respect": [3, 7, 9, 17, 22, 33, 39, 45, 49, 50, 54], "origin": [3, 8, 9, 11, 14, 28], "rear": [3, 9, 45, 49, 56], "parallel": [3, 8, 9, 18], "car": [3, 4, 33, 39, 55], "whose": [3, 23], "mount": [3, 38, 56], "orient": [3, 39, 41, 44, 53], "vectori": 3, "written": [3, 8, 11, 12, 22, 28, 39, 45, 46, 50, 56, 57], "translat": [3, 9, 56], "invers": [3, 49], "mai": [3, 8, 13, 17, 21, 38, 39, 49, 53, 55, 56, 57], "sensorfusion_errorless": 3, "ego": [3, 9, 38, 39, 45, 46, 49, 51, 55, 56, 57], "detector": [4, 6], "usual": 4, "eventnetwork": 4, "There": [4, 8, 9, 13, 17, 20, 21, 22, 26, 38, 39, 48, 51, 52, 56], "share": [4, 12, 13, 18, 20, 21], "instanc": [4, 8, 21, 45, 56], "move": [4, 11, 33, 46, 55, 56], "stationari": [4, 46, 54], "account": [4, 7, 28, 56], "dimension": [4, 56], "itself": [4, 13, 18, 20, 22, 28, 38, 39, 50], "potenti": [4, 13, 35, 36, 55], "inclin": [4, 56], "onto": [4, 39, 56], "xy": 4, "plane": [4, 49], "collisionev": 4, "particip": [4, 9, 14, 33, 47, 48], "creat": [4, 8, 9, 12, 13, 17, 18, 21, 22, 26, 33, 40, 45, 54, 55, 56, 57], "pick": [4, 33], "collisionmanipul": 4, "accordingli": [4, 11], "geometr": [4, 22, 49, 52, 54], "crash": [4, 21, 23, 33], "term": [4, 11, 25, 33, 50, 51, 55], "wagstrom": 4, "et": 4, "al": 4, "www": [4, 9, 11, 21, 22, 23, 25, 53, 56], "esv": 4, "nhtsa": 4, "dot": [4, 9], "gov": [4, 9], "proceed": 4, "26": [4, 38], "26esv": 4, "000177": 4, "pdf": [4, 9, 33, 51], "furthermor": [4, 8, 39], "impact": [4, 55], "evalu": [4, 14, 23, 24, 33, 55, 56], "estim": [4, 50], "chang": [4, 6, 8, 9, 11, 12, 13, 18, 22, 26, 28, 33, 39, 42, 45, 46, 49, 50, 52, 53, 57], "due": [4, 6, 11, 14, 21, 39, 45, 51, 52, 53], "initi": [4, 6, 8, 9, 11, 28, 33, 38, 39, 45, 50, 56, 57], "h": [4, 9, 12, 13, 39, 42, 49, 52], "velocitychang": 4, "behind": [4, 54], "wa": [4, 24, 26, 27, 28, 29, 30, 38, 45], "overlap": [4, 9], "esar": 4, "2016": 4, "kolk": 4, "bast": [4, 9], "opu": 4, "hbz": 4, "nrw": 4, "de": [4, 8, 9, 23, 38, 42, 56], "opus45": 4, "frontdoor": 4, "deliv": [4, 44], "index": [4, 14, 21, 22, 44, 46, 56], "docid": 4, "1825": 4, "f117_21": 4, "collisionveloc": 4, "host": [4, 56], "prior": [4, 11, 22], "anoth": [4, 8, 11, 12, 13, 38, 39, 54, 56, 57], "hcpa": 4, "hcpao": 4, "normal": [4, 11, 12, 13, 33, 45, 52, 56], "ocpa": 4, "oppon": 4, "ocpao": 4, "oya": 4, "opponentcollisionveloc": 4, "opponentpointofcontactlocalx": 4, "contact": [4, 13], "opponentpointofcontactlocali": 4, "opponentveloc": 4, "opponentvelocitychang": 4, "opponentvelocitydirect": 4, "opponentyawveloc": 4, "pointofcontactlocalx": 4, "pointofcontactlocali": 4, "applic": [4, 8, 14, 16, 23, 45, 56], "progress": [4, 33, 57], "layer": [5, 9, 23, 56], "api": [5, 13, 17, 21, 22, 35, 39, 53], "datatyp": [5, 56], "openscenarioengin": [5, 17, 39], "mantle_api": 5, "opsimualt": 5, "osi3": [5, 13], "assignrout": 5, "uniqueid": 5, "routedefinit": 5, "getposit": [5, 40], "geometryhelp": 5, "translateglobalpositionloc": [5, 40], "spawnparamet": 5, "getpositionx": 5, "getpositioni": 5, "getyaw": 5, "routesamplerinterfac": 5, "calculateroutefromwaypoint": 5, "std": [5, 12], "routewaypoint": 5, "egoagentinterfac": 5, "setroadgraph": 5, "roadgraph": 5, "roadgraphvertex": 5, "executecustomcommand": [5, 40], "actor": [5, 39], "addcustomcommand": 5, "getcustomcommand": [5, 39], "componentcontrollerimplement": 5, "trajectoryfollowercommonbas": 5, "trafficact": 5, "customact": 5, "mutable_custom_act": 5, "trafficaction_customact": 5, "set_command": 5, "updatecontrolstrategi": [5, 40], "followtrajectorycontrolstrategi": 5, "hascontrolstrategygoalbeenreach": [5, 40], "controlstrategytyp": 5, "kfollowtrajectori": 5, "polylin": [5, 39], "movementdomain": [5, 53], "kboth": 5, "setstrategi": 5, "algorithm_routecontrol_implement": 5, "readwaypointdata": 5, "dynamicsscenarioimplement": 5, "trajectoryfollowerimplement": 5, "fmuhelp": 5, "addtrafficcommandactionfromopenscenariotrajectori": 5, "trafficcommand": [5, 39, 56], "add_act": 5, "mutable_follow_trajectory_act": 5, "trafficaction_followtrajectoryact": 5, "add_trajectory_point": 5, "followpathact": 5, "mutable_follow_path_act": 5, "trafficaction_followpathact": 5, "add_path_point": 5, "lanechangeactionimpl": 5, "getlanechangetarget": 5, "convertscenariolanechangetarget": 5, "ilanechangetarget": 5, "relativetargetlan": [5, 39], "lanechangetargetimpl": 5, "getrelativetargetlan": 5, "convertscenariorelativetargetlan": 5, "irelativetargetlan": 5, "absolutetargetlan": [5, 39], "getabsolutetargetlan": 5, "convertscenarioabsolutetargetlan": 5, "iabsolutetargetlan": 5, "performlanechangecontrolstrategi": 5, "kperformlanechang": 5, "lanelocationqueryservic": 5, "getrelativelaneid": [5, 40], "klater": 5, "calculatesinusiodallanechang": 5, "setlinearvelocitysplinecontrolstrategi": 5, "followvelocitysplinecontrolstrategi": 5, "kfollowvelocitysplin": 5, "setspe": 5, "ientiti": 5, "meters_per_second_t": 5, "klongitudin": 5, "controlstrategi": [5, 40, 53], "hasnewlongitudinalstrategi": 5, "getvelocityfromsplin": 5, "mutable_speed_act": 5, "set_absolute_target_spe": 5, "targetspe": 5, "setposit": [5, 40], "vec3": 5, "meter_t": 5, "setorient": [5, 40], "orientation3": 5, "radian_t": 5, "setassignedlaneid": [5, 40], "uint64_t": 5, "getupwardsshiftedlaneposit": [5, 40], "getlaneidsatposit": [5, 40], "routesampl": 5, "setpositionx": 5, "setpositioni": 5, "setyaw": 5, "settrafficsignalst": [5, 40], "worlddata": 5, "gettrafficsignidmap": 5, "getsignaltyp": 5, "gettrafficlight": 5, "threesignalstrafficlight": [5, 45], "setstat": 5, "commontrafficlight": 5, "twosignalstrafficlight": 5, "onesignalstrafficlight": 5, "databuff": [5, 6, 45], "putacycl": 5, "trafficlight_classif": 5, "set_mod": 5, "trafficlight_classification_mod": 5, "convertscenariotrafficdefinit": 5, "net_asam_openscenario": 5, "v1_1": 5, "itrafficdefinit": 5, "setvis": [5, 40], "entityvisibilityconfig": 5, "unspecifi": 6, "loglevel": 6, "log": [6, 8, 13, 26, 28, 33, 45, 46, 56, 57], "level": [6, 8, 11, 26, 28, 33, 41, 42, 44, 47], "logfil": [6, 13], "lib": [6, 13, 57], "bootstrap": 6, "onc": [6, 8, 12, 13, 15, 39, 42, 45, 46, 52, 55, 56, 57], "observ": [6, 33, 36, 45, 46, 51], "prerun": [6, 42], "preagent": 6, "nonrecur": 6, "recur": 6, "syncron": [6, 53], "runtim": [6, 9, 13, 17, 18, 21, 39, 42, 43, 55], "sort": [6, 11, 56], "non": [6, 9, 12, 13, 21, 22, 31, 46, 55, 57], "delet": [6, 11, 13, 40, 56], "afterward": [6, 9, 55, 56], "init": [6, 8, 40, 44, 56], "componentrepositori": 6, "synchron": [6, 56], "last": [6, 7, 18, 22, 44, 50, 52, 55, 56], "end": [6, 7, 9, 12, 13, 17, 21, 31, 32, 49, 50, 53, 54, 55, 56, 57], "reach": [6, 39, 42, 45, 56], "syncworld": 6, "changeabl": 6, "ye": [6, 38, 42, 43, 55], "virtual": [6, 9, 12, 23], "timestamp": [6, 39, 56], "schedulertask": 6, "aforment": 6, "show": [6, 8, 13, 15, 31, 33, 45], "noth": 6, "instanti": [6, 33, 39, 44, 45, 56], "call": [6, 8, 9, 13, 17, 21, 23, 26, 33, 39, 45, 50, 51, 56, 57], "syncglobaldata": 6, "systemconfig": [6, 27, 33, 35, 38, 44, 56], "part": [7, 8, 11, 12, 21, 22, 23, 24, 26, 27, 28, 29, 30, 39, 45, 49, 56], "sceneri": [7, 9, 33, 35, 39, 45, 46, 55, 56, 57], "igor": 7, "verifi": 7, "spawnerpreruncommonparameterextractor_getwaytonextroad_nopossiblewai": 7, "place": [7, 11, 12, 28, 33, 56, 57], "spawnerprerun_highway_singleroad": 7, "precondit": 7, "listitem": [7, 38, 55], "drivabl": 7, "spawnerprerun_highway_fullstream": 7, "spawnerprerun_singleroad_drivingdirect": 7, "ones": [7, 18], "were": [7, 45, 55], "solut": [7, 8, 13], "necessarili": [7, 11, 39, 56], "chain": [7, 43], "cross": [7, 8, 9, 15, 21, 46], "spawnerprerun_highway_entryexit": 7, "least": [7, 8, 13, 16, 38, 56], "encount": 7, "doesn": [7, 52, 55, 56], "spawnerprerun_highway_incorrectstreambegin": 7, "spawnerprerun_highway_incorrectstreammid": 7, "setup": [7, 13, 15, 16, 33, 39, 42], "do": [7, 9, 12, 13, 16, 38, 41, 49, 52, 55, 56, 57], "spawnerprerun_singleroad_specifiedlan": 7, "wai": [7, 8, 11, 12, 13, 15, 38, 39, 51, 55, 56], "spawnerprerun_highway_roadoverlap": 7, "effect": [7, 13, 50, 56], "whole": [7, 8, 33, 51, 55, 56], "spawnerpreruncommonparameterextractor_extractspawnareas_alloptionalparamet": 7, "spawnerprerun_singleroad_specifiedrang": 7, "cap": 7, "spawnerpreruncommonparameterextractor_extractspawnareaswithsoutofrange_returnsvalid": 7, "accumul": 7, "rightlaneonli": [7, 55], "rightmost": [7, 56], "spawnerprerun_singleroad_rightlaneonli": 7, "minimumseparationbuff": [7, 55], "net": [7, 8, 51, 53, 56], "untest": 7, "ttc": [7, 23, 55, 56, 57], "extern": [7, 12, 13, 14, 53, 56], "random": [7, 14, 28, 33, 38, 39, 42, 45, 55, 56], "uniform": [7, 9], "spawnerruntime_highway_singleroad": 7, "spawnerruntime_highway_singleroad_drivingdirect": 7, "spawnerruntime_highway_multipleroad": 7, "don": [7, 8, 13, 22, 46], "spawnerruntime_singleroad_specifiedlan": 7, "spawnerruntime_singleroad_rightlaneonli": 7, "spawnerruntimecommonparameterextractor_extractminimumseparationbuffer_fixedvalu": 7, "spawnerruntimecommonparameterextractor_extractminimumseparationbuffer_novalue_setsdefault": 7, "standard": [8, 9, 12, 13, 21, 22, 23, 33, 38, 39, 41, 53, 56], "mockup": 8, "link": [8, 13, 18, 33, 39, 41, 43, 45, 55, 56], "fmi": [8, 23, 56], "offici": [8, 12, 13, 22, 53], "especi": [8, 12, 14, 22, 44], "those": [8, 22, 33], "append": [8, 11, 17], "connectiontest": [8, 43, 56], "root": [8, 9, 11, 12, 13], "subsystem": 8, "osmpconnectiontest": 8, "wrap": [8, 12], "dummysensor": 8, "osmptrafficupdatestepp": 8, "exchang": [8, 21, 22, 23], "outsid": [8, 9, 11, 55, 56], "Or": 8, "usecas": [8, 28, 43], "trafficupdatestepp": 8, "dynamicsign": 8, "leav": 8, "anim": 8, "On": [8, 11, 13, 17, 26, 33, 41, 51], "zip": [8, 17, 56], "togeth": [8, 33, 43, 46], "unpack": 8, "systemstructur": 8, "mandatori": [8, 21, 39, 42, 43, 57], "parametervalu": 8, "ssv": 8, "perceiv": [8, 56], "altern": [8, 13, 43], "ref": [8, 45], "referenc": [8, 11, 33, 38, 39, 41], "through": [8, 11, 13, 15, 21, 33, 39, 48, 53, 57], "uri": 8, "cf": 8, "rfc": 8, "3986": 8, "archiv": [8, 56], "ssm": 8, "dictionari": 8, "ssb": 8, "becaus": [8, 9, 11, 49, 50, 52, 53], "organis": 8, "purpos": [8, 13, 17, 23], "hierarch": 8, "Not": [8, 13, 15, 40], "version": [8, 11, 12, 13, 18, 20, 21, 24, 26, 27, 28, 29, 30, 39, 41, 42, 46, 51], "parameterset": 8, "ad": [8, 12, 13, 21, 31, 33, 42, 43, 49, 56], "parametermap": 8, "schemat": 8, "osmpconnect": 8, "notic": 8, "think": 8, "filestructur": 8, "zero": [8, 39, 46, 50, 56], "mani": [8, 21, 49], "signaldictionaryrefer": 8, "annot": 8, "osmpconnector": 8, "parameterbind": 8, "osmp": [8, 56], "abl": [8, 13, 17, 18, 20, 26, 28, 56], "ssc": 8, "pmsf": 8, "xmln": 8, "xsd": 8, "osisensormodelpackag": [8, 56], "mime": 8, "osmpsensordataout": 8, "role": 8, "psmf": 8, "come": [8, 9, 26, 42, 46], "shape": [8, 38, 39], "tripl": 8, "lo": 8, "hi": 8, "memori": [8, 21], "pointer": 8, "alloc": [8, 21], "crucial": 8, "well": [8, 12, 16, 22, 23, 33, 38, 39, 44, 45, 50, 56, 57], "algorithm_fmuwrapp": [8, 21, 22], "import": [8, 11, 17, 21, 33, 38, 39, 44, 56], "attribut": [8, 9, 38, 39, 41, 42, 43, 44, 45, 46, 56], "fmuparamet": 8, "csvoutput": [8, 56], "unziponceperinst": 8, "writejson_sensorview": 8, "writetrace_sensorview": 8, "input_osmpsensorviewin": 8, "sub": [8, 39], "real": [8, 11, 23, 33, 56], "float": [8, 12, 56], "enumer": 8, "priorityparamet": 8, "setlevel": 8, "prio": 8, "schdule": 8, "slex": 8, "co": [8, 52], "42": 8, "wrapper": [8, 39, 48], "load": [8, 23, 26, 42, 56], "pictur": [8, 26], "illustr": [8, 33, 49, 50, 52], "algorithm_sspwrapp": [8, 43], "fold": 8, "temporari": [8, 11, 56], "scan": [8, 9], "groupconnector": 8, "arrai": 8, "creation": [8, 20], "format": [8, 11, 12, 13, 17, 22, 23, 31, 32, 33, 38, 39, 56, 57], "discuss": [8, 12, 33], "chapter": [8, 22, 33], "form": [8, 12, 38, 45, 49, 56], "repres": [8, 12, 28, 48, 52, 57], "buffer": [8, 21, 56], "join": 8, "purpl": 8, "color": [8, 9, 41], "wherea": [8, 9, 26], "soon": 8, "trace": [8, 14, 42, 45, 56], "serial": [8, 22], "destruct": 8, "impos": [8, 16], "mainli": [8, 24, 26, 27, 28, 29, 30, 39, 46], "subel": [8, 38], "fmucompon": 8, "good": 8, "practic": [8, 21], "further": [8, 9, 12, 14, 15, 21, 33, 38, 39, 49, 50, 51, 52, 56, 57], "establish": [8, 11, 54], "fulfil": [8, 55], "sensordataout": 8, "sensordummi": 8, "sensordatain": 8, "Their": 8, "kind": [8, 39, 56], "depict": [8, 49], "propag": 8, "henc": [8, 26, 46], "tupl": 8, "elementstartnam": 8, "startconnectornam": 8, "elementendnam": 8, "endconnectornam": 8, "abstract": [8, 12, 23], "singular": [8, 12], "appear": 8, "trafficstepp": 8, "startel": 8, "startconnector": 8, "endel": 8, "endconnector": 8, "suppressunitconvers": 8, "trafficupdateout": 8, "trafficupd": [8, 56], "belong": [8, 39, 45], "outward": 8, "second": [8, 13, 21, 22, 26, 32, 42, 45, 50, 55, 56, 57], "systemoutput": 8, "mirror": 8, "most": [8, 9, 13, 26, 33, 38, 39, 48, 49, 55], "minim": [8, 16], "met": [8, 55], "emplac": 8, "again": [8, 13, 18, 33, 48, 49, 56], "let": [8, 14, 21, 22, 26, 33, 56], "util": [8, 11, 13, 16, 17, 23, 50], "sspwrapper": 8, "receiv": [8, 9, 43, 49, 50, 52, 56], "updateinput": 8, "updateoutput": [8, 44], "visitor": 8, "softwar": [8, 14, 15, 17, 22, 33], "visit": [8, 12, 20], "behaviour": [8, 56], "connectorvisitor": 8, "elementvisitor": 8, "travers": 8, "osmpconnectionexampl": 8, "manifest": [8, 17], "triggervisitor": 8, "accept": [8, 13], "queue": 8, "Then": [8, 13, 55, 56], "propagatedatavisitor": 8, "systemconnector": 8, "systeminput": 8, "job": [8, 24, 26, 27, 28, 29, 30], "deleg": 8, "counterpart": 8, "updateinputvisitor": 8, "updateoutputvisitor": 8, "osiconnector": 8, "still": [8, 13, 22, 26, 33, 50, 52, 56], "experiment": [8, 33], "decid": 8, "continu": [8, 9, 33, 39, 55, 56], "refactor": [8, 12], "osmpfmuhandl": 8, "uniqu": [8, 23, 28, 39, 43, 56], "procedur": 8, "baseel": 8, "besid": 8, "top": [8, 33, 41], "meta": [8, 56], "gtype": 8, "bind": 8, "pool": [8, 55], "buse": 8, "experi": [8, 24, 26, 27, 29, 30, 33, 38, 45, 46, 47, 57], "starttim": 8, "intermedi": [8, 55], "agent0xxx": 8, "jsonfil": 8, "binarytracefil": 8, "who": [8, 33], "agent0": 8, "agent0000": 8, "agent1": 8, "agent0001": 8, "binarytrac": 8, "writejson_sensordata": [8, 56], "writetrace_sensordata": 8, "opendr": [9, 23, 33, 39, 41, 45, 46, 55], "algebra": 9, "clothoid": 9, "cubic": 9, "polynomi": [9, 53], "wherebi": 9, "primarili": [9, 22, 33, 57], "understood": [9, 26], "stack": 9, "now": [9, 13, 39], "underli": [9, 12, 16], "almost": 9, "piecewis": [9, 53], "linear": [9, 49, 50, 51, 56], "interv": [9, 44, 55, 56], "quadrangular": 9, "laneel": 9, "centimet": 9, "aim": [9, 24, 26, 27, 28, 29, 30], "less": [9, 21, 33, 56], "f": [9, 11, 21], "exhibit": 9, "extrem": 9, "curvatur": [9, 41, 45, 49, 52, 54, 56], "cm": 9, "joint": 9, "across": [9, 12, 13, 39], "reduc": [9, 52, 55, 56], "ramer": 9, "dougla": 9, "peucker": 9, "ensur": [9, 12, 13, 20, 23, 28, 57], "retain": 9, "transit": [9, 11], "accuraci": 9, "ultim": 9, "span": [9, 52], "interpol": [9, 50, 53, 56], "linearli": [9, 53, 56], "roadcoordin": 9, "notion": 9, "_": [9, 49, 56], "depic": 9, "princip": 9, "aka": 9, "owl": 9, "p": [9, 11, 13, 28, 39, 49], "cartesian": 9, "predecessor": [9, 23], "successor": [9, 41, 42], "perpendicular": 9, "stream": 9, "quadrilater": 9, "lanegeometryel": 9, "quad": 9, "realiz": 9, "longest": 9, "arc": [9, 41], "outlin": [9, 12], "bu": [9, 39], "widen": 9, "simplifi": [9, 17, 39, 50, 51, 52], "grid": 9, "manag": [9, 13, 17, 20, 22, 26, 44], "tree": [9, 11, 29], "fast": 9, "howev": [9, 26], "orthogon": 9, "introduc": [9, 11, 22, 44, 51], "segment": [9, 26, 49], "touch": [9, 53], "justifi": 9, "subsequ": [9, 31, 50, 51], "filter": [9, 21], "quickli": [9, 51], "empti": [9, 17, 21, 39, 56], "remaind": 9, "delta": [9, 28, 39, 49, 51, 52], "s_min": 9, "s_max": 9, "delta_right": 9, "middl": [9, 45, 51, 54], "mainlaneloc": 9, "rout": [9, 39, 42, 45, 55, 56], "lai": 9, "otherwis": [9, 18, 39, 45, 56], "despawen": 9, "varieti": 9, "roadsign": 9, "german": [9, 23, 33], "regul": [9, 38], "u": [9, 13, 38], "china": [9, 38], "appendix": 9, "supplementari": [9, 12], "main": [9, 12, 17, 33], "germani": [9, 38], "stvo": 9, "bast_2017": 9, "verkehrstechnik": 9, "fachthemen": 9, "verkehrszeichen": 9, "vz": 9, "download": [9, 13, 17, 22], "trafficsign": [9, 39, 54], "subtyp": [9, 46], "givewai": 9, "205": 9, "206": 9, "donotent": 9, "267": 9, "environmentalzonebegin": 9, "270": 9, "environmentalzoneend": 9, "maximumspeedlimit": 9, "274": 9, "speedlimit": 9, "km": 9, "speedlimitzonebegin": 9, "30km": 9, "20km": 9, "speedlimitzoneend": 9, "minimumspeedlimit": 9, "275": 9, "overtakingbanbegin": 9, "276": 9, "overtakingbantrucksbegin": 9, "277": 9, "endofmaximumspeedlimit": 9, "278": 9, "endofminimumspeedlimit": 9, "279": 9, "overtakingbanend": 9, "280": 9, "overtakingbantrucksend": 9, "281": 9, "endoffallspeedlimitsandovertakingrestrict": 9, "282": 9, "rightofwaynextintersect": 9, "301": 9, "rightofwaybegin": 9, "306": 9, "rightofwayend": 9, "307": 9, "townbegin": 9, "310": [9, 44], "town": 9, "townend": 9, "311": 9, "trafficcalmeddistrictbegin": 9, "325": 9, "trafficcalmeddistrictend": 9, "highwaybegin": 9, "330": [9, 44], "highwayend": 9, "highwayexit": 9, "333": 9, "announcehighwayexit": 9, "448": 9, "preannouncehighwayexitdirect": 9, "449": 9, "highwayexitpol": 9, "450": 9, "50": [9, 12, 16, 38, 41, 43, 44, 45], "51": [9, 44], "52": [9, 44], "highwai": [9, 33, 38, 52], "exit": [9, 13, 56], "100m": 9, "200m": 9, "300m": 9, "announcerightlaneend": 9, "531": 9, "11": [9, 21, 24, 26, 27, 28, 29, 30, 44, 51], "announceleftlaneend": 9, "21": [9, 44], "22": [9, 12, 16, 17, 38, 44], "23": [9, 44], "distanceind": 9, "1004": 9, "31": [9, 14, 38, 44, 55], "32": [9, 17, 44, 56], "roadmark": [9, 41], "pedestriancross": 9, "293": 9, "294": 9, "pedestrian": [9, 23, 33, 39, 40], "crosswalk": 9, "manual": [9, 15, 33, 57], "devic": 9, "mutcd": 9, "fhwa": 9, "2009r1r2": 9, "pdf_index": 9, "htm": [9, 21], "e5": 9, "e2": 9, "e1": 9, "preannouncehighwayexit": 9, "2a": 9, "r1": [9, 42], "r2": [9, 42], "donotpass": 9, "overtakingban": 9, "r4": 9, "r5": 9, "rightlaneend": 9, "w4": 9, "2r": 9, "leftlaneend": 9, "2l": 9, "upload": 9, "wikimedia": 9, "wikipedia": 9, "8c": 9, "china_gb_5768": 9, "2009": 9, "endoflan": 9, "38": 9, "endofspeedlimit": 9, "39": 9, "1km": 9, "50b": 9, "500m": 9, "50c": 9, "50d": 9, "yellow": [9, 39], "green": [9, 11, 39], "000": [9, 41], "001": [9, 56], "arrow": 9, "011": 9, "upward": 9, "und": [9, 57], "40": [9, 44, 45], "print": [9, 13], "getlanemark": 9, "soffset": [9, 41], "meter": [9, 12, 42, 56], "bold": [9, 21], "laneboundari": 9, "solid": [9, 41, 46], "broken": [9, 41, 46], "15m": 9, "travel": [9, 45, 49, 52, 56], "align": [9, 12, 56], "target": [9, 11, 15, 20, 35, 39, 43, 49, 53], "occupi": 9, "adher": [9, 12, 53], "nearest": 9, "furthest": 9, "straight": 9, "euclidean": 9, "return": [9, 12, 40, 50, 56], "prematur": 9, "invalid": [9, 11, 55, 56], "studio": [10, 15, 18, 21], "your": [10, 11, 12, 13, 15, 17, 18, 21, 22, 26, 33], "build": [10, 12, 14, 15, 16, 18, 22, 23, 27, 56], "eclips": [11, 17, 24, 25, 26, 27, 28, 29, 30, 33, 53], "public": [11, 12, 25], "licens": [11, 12, 14], "privat": [11, 12, 39], "commerci": 11, "rule": [11, 12, 38, 39, 44, 54], "epl": [11, 25], "facilit": [11, 12], "distribut": [11, 17, 38, 44, 54, 55, 56], "integr": [11, 13, 22, 52], "proprietari": 11, "made": [11, 12, 22, 25, 56], "seam": 11, "extens": [11, 12, 13, 39, 56], "simpli": [11, 21, 26, 33, 49, 50], "clearli": 11, "easi": [11, 22], "close": [11, 13, 33, 39, 46, 49], "op_rel_root": 11, "op_rel_sim": 11, "readabl": [11, 12], "literalinclud": 11, "contrib": [11, 39, 56, 57], "sceneryconfigur": [11, 39, 41, 57], "xodr": [11, 39, 41, 57], "sure": [11, 13, 17, 18, 27, 48], "clean": 11, "outdat": [11, 20, 21], "restructuredtext": 11, "resid": 11, "clone": [11, 17], "overwritten": [11, 40], "preced": [11, 56], "toc": 11, "glob": [11, 13], "wildcard": 11, "rst": [11, 14], "digit": [11, 44], "underscor": 11, "10_quickstart": 11, "inject": 11, "head": [11, 48, 52, 54], "ascii": 11, "filenam": [11, 33, 45, 56], "sphinx": [11, 17, 21], "special": [11, 12, 17, 38, 39, 44, 45, 56, 57], "slash": 11, "preparedoccustom": 11, "coexist": 11, "templat": 11, "diff": 11, "highlight": 11, "preparedoc": 11, "geni": [11, 14], "jenkins_ag": [11, 14], "workspac": [11, 13, 14], "openpass_simulator_build_v1": [11, 14], "developer_inform": 11, "_static": 11, "custom_doc": 11, "19": [11, 44, 55], "resolv": [11, 13, 18, 20], "custom_rel_sim": 11, "macro": 11, "copy_document": 11, "33": [11, 38, 44, 51], "34": 11, "regex": [11, 12], "conf": [11, 13], "dep": [11, 13, 17, 18, 21, 57], "o": [11, 13, 20, 57], "configure_fil": 11, "43": [11, 39, 55], "45": 11, "old": [11, 52], "context": [11, 12], "glob_recurs": 11, "rstfile": 11, "list_directori": 11, "cmakelist": 11, "snippet": [11, 51], "copyright": 11, "2021": 11, "tech": 11, "gmbh": 11, "program": [11, 13, 17, 21, 23, 25], "accompani": [11, 25], "materi": [11, 25], "legal": [11, 25], "spdx": [11, 25], "identifi": [11, 25, 38, 43, 45, 56], "with_doc": [11, 13, 18], "add_custom_target": 11, "cmake_command": 11, "dsrc": 11, "openpass_os_dir": 11, "ddst": 11, "cmake_binary_dir": 11, "comment": [11, 12], "cmake_current_list_dir": 11, "sphinx_execut": 11, "dwith_api_doc": 11, "with_api_doc": [11, 13], "exhal": [11, 17], "ON": [11, 13, 18, 21], "cmake_echo_color": 11, "page": [11, 12, 56], "set_properti": 11, "properti": [11, 39, 56], "additional_make_clean_fil": 11, "cmake_install_prefix": [11, 13, 18], "endif": 11, "dockerfil": [11, 13], "dockerimagenam": 11, "modifi": [11, 12, 13, 18, 57], "modern": 12, "17": [12, 13, 14, 17, 20, 22, 44], "iso": 12, "cpp": [12, 13, 45], "concis": 12, "summar": 12, "pragma": 12, "namespac": [12, 20], "foobar": 12, "lowercamelcas": 12, "uppercamelcas": 12, "constexpr": 12, "magic_numb": 12, "999": [12, 45, 54, 56], "upper_cas": 12, "mymemb": 12, "member": 12, "ctor": 12, "void": 12, "bar": [12, 13], "barbar": 12, "bool": [12, 38, 42, 45, 55, 56], "counter": 12, "yaabar": 12, "yaa": 12, "abbrevi": 12, "lowercas": 12, "appropri": [12, 13, 55], "everyon": 12, "xmlparser": 12, "port": 12, "vector2d": 12, "opendriveid": 12, "worldinterfac": [12, 54, 56], "pure": 12, "withtout": 12, "getdist": 12, "const": 12, "exibit": 12, "excess": 12, "gmock": [12, 22], "fake": 12, "fakeworld": 12, "roi": 12, "osherov": 12, "mock": [12, 22, 23, 56], "whick": 12, "stub": 12, "easili": [12, 17, 22], "portion": 12, "agentblueprint": 12, "agentblueprintinterfac": 12, "dai": [12, 42], "gettimeofdai": 12, "suffici": [12, 50], "agentnetwork": [12, 45], "easier": [12, 26, 39], "componentport": 12, "outputport": 12, "locallinkid": 12, "setsignalvalu": 12, "inputport": 12, "getsignalvalu": 12, "entir": [12, 42, 55, 56], "adasdriv": 12, "unavoid": 12, "enum": [12, 45, 56], "prefer": [12, 13], "decor": 12, "alias": 12, "foopart": 12, "hungarian": 12, "notat": 12, "icount": 12, "partmap": 12, "magic": 12, "global": [12, 38], "except": [12, 44, 53, 56], "autogener": 12, "slot": 12, "qt": [12, 18, 20, 24, 26, 27, 28, 29, 30], "on_button_click": 12, "complex": 12, "what": [12, 13, 28, 33], "why": [12, 21, 45, 49], "third": [12, 17, 20, 22, 32], "person": [12, 39], "verb": 12, "syntax": [12, 20, 44], "multi": [12, 20], "param": 12, "markdown": [12, 22], "shortnam": 12, "longernam": 12, "verylongnam": 12, "stdio": 12, "mathemat": 12, "1415": [12, 39], "radius_m": 12, "82": 12, "calculatearea": 12, "polymorph": 12, "unless": [12, 21, 39, 46], "Of": 12, "eol": [12, 13], "gitattribut": 12, "git": 12, "edit": [12, 13, 24, 26, 27, 28, 29, 30, 57], "trim": 12, "trail": [12, 56], "whitespac": [12, 13], "space": [12, 16, 21, 31, 32], "tab": [12, 17, 32], "vscode": [12, 13, 18, 21], "linux": [12, 13, 15, 16, 17, 18, 20, 21, 22], "debian": [12, 13, 16, 17, 20], "bookworm": [12, 16, 17, 20], "ubuntu": [12, 13, 16, 17], "04": [12, 16, 17], "pacman": [12, 17], "w64": [12, 13, 17, 23], "x86_64": [12, 13, 17], "clang": [12, 13, 17, 22], "apt": [12, 13, 17, 20], "basedonstyl": 12, "googl": [12, 21], "accessmodifieroffset": 12, "allowshortfunctionsonasinglelin": 12, "inlin": 12, "alignoperand": 12, "alignafteroper": 12, "binpackargu": 12, "binpackparamet": 12, "breakbeforebrac": 12, "allman": 12, "breakbeforebinaryoper": 12, "columnlimit": 12, "120": [12, 44], "spacesinlinecommentprefix": 12, "commentpragma": 12, "includecategori": 12, "gtest": [12, 17, 18, 20, 22], "q": 12, "termin": [12, 13, 42], "source_fil": 12, "tell": [12, 20], "qualiti": 12, "tidi": 12, "clear": [12, 13, 31], "help": [12, 13, 21, 27, 33], "collabor": 12, "among": [12, 13, 56], "team": 12, "excerpt": 12, "BY": 12, "author": [12, 56], "short": [12, 17, 18, 39, 50, 56], "summari": 12, "charact": [12, 45], "bodi": 12, "footer": 12, "categor": 12, "natur": [12, 53], "feat": 12, "enhanc": [12, 33], "bug": 12, "style": 12, "improv": [12, 21, 33], "chore": 12, "mainten": 12, "modif": [12, 13, 17, 33, 57], "ci": [12, 17, 24, 26, 27, 28, 29, 30], "perf": 12, "revert": 12, "contextu": 12, "parenthesi": 12, "brief": 12, "exce": [12, 50], "justif": 12, "bullet": 12, "better": [12, 13, 33], "essenti": [12, 17], "correctli": [12, 13, 28], "enclos": 12, "angular": [12, 45, 49], "bracket": 12, "search": [12, 13, 21, 46], "stdlib": 12, "cmake_prefix_path": [12, 13, 18], "my_compon": 12, "thing": [13, 48], "testmat": 13, "pane": 13, "selector": 13, "bottom": 13, "ctest": 13, "breviti": 13, "thirdparti": [13, 15, 18, 21], "visualstudio": 13, "com": [13, 21, 56], "googletest": [13, 17, 21], "cygwin": [13, 23], "adapt": [13, 51], "remot": [13, 17, 20], "docker": 13, "reproduc": [13, 28], "machin": [13, 17, 18], "powershel": 13, "administr": 13, "mode": [13, 27, 33], "click": [13, 26, 29, 31, 32, 57], "wsl": 13, "restart": [13, 17], "onlin": 13, "distro": 13, "distronam": 13, "l": [13, 49], "sudo": [13, 18], "transport": [13, 54], "ca": [13, 17], "certif": [13, 17], "curl": 13, "temporarili": 13, "releas": [13, 17, 18, 21, 22, 24, 26, 27, 28, 29, 30, 56], "trust": 13, "fssl": 13, "gpg": 13, "tee": 13, "asc": 13, "echo": 13, "deb": 13, "arch": 13, "amd64": 13, "version_codenam": 13, "stabl": 13, "ce": 13, "cli": 13, "containerd": 13, "usermod": 13, "ag": 13, "prompt": [13, 57], "membership": 13, "dockerd": 13, "info": [13, 21, 28, 56], "cgroup": 13, "blkio": 13, "someth": 13, "listen": [13, 39], "var": 13, "sock": 13, "network": [13, 33, 41], "issu": [13, 21, 22], "compile_command": 13, "ngenerateresolvconf": 13, "unlink": 13, "nameserv": 13, "legaci": [13, 20], "iptabl": 13, "And": [13, 18], "rerun": 13, "unix": [13, 17, 23], "usernam": [13, 18, 20], "workspacefold": 13, "daemon": 13, "wsldistro": 13, "enter": 13, "palett": 13, "press": [13, 28], "ctrl": [13, 28, 32], "dev": [13, 17], "isol": 13, "statu": [13, 17, 40], "dll": [13, 21, 56], "explor": 13, "highli": 13, "environment": [13, 17, 23, 33], "msystem": 13, "mingw64": [13, 18, 21], "chere_invok": 13, "msys64": [13, 17, 18], "investig": 13, "recent": [13, 17, 22], "usr": [13, 17, 18, 21], "cygpath": 13, "ex": [13, 17, 26, 57], "alreadi": [13, 17, 22], "even": [13, 53], "suggest": [13, 17], "env": 13, "setx": 13, "choos": [13, 26, 28, 29, 31, 32, 50], "reload": 13, "optim": [13, 21, 48], "insert": 13, "preferredgener": 13, "msy": [13, 17, 18, 21, 23], "makefil": [13, 18, 21], "environmentvari": 13, "cxx": 13, "fortran": 13, "fc": 13, "gcc": [13, 17, 20, 21, 23], "cmakepath": 13, "configureset": 13, "cmake_make_program": 13, "workspaceroot": 13, "win64": [13, 21], "yase": [13, 18, 20], "fmilibrari": [13, 18, 20, 21], "mantleapi": [13, 18, 20, 39, 53], "protobuf": [13, 17, 18, 20, 21], "minizip": [13, 18, 20, 21], "openscenario_engin": [13, 18, 20], "openscenario_api": [13, 18, 20], "zlib": [13, 20], "scmthirdparti": 13, "cmake_build_typ": [13, 18], "use_ccach": [13, 18], "with_debug_postfix": [13, 18], "openpass_adjust_output": [13, 18], "install_extra_runtime_dep": [13, 18], "install_system_runtime_dep": 13, "c_cpp_properti": 13, "cmake_export_compile_command": 13, "adjust": [13, 17, 18, 21, 26, 39, 44, 49, 57], "paralleljob": 13, "parallelexecutionlimit": 13, "parallelexecutionofexecutablelimit": 13, "discoveri": 13, "temp": 13, "ldd": 13, "_test": 13, "direcori": 13, "advancedexecut": 13, "os_env": 13, "profil": [13, 17, 20, 33, 38, 39, 42, 45, 51, 55, 56, 57], "overridenam": 13, "bash": [13, 17, 23], "login": 13, "icon": 13, "msys2_path_typ": 13, "inherit": 13, "defaultprofil": 13, "enforc": 13, "editor": [13, 24], "formatonsav": 13, "formatonsavemod": 13, "detectindent": 13, "insertspac": 13, "renderfinalnewlin": 13, "dim": 13, "insertfinalnewlin": 13, "trimfinalnewlin": 13, "trimtrailingwhitespac": 13, "with_": 13, "qt5": [13, 17], "linux64": [13, 21], "with_test": 13, "tmp": 13, "renderwhitespac": 13, "trimautowhitespac": 13, "cstandard": 13, "c99": 13, "cppstandard": 13, "configurationprovid": 13, "compilecommand": 13, "intellisensemod": 13, "x64": [13, 16], "hint": [13, 21], "cach": [13, 20, 22], "reconfigur": 13, "src": 13, "forget": 13, "got": 13, "FOR": 13, "AND": 13, "cppdbg": 13, "launchtargetpath": 13, "stopatentri": 13, "cwd": 13, "mingw32": 13, "buildkit": 13, "externalconsol": 13, "mimod": 13, "gdb": [13, 17], "midebuggerpath": 13, "setupcommand": 13, "enabl": [13, 14, 17, 21, 33], "pretti": [13, 21], "ignorefailur": 13, "TO": 13, "proper": [13, 21, 33, 39, 44], "resolut": [13, 21], "startup": 13, "monitor": [13, 49], "But": [13, 38], "know": [13, 21], "pai": [13, 18], "platform": [14, 15, 20, 21, 23, 56], "assess": [14, 23], "safeti": [14, 23, 33], "interact": [14, 22, 27, 33, 51], "situat": [14, 21, 23, 33, 47, 49], "suit": [14, 17], "stand": [14, 52], "alon": 14, "graphic": [14, 16], "evolv": 14, "averag": [14, 56], "monolith": 14, "prerequisit": [14, 15, 18, 21, 22], "guidanc": [14, 15, 49, 51], "conan": [14, 15, 17], "gui": [14, 22, 26, 27, 28, 29, 30, 33, 47, 57], "tutori": [14, 15, 26, 33, 58], "depth": [14, 23, 33, 37, 42, 57], "endtoend": [14, 17, 21], "guidelin": [14, 48], "glossari": 14, "paragraph": [14, 57], "user_guid": 14, "10_scenario_simul": 14, "pcm": [14, 23, 24, 26, 27, 30, 33, 34, 47], "20_pcm_simul": 14, "hardwar": [15, 16], "finish": [15, 28, 53], "design": [16, 49, 56], "veri": [16, 47], "lightweight": 16, "huge": [16, 51], "gpu": 16, "cpu": 16, "commonli": 16, "exemplarili": 16, "intel": 16, "architectur": [16, 44, 56], "ghz": 16, "clock": 16, "frequenc": 16, "i5": 16, "10310u": 16, "gb": 16, "uhd": 16, "620": 16, "free": [16, 38, 51], "hard": 16, "disk": 16, "parti": [17, 20, 22], "websit": [17, 56], "latest": [17, 21, 22, 24, 26, 27, 28, 29, 30], "fine": 17, "understand": [17, 33], "lt": 17, "successfulli": [17, 18, 33, 57], "appropi": 17, "upgrad": 17, "syuu": 17, "resum": 17, "suu": 17, "boost": [17, 18, 20], "ccach": [17, 21], "doxygen": 17, "graphviz": 17, "xmlpattern": 17, "lxml": 17, "font": 17, "equat": [17, 49, 50, 51, 56], "render": 17, "texliv": 17, "latex": 17, "extra": 17, "zziplib": 17, "libxslt": 17, "devel": 17, "sphinx_rtd_them": 17, "setuptool": 17, "myst": 17, "parser": 17, "date": [17, 20, 41], "pip3": 17, "approvaltest": 17, "breath": 17, "watchdog": 17, "credenti": 17, "databas": [17, 28, 33], "antlr4": 17, "libboost": 17, "libgmock": 17, "libgtest": 17, "libprotobuf": 17, "libqt5xmlpatterns5": 17, "libantlr4": 17, "runtime4": 17, "java": 17, "openjdk": 17, "jre": 17, "pkg": [17, 20], "python3": 17, "distutil": 17, "qtbase5": 17, "uuid": 17, "rtd": 17, "theme": 17, "sphinxcontrib": 17, "spell": 17, "goal": [17, 33], "unfamiliar": [17, 18], "introduct": [17, 18], "strictli": [17, 18, 39, 53], "cd": [17, 18], "gitlab": [17, 53], "suffer": 17, "strang": [17, 33], "letter": 17, "subst": 17, "navig": [17, 18, 57], "branch": 17, "conanfil": [17, 20], "conancent": 17, "recip": 17, "conanprofile_linux": 17, "conanprofile_window": 17, "unexpect": 17, "outcom": 17, "script": [17, 20], "15_prepare_thirdparti": [17, 20], "sh": [17, 20], "extract": [17, 56], "zulu": 17, "java_hom": 17, "export": 17, "python_windows_ex": 17, "upon": [17, 56], "properli": [18, 41], "topic": [18, 22], "mkdir": 18, "against": 18, "direct_deploi": [18, 20], "home": 18, "permiss": 18, "chown": 18, "uesrnam": 18, "attent": 18, "quotat": 18, "goe": [18, 56], "beyond": [18, 22], "failur": [18, 21], "j3": [18, 21], "decentr": 20, "learn": [20, 57], "hook": 20, "involv": [20, 45, 49, 50], "metadata": 20, "path_to_recip": 20, "packageopt": 20, "pr": 20, "conanprofil": 20, "path_to_sourc": 20, "creator": 20, "owner": 20, "influenc": [20, 39, 49], "mantleapi_vers": 20, "yase_vers": 20, "commit": 20, "deploy": 20, "cmakedep": 20, "deploi": 20, "my": 20, "exact": [20, 21, 57], "libiconv": 20, "libxml2": 20, "b2": 20, "85": 20, "v4": 20, "d0c0e58d17358044cc9018c74308b45f6097ecfb": 20, "include_util": 20, "ftp": 20, "sax1": 20, "no_kil": 20, "with_pq": 20, "with_libpng": 20, "openssl": 20, "opengl": 20, "qtxmlpattern": 20, "with_x11": 20, "qtwayland": 20, "toolset": 20, "fpic": 20, "without_chrono": 20, "without_cobalt": 20, "without_contain": 20, "without_context": 20, "without_contract": 20, "without_coroutin": 20, "without_date_tim": 20, "without_fib": 20, "without_iostream": 20, "without_json": 20, "without_local": 20, "without_log": 20, "without_nowid": 20, "without_stacktrac": 20, "without_test": 20, "without_thread": 20, "without_tim": 20, "without_type_erasur": 20, "without_url": 20, "without_wav": 20, "varibl": 21, "overriden": 21, "structer": 21, "cmake_": 21, "approach": [21, 51, 56], "compat": [21, 23, 56], "recogn": 21, "explicit": [21, 44], "pwd": 21, "conjunct": [21, 39], "msvc": [21, 22], "postfix": 21, "cmake_lang_compil": 21, "prevent": [21, 23], "255": 21, "scenario": [21, 23, 27, 33, 34, 35, 38, 41, 45, 53, 55, 56], "consider": [21, 49, 50, 55, 56], "slower": [21, 22], "coverag": 21, "test_nam": 21, "regist": [21, 39], "add_openpass_target": 21, "helpermacro": 21, "lcov": 21, "_coverag": 21, "genhtml": 21, "_html": 21, "testcoveragereport": 21, "gcov": 21, "fastcov": 21, "coverage_exclud": 21, "substr": 21, "ran": 21, "arena": 21, "protocol": 21, "fortun": 21, "fall": 21, "hood": 21, "major": [21, 22], "tutorialspoint": 21, "unix_command": 21, "opsimulation_test": 21, "known": [22, 50, 52], "maintain": [22, 55], "savannah": 22, "faster": 22, "recompil": 22, "regularli": 22, "definilti": 22, "regularili": 22, "20g": 22, "older": 22, "reli": 22, "tri": 22, "stick": 22, "far": [22, 42, 45, 49], "anymor": [22, 28, 50], "74": [22, 44], "deprec": [22, 24, 26, 27, 28, 29, 30], "header": [22, 31, 32, 41, 45], "googlemock": 22, "lastest": 22, "brought": 22, "newer": 22, "precaut": 22, "dissolv": 22, "dedic": 22, "truth": [22, 33], "backend": 22, "storag": 22, "consum": [22, 44], "centric": 22, "view": [22, 24, 26, 27, 28, 29, 30, 37], "metainfo": 22, "datastructur": 22, "scratch": 22, "advanc": [23, 27, 33], "aeb": [23, 38, 44, 48, 57], "autonom": [23, 56, 57], "danger": 23, "equip": [23, 57], "gida": [23, 33], "accid": [23, 33, 45], "studi": [23, 33], "omit": [23, 55], "precas": 23, "ahigh": 23, "flexibl": 23, "gnu": 23, "tradition": 23, "intend": [23, 45, 55], "supplement": 23, "rewrit": 23, "posix": 23, "od": 23, "percept": 23, "autom": 23, "opensimulationinterfac": [23, 56], "github": [23, 56], "pre": [23, 57], "matrix": [23, 33], "vufo": 23, "lang": 23, "en": 23, "minor": [24, 26, 27, 28, 29, 30, 51], "v0": [24, 26, 27, 28, 29, 30], "openpass_simulator_build": [24, 26, 27, 28, 29, 30], "openpass_0": [24, 26, 27, 28, 29, 30], "oblig": 26, "opsimulationmanag": 26, "Such": [26, 33], "inscrib": 26, "save": [26, 52], "screen": 26, "shot": 26, "demo": [26, 27, 57], "plan": [26, 49], "although": [26, 56], "matter": [27, 49], "ga": 27, "inclus": 27, "button": 28, "resimul": 28, "addition": [28, 33, 38], "comma": [28, 31, 32, 56], "car1_index": 28, "car2_index": 28, "other_index": 28, "seed": [28, 33, 42, 45, 56], "randomli": [28, 42], "car1": 28, "car2": 28, "polar": 28, "x_": [28, 52], "y_": [28, 52], "math": 28, "p_": [28, 49, 56], "int_": 28, "v_": [28, 50, 51, 52], "dt": 28, "k": 28, "factor": [28, 49, 52, 56], "chosen": [28, 41, 42, 50, 52, 57], "interrupt": 28, "result_pcm": 28, "1000208": 28, "var_00001": 28, "brows": 29, "timeplot": 30, "histogram": 31, "treeview": 31, "row": 31, "scrollabl": 31, "white": 31, "background": [31, 33, 48, 49], "preview": 31, "panel": 31, "frame": [31, 32], "plot": 32, "track_id": 32, "item": [32, 38], "yield": 32, "track": [32, 45], "stakehold": 33, "predict": 33, "Its": 33, "precrash": 33, "past": 33, "ass": 33, "technologi": 33, "That": 33, "variat": [33, 47, 57], "intervent": [33, 39], "beginn": 33, "target_object": 33, "openpass_at_a_gl": 33, "insight": 33, "record": 33, "particular": [33, 55, 56], "go": [33, 45], "serv": 33, "hand": 33, "sens": [33, 47], "tackl": 33, "interdepend": 33, "bundl": 33, "loop": [33, 49, 50], "focus": 33, "chart": 33, "deptict": 33, "decreas": [33, 51, 56], "asam": [33, 39, 41, 53], "placement": [33, 38], "xosc": [33, 39, 42, 57], "park": 33, "lot": 33, "obstacl": [33, 46], "catalog": [33, 38, 52, 56], "probabilist": [33, 47], "heart": 33, "composit": [33, 38, 39], "determinist": 33, "vehiclemodelcatalog": 33, "pedestrianmodelcatalog": 33, "profilegroup": [33, 55, 56], "conform": [33, 53], "vehiclecatalog": [33, 38, 56], "pedestriancatalog": 33, "histor": 33, "word": [33, 39, 46], "vehiclemodelscatalog": [33, 38, 39, 57], "pedestrianmodelscatalog": [33, 39, 57], "simulationconfig": [33, 35, 38, 57], "subset": [33, 44], "expertis": 33, "blueprint": 33, "concret": 33, "convent": [33, 46], "put": 33, "observation_log": [33, 36, 42], "central": 33, "seen": [33, 54, 56], "cyclics_run_": 33, "cyclics_run_000": [33, 45], "behav": [33, 39], "did": 33, "primer": [35, 36], "audienc": 35, "observation_entityrepositori": [36, 42], "trafficgroup": [38, 48], "vehiclemodel": [38, 39], "driverprofil": [38, 51], "car_bmw_7": [38, 45], "luxuryclasscarag": [38, 55], "agentfollowingdriv": 38, "noada": 38, "withaeb": 38, "car_mini_coop": [38, 39], "car_bmw_7_1": [38, 39], "egoag": 38, "aebprofil": 38, "sensorlink": 38, "sensorid": 38, "inputid": [38, 56], "camera": [38, 56], "geometric2d": [38, 45, 56], "frontwindow": 38, "sensorposit": 38, "pitch": [38, 39, 41, 45], "componentnam": 38, "exampleprofil": 38, "stringparamet": [38, 44], "lorem": [38, 44], "ipsum": [38, 44], "doublevector": [38, 55], "doubleparamet": 38, "56": 38, "78": 38, "normaldistribut": [38, 44, 55, 56], "randomparamet": [38, 44], "sd": [38, 44, 55, 56], "anotherprofil": 38, "intvector": [38, 55], "stringvector": [38, 42, 45, 55], "drawn": 38, "mu": [38, 55], "sigma": [38, 55], "equival": [38, 39], "lognormaldistribut": [38, 55], "uniformdistribut": 38, "none": [38, 39], "exponentialdistribut": 38, "lambda": 38, "gammadistribut": 38, "nest": 38, "examplelist": 38, "firstparamet": 38, "secondparamet": 38, "substitut": [38, 49], "grouptyp": 38, "profilenam": 38, "driverlibrari": 38, "librarynam": 38, "vari": 38, "countri": 38, "cn": 38, "openspeedlimit": 38, "keeptoouterlan": 38, "outermost": 38, "dontovertakeonouterlan": 38, "prohibit": 38, "overtak": 38, "lefthand": 38, "formrescuelan": 38, "jam": [38, 51], "corridor": 38, "zippermerg": 38, "zipper": 38, "inf": 38, "openspeedlimittruck": 38, "2222222": 38, "openspeedlimitbus": 38, "7777777": 38, "2928": 38, "8224": 38, "3333": 38, "25": [38, 41, 44], "declar": [39, 43], "simulation_tim": 39, "parametertyp": 39, "123": [39, 42], "endtim": 39, "conditionedg": 39, "rise": 39, "byvaluecondit": 39, "simulationtimecondit": 39, "greaterthan": 39, "reus": 39, "trajectorycatalog": 39, "followtrajectori": [39, 48], "catalogloc": 39, "controllercatalog": 39, "maneuvercatalog": 39, "miscobjectcatalog": 39, "environmentcatalog": 39, "routecatalog": 39, "car_bmw_i3": 39, "car_bmw_3": 39, "car_bmw_7_2": 39, "truck": 39, "bicycl": 39, "meaningless": 39, "pedestrian_child": 39, "pedestrian_adult": 39, "logicfil": 39, "filepath": 39, "scenegraphfil": 39, "junction": [39, 41, 42], "trafficsignalcontrol": 39, "phase1": 39, "trafficsignalst": 39, "trafficsignalid": 39, "phase2": 39, "phase3": 39, "phase4": 39, "flash": [39, 45], "predefin": [39, 57], "entityselect": 39, "consit": 39, "contol": 39, "keepveloc": [39, 48], "keeplateraloffset": 39, "specifii": 39, "scenarioobject": 39, "catalogrefer": 39, "catalognam": 39, "entrynam": 39, "objectcontrol": 39, "middleclasscarag": [39, 45, 55], "parameterassign": 39, "parameterref": 39, "refert": 39, "clarif": 39, "desrib": 39, "standstil": 39, "visiblilityact": 39, "entityref": 39, "privateact": 39, "laneposit": 39, "roadid": [39, 55], "longitudinalact": 39, "speedactiondynam": 39, "dynamicsshap": [39, 53], "dynamicsdimens": [39, 53], "speedactiontarget": 39, "absolutetargetspe": 39, "controlleract": 39, "activatecontrolleract": 39, "controllerref": 39, "1472558076": 39, "200": [39, 44, 45], "routingact": 39, "waypoint": 39, "routestrategi": 39, "fastest": 39, "roadposit": [39, 42, 45], "230": 39, "3083973": 39, "2015840166": 39, "fire": 39, "never": [39, 53, 56], "perhap": 39, "byentitycondit": 39, "unrel": 39, "road_id": 39, "sinusoid": [39, 53], "lateralact": 39, "lanechangeactiondynam": 39, "lanechangetarget": 39, "worldposit": 39, "trajectoryref": 39, "vertex": 39, "570796326": 39, "timerefer": 39, "trajectoryfollowingmod": [39, 53], "followingmod": 39, "trajectorya": 39, "logic": [39, 50, 55], "acquireposit": 39, "tcoordin": [39, 42, 45], "agentinfront": [39, 42, 45], "relativeobjectposit": 39, "dx": 39, "dy": 39, "s1": [39, 46], "instantli": 39, "zone": 39, "immedi": 39, "reflect": 39, "absoultetargetspe": 39, "relativetargetspe": 39, "scenarioag": 39, "speedtargetvaluetyp": 39, "keyword": 39, "componentstatechang": 39, "dynamics_trajectoryfollow": [39, 44], "univers": 39, "scenariocontrolinterfac": 39, "empow": 39, "tailor": 39, "customparamet": [39, 44], "hello": 39, "transformpolylinepointsfromworldtoloc": 40, "transformpositionfromworldtoloc": 40, "createmap": 40, "addentitytocontrol": 40, "removecontrollerfroment": 40, "getqueryservic": 40, "getconvert": 40, "getgeometryhelp": 40, "getentityrepositori": 40, "getcontrollerrepositori": 40, "setdatetim": 40, "getdatetim": 40, "getsimulationtim": 40, "setweath": 40, "setroadcondit": 40, "setuserdefinedvalu": 40, "getuserdefinedvalu": 40, "nullopt": 40, "opendriveposit": 40, "getlaneorient": 40, "ispositiononlan": 40, "findlaneposeatdistancefrom": 40, "getlongitudinallanedistancebetweenposit": 40, "findrelativelaneposeatdistancefrom": 40, "externalcontrollerconfig": 40, "agentprofil": [40, 44, 55], "getuniqueid": 40, "setnam": 40, "getnam": 40, "setveloc": 40, "getveloc": 40, "setacceler": 40, "getacceler": 40, "getorient": 40, "setorientationr": 40, "getorientationr": 40, "setorientationacceler": 40, "getorientationacceler": 40, "getassignedlaneid": 40, "getvis": 40, "setproperti": 40, "getproperti": 40, "setindicatorst": 40, "getindicatorst": 40, "staticobject": 40, "gethost": 40, "getent": 40, "registerentitycreatedcallback": 40, "registerentitydeletedcallback": 40, "freeli": [41, 56], "roadnetwork": 41, "meet": [41, 50], "abort": 41, "revmajor": 41, "revminor": 41, "testfil": 41, "feb": 41, "24": [41, 42, 44], "06": 41, "2007": 41, "north": 41, "0000000000000000e": 41, "003": 41, "south": 41, "east": 41, "west": 41, "5139": 41, "7188686309819": 41, "planview": 41, "hdg": 41, "4000": 41, "285": 41, "spiral": 41, "curvstart": 41, "curvend": 41, "0028500000000000066": 41, "4285": 41, "4280": 41, "3350391612494": 41, "629710830536482": 41, "40612500000000096": 41, "183": 41, "7188686309816": 41, "4468": 41, "4422": 41, "9323279193268": 41, "143": 41, "12204699500415": 41, "92972377559829977": 41, "571": 41, "5039": 41, "4476": 41, "6651848689908": 41, "694": 41, "88624436808436": 41, "7453292519943295": 41, "elevationprofil": 41, "lateralprofil": 41, "lanesect": 41, "border": 41, "75": [41, 44], "roadsidemarkerpost": 41, "zoffset": 41, "validlength": 41, "rail": [41, 46, 57], "guardrail": [41, 46], "precis": 42, "indirectli": 42, "said": 42, "experimentid": 42, "numberofinvoc": 42, "rerol": 42, "unsign": 42, "532725206": 42, "worldlibrari": 42, "openscenariofil": 42, "highwayscenario": 42, "timeofdai": 42, "human": 42, "dynamicsregulardriv": [42, 44], "weather": 42, "trafficrul": 42, "turningr": 42, "70": [42, 44], "125": 42, "250": [42, 44], "sunni": 42, "18": 42, "300": [42, 45, 56], "400": [42, 44], "raini": 42, "snowi": 42, "incom": 42, "chanc": 42, "outgo": 42, "r3": 42, "the_observation_librari": 42, "the_kei": 42, "the_valu": 42, "another_kei": 42, "spawnerpreruncommon": 42, "defaultpreruncommon": [42, 55], "spawnerruntimecommon": 42, "defaultruntimecommon": [42, 55], "encod": 42, "utf": 42, "schemavers": 42, "outputfilenam": [42, 45], "loggingcyclicstocsv": [42, 45, 57], "logginggroup_trac": [42, 45], "xposit": [42, 45], "yposit": [42, 45], "yawangl": [42, 45], "logginggroup_roadposit": [42, 45], "logginggroup_roadpositionextend": [42, 45], "secondarylan": [42, 45], "logginggroup_sensor": [42, 45], "_detectedag": [42, 45], "_visibleag": [42, 45], "logginggroup_vehicl": [42, 45], "accelerationpedalposit": [42, 45], "brakepedalposit": [42, 45], "enginemo": [42, 45], "steeringangl": [42, 45], "yawrat": [42, 45], "logginggroup_visu": [42, 45], "accelerationego": [42, 45, 56], "brakelight": [42, 45], "indicatorst": [42, 45], "lightstatu": [42, 45], "logginggroup": 42, "filenameprefix": [42, 46], "writepersistentent": [42, 46], "consolid": [42, 46], "concaten": [42, 46], "_run_": [42, 46], "_persist": [42, 46], "persist": [42, 46], "schema": [43, 44], "ssppath": [43, 56], "ssp1": [43, 44, 56], "502": 43, "experienc": 44, "knowledg": [44, 50], "isn": [44, 55], "sendercar2x": 44, "399": 44, "diagram": 44, "coars": [44, 47], "500": 44, "drivermod": 44, "299": 44, "lvl": 44, "199": 44, "vehicledynamicscontrol": 44, "149": 44, "49": 44, "parametersagentmodul": 44, "parametersag": 44, "sensorobjectdetector": 44, "398": 44, "sensoraggreg": 44, "sensoraggregation_osi": 44, "351": 44, "sensorfusionerrorless": 44, "sensorfusionerrorless_osi": 44, "algorithmagentfollowingdrivermodel": [44, 48], "drivermodel": 44, "algorithmautonomousemergencybrak": 44, "fmu1": [44, 56], "algorithmfmuwrapp": 44, "fmu2": 44, "fmu3": 44, "algorithmsspwrapp": 44, "prioritizerlaterdriv": 44, "prioritizeraccelerationdriv": 44, "algorithmlateraldriv": 44, "algorithmlongitudinalvehiclecompon": 44, "algorithmlongitudinaldriv": 44, "actionlongitudinaldrivermodul": 44, "actionlongitudinaldriv": 44, "Will": [44, 56], "expand": 44, "actionprimari": 44, "drivertask": 44, "actionsecondarydrivertasksmodul": 44, "actionsecondarydrivertask": 44, "xx": 44, "sensorfus": 44, "fusion": 44, "9900": 44, "increment": [44, 45, 49, 55], "1813": 44, "41": 44, "81": [44, 50, 52], "89": 44, "91": 44, "controllerswitch": 44, "algorithm_longitudinalvehiclecompon": 44, "algorithm_longitudinalafdm": [44, 51], "algorithm_steeringvehiclecompon": 44, "algorithm_lateralvehicleafdm": 44, "action_secondarydrivertask": [44, 45], "71": 44, "73": 44, "83": 44, "84": 44, "parameter_vehicl": 44, "92": 44, "93": 44, "94": 44, "95": 44, "98": [44, 56], "61": 44, "90": 44, "01": [44, 45], "secondarydrivertask": [44, 45], "acquireglobalposit": 44, "62": [44, 51], "63": 44, "sensordriv": [44, 54], "profilesgroup": 44, "logginggroup_": 45, "publisherinterfac": 45, "spin": 45, "regardless": 45, "rad": [45, 52, 54, 56], "integervector": 45, "longitudinaldriv": 45, "percent": 45, "low": [45, 47, 51, 56], "fog": 45, "agentupdaterimpl": 45, "longitudinalcontrol": 45, "lateralcontrol": 45, "regulardriv": 45, "sensor_driverimpl": 45, "infront": 45, "sensorcar2x": 45, "detectedag": 45, "visibleag": 45, "observationlog_parameter": 45, "runresult": 45, "express": [45, 49, 56], "trafficlightcontrol": 45, "bulb": 45, "traffic_light_st": 45, "opendrive_id": 45, "post": 45, "activecomponentchang": 45, "identif": 45, "categori": 45, "vehicleattribut": 45, "longitudinalpivotoffset": 45, "closer": 45, "neg": [45, 52], "systemprofil": [45, 56], "mountingposlongitudin": 45, "mountingposlater": 45, "mountingposheight": 45, "orientationpitch": 45, "orientationyaw": 45, "openingangleh": [45, 56], "horizont": [45, 56], "openinganglev": 45, "detectionrang": [45, 56, 57], "geometric2dfront": 45, "layout": 45, "sample_nam": 45, "103": 45, "204": 45, "cyclicsfil": 45, "observationlog_cycl": 45, "repository_run_00": 46, "ie": 46, "repository_run_000": 46, "movingobject": 46, "tf": 46, "scenaro": 46, "s2": 46, "s3": 46, "100000": 46, "200000": 46, "stationaryobject": 46, "barrier": 46, "barrier_01": 46, "100001": 46, "guardrail_01": 46, "100002": 46, "100003": 46, "100004": 46, "100005": 46, "100006": 46, "guardrail_02": 46, "100007": 46, "100008": 46, "100009": 46, "100010": 46, "laneroadmark": 46, "200001": 46, "200002": 46, "200003": 46, "200004": 46, "200005": 46, "200006": 46, "guard": [46, 57], "consecut": 46, "mont": 47, "carlo": 47, "capabl": [47, 57], "topmost": 47, "domain": [47, 53], "volum": [47, 57], "aforement": 47, "gap": [47, 51, 55], "freedom": 47, "popul": [48, 55], "realist": 48, "fashion": 48, "invert": [48, 49], "defaultstrategi": 48, "keeplaneoffset": 48, "strategi": 48, "followvelocitysplin": 48, "performchangelan": 48, "ownvehiclest": 48, "trafficruleinform": 48, "geometryinform": 48, "surroundingobject": 48, "vehicledynam": 48, "actionsteeringsystem": 48, "actionpowertrain": 48, "actionbrakesystem": 48, "dynamicschassi": 48, "dynamicstiremodel": 48, "dynamicsmotionmodel": 48, "sum": [49, 52], "kappa_": 49, "2m": 49, "8m": 49, "manoeuvr": 49, "w_": 49, "phi_": [49, 52], "phi": [49, 52], "delta_": [49, 52], "kappa": [49, 52], "delta_h": 49, "subsect": [49, 50], "theoret": 49, "ackermann": [49, 52], "relationship": [49, 50], "simplif": [49, 52], "reduct": 49, "surrog": [49, 52], "citi": 49, "gain": 49, "smooth": 49, "toward": [49, 51], "instantan": 49, "centr": 49, "curv": [49, 50], "tan": [49, 52], "arctan": 49, "i_": [49, 50, 52, 56], "amplif": 49, "kinemat": [49, 52], "kramer": 49, "problemat": 49, "tune": 49, "p_w": 49, "metr": 49, "sin": [49, 52], "actuat": [50, 52], "clutch": 50, "act_": [50, 52], "olc": 50, "stat": [50, 52], "worth": 50, "n_": [50, 52], "revolut": 50, "minut": 50, "tire": [50, 52, 56], "slip": [50, 56], "eng": [50, 52], "characterist": 50, "analog": 50, "1g": 50, "strong": 50, "mechan": [50, 52], "stronger": 50, "calculatepedalposit": 50, "calculatepedalpositionandgear": 50, "calculategearandenginespe": 50, "violat": 50, "upper": 50, "aspect": 50, "criteria": 50, "foundgear": 50, "2nd": 50, "4th": 50, "3rd": 50, "optimum": 50, "idm": 51, "intellig": 51, "wish": 51, "s_": 51, "netdist": 51, "sqrt": 51, "b_": 51, "frontag": 51, "vanish": 51, "awar": 51, "govern": 51, "compens": 51, "harder": 51, "resembl": 51, "repuls": 51, "enlarg": 51, "equilibrium": 51, "algorithmlateralmodul": 51, "algorithmlongitudinalmodul": 51, "velocitywish": 51, "expon": 51, "character": 51, "infin": [51, 54], "tgapwish": 51, "mindist": 51, "maxacceler": 51, "satisfactori": 51, "maxdeceler": [51, 56], "algorithm_lateralafdm": 51, "36": 51, "treiber": 51, "martin": 51, "henneck": 51, "ansgar": 51, "helb": 51, "dirk": 51, "2000": 51, "congest": 51, "empir": 51, "microscop": 51, "review": 51, "1805": 51, "1824": 51, "arxiv": 51, "cond": 51, "mat": 51, "0002177": 51, "engag": 52, "worldobjectinterfac": 52, "dependend": 52, "pos_": 52, "proj": 52, "differenti": 52, "follw": 52, "fluid": 52, "airdrag": 52, "rollingdrag": 52, "dummi": 52, "0125": 52, "tap": 52, "power": [52, 56], "pressur": 52, "n_eng": 52, "discret": [52, 56], "deem": 52, "l_": 52, "previous": [52, 55, 57], "modelinterfac": 52, "driven": 52, "atan": 52, "plu": 52, "agent_": 52, "mantl": 53, "scenario_api": 53, "spline": 53, "momement": 53, "jump": 53, "li": 53, "concern": 54, "struct": 54, "ownvehicleinform": 54, "absoluteveloc": 54, "lateralposit": 54, "steeringwheelangl": 54, "distancetolaneboundaryleft": 54, "distancetolaneboundaryright": 54, "infrastructur": 54, "laneleft": 54, "mainlan": 54, "laneego": [54, 56], "laneright": 54, "lanemarkingsleft": 54, "lanemarkingsright": 54, "lanemarkingsleftofleftlan": 54, "lanemarkingsrightofrightlan": 54, "basi": [54, 57], "laneinformationtrafficrul": 54, "trasport": 54, "laneinformationgeometri": 54, "distancetoendoflan": 54, "farther": 54, "awai": 54, "mainlaneid": 54, "objectfront": 54, "objectrear": 54, "closest": [54, 55], "objectfrontleft": 54, "objectrearleft": 54, "objectfrontright": 54, "objectrearright": 54, "objectinform": 54, "isstat": 54, "street": 54, "heigth": 54, "relativelongitudinaldist": 54, "relativelateraldist": 54, "spawnzon": 55, "sstart": 55, "inexist": 55, "slength": 55, "neither": 55, "undefin": [55, 56], "fill": [55, 56], "crop": 55, "5m": 55, "1000": 55, "lightvehicl": 55, "heavyvehicl": 55, "47": 55, "preruncommonspawn": 55, "roadstream": 55, "onramp": [55, 56], "offramp": [55, 56], "connectingramp": 55, "scenariospawn": 55, "augment": 55, "aris": 55, "entireti": 55, "opposit": 55, "draft": 55, "homogen": 55, "spawnarea": 55, "critic": 55, "spawncoordin": 55, "els": 55, "spawnerruntimecommon_osi": 55, "throughout": 55, "attempt": 55, "spawnpoint": 55, "scoordin": 55, "expir": 55, "fullfil": 55, "requri": 55, "held": 55, "trafficvolum": 55, "tgap": 55, "685": 55, "475": 55, "265": 55, "105": 55, "820": 55, "futur": 56, "larger": 56, "collisiondetectionlongitudinalboundari": 56, "collisiondetectionlateralboundari": 56, "aeb1": 56, "automaticdeactiv": 56, "relinquish": 56, "trajectoryfil": 56, "enforcetrajectori": 56, "basictrajectoryfollow": 56, "abi": 56, "modelon": 56, "jmodelica": 56, "modeldescript": 56, "vehiclecomponentprofil": 56, "staticosmpsensordatatotrafficupdatestepp": 56, "fmuwrapp": 56, "fmuhandl": 56, "osmpsdtotu": 56, "input_osmpsensordatain": 56, "input_osmpsensorviewinconfig": 56, "sensorviewconfig": 56, "output_osmptrafficupdateout": 56, "output_osmpsensorviewinconfigrequest": 56, "sensorviewconfigrequest": 56, "writejson_trafficupd": 56, "spreadsheet": 56, "primit": 56, "simulink": 56, "Be": 56, "matlab": 56, "parameter_": 56, "varnam": 56, "parameter_assignspecial_": 56, "input_": 56, "output_": 56, "configpath": 56, "suppli": 56, "outputpath": 56, "maxsteer": 56, "max_steer": 56, "gearratio": 56, "nth": 56, "gearrat": 56, "centripetalaccelerationego": 56, "centripet": 56, "steeringwheelego": 56, "accelerationpedalpositionego": 56, "brakepedalpositionego": 56, "distancereftofrontedgeego": 56, "positionxego": 56, "positionyego": 56, "yawego": 56, "positionsego": 56, "positiontego": 56, "existencefront": 56, "positionxfront": 56, "positionyfront": 56, "yawfront": 56, "positionsfront": 56, "positiontfront": 56, "relativedistancefront": 56, "widthfront": 56, "lengthfront": 56, "distancereftofrontedgefront": 56, "velocityfront": 56, "lanefront": 56, "existencefrontfront": 56, "positionxfrontfront": 56, "positionyfrontfront": 56, "relativedistancefrontfront": 56, "velocityfrontfront": 56, "lanefrontfront": 56, "lanecountleft": 56, "lanecountright": 56, "speedlimit_": 56, "roadcurvature_": 56, "sensorfusionobjectid_": 56, "sensorfusionnumberofdetectingsensors_": 56, "sensorfusionrelatives_": 56, "nan": 56, "sensorfusionrelativenets_": 56, "sensorfusionrelativet_": 56, "sensorfusionrelativex_": 56, "sensorfusionrelativey_": 56, "sensorfusionrelativenetleft_": 56, "leftmost": 56, "sensorfusionrelativenetright_": 56, "sensorfusionrelativenetx_": 56, "sensorfusionrelativenety_": 56, "sensorfusionlane_": 56, "sensorfusionvelocity_": 56, "sensorfusionvelocityx_": 56, "sensorfusionvelocityy_": 56, "sensorfusionyaw_": 56, "longitudinalsign": 56, "steeringsign": 56, "dynamicssign": 56, "accelerationsignal_acceler": 56, "longitudinalsignal_accpedalpo": 56, "longitudinalsignal_brakepedalpo": 56, "longitudinalsignal_gear": 56, "steeringsignal_steeringwheelangl": 56, "dynamicssignal_acceler": 56, "dynamicssignal_veloc": 56, "dynamicssignal_positionx": 56, "dynamicssignal_positioni": 56, "dynamicssignal_yaw": 56, "dynamicssignal_yawr": 56, "dynamicssignal_yawacceler": 56, "dynamicssignal_steeringwheelangl": 56, "dynamicssignal_centripetalacceler": 56, "dynamicssignal_traveldist": 56, "compctrlsignal_movementdomain": 56, "compctrlsignal_warningact": 56, "compctrlsignal_warninglevel": 56, "compctrlsignal_warningtyp": 56, "optic": 56, "acoust": 56, "haptic": 56, "compctrlsignal_warningintens": 56, "medium": 56, "compctrlsignal_warningdirect": 56, "init_": 56, "var_nam": 56, "groundtruth": 56, "transformlist": 56, "scenarionam": 56, "parameter_transformlist": 56, "writejson_": 56, "writetrace_": 56, "enforcedoublebuff": 56, "throw": 56, "fmuvari": 56, "calculatedparamet": 56, "tunabl": 56, "writevalu": 56, "occas": 56, "2d": 56, "failureprob": 56, "latenc": 56, "detectiondelaytim": 56, "maxdropouttim": 56, "undetect": 56, "anew": 56, "requiredpercentageofvisiblearea": 56, "35": 56, "sensit": 56, "1e": 56, "ss_": 56, "sender": 56, "blackbox": 56, "egovehicl": 56, "modular": 56, "six": 56, "predetermin": 56, "chassi": 56, "obtain": 56, "toe": 56, "elast": 56, "staticto": 56, "vectordoubl": 56, "caster": 56, "typedrivetrain": 56, "fwd": 56, "rwd": 56, "awd": 56, "frontratioawd": 56, "hz": 56, "omega_": 56, "avg": 56, "maximumenginepow": 56, "motor": 56, "position_": 56, "evenli": 56, "s\u00b3": 56, "frontaxlepercentag": 56, "brakedecelerationincliner": 56, "brakedecelerationdecliner": 56, "brakeresponsetimem": 56, "elaps": 56, "rate_": 56, "dissip": 56, "declin": 56, "drop": 56, "prefil": 56, "spring": 56, "damper": 56, "springcoeffici": 56, "dampercoeffici": 56, "degress": 56, "rill": 56, "tmeasi": 56, "mutiremaxxfref": 56, "mutiremaxx2fref": 56, "mutireslidexfref": 56, "slide": 56, "mutireslidex2fref": 56, "sliptiremaxxfref": 56, "sliptiremaxx2fref": 56, "sliptireslidexfref": 56, "sliptireslidex2fref": 56, "f0pxfref": 56, "slope": 56, "f0px2fref": 56, "mutiremaxyfref": 56, "mutiremaxy2fref": 56, "mutireslideyfref": 56, "mutireslidey2fref": 56, "sliptiremaxyfref": 56, "sliptiremaxy2fref": 56, "sliptireslideyfref": 56, "sliptireslidey2fref": 56, "f0pyfref": 56, "f0py2fref": 56, "fref": 56, "frefnorm": 56, "vectorbool": 56, "pneumatictrail": 56, "pneumat": 56, "self": 56, "product": 56, "ident": 56, "frictioncoeffici": 56, "georg": 56, "2013": 56, "xpositioncog": 56, "ypositioncog": 56, "book": 56, "k\u00fcc\u00fckai": 56, "ferit": 56, "2022": 56, "grundlagen": 56, "der": 56, "fahrzeugtechnik": 56, "1067": 56, "ff": 56, "exemplari": 57, "break": 57, "cut": 57, "dir": 57, "aeb_cutin": 57, "incorpor": 57, "constel": 57, "spawnpointpreruncommon": 57, "spawnpointruntimecommon": 57, "spawnpointscenario": 57, "cyclics_run_xxx": 57, "repository_run_xxx": 57}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"simul": [0, 6, 22, 26, 28, 37, 57, 58], "endtoend": 1, "test": [1, 21], "framework": [1, 22], "prerequisit": [1, 13, 17, 20], "execut": [1, 6, 21], "parallel": 1, "configur": [1, 13, 28], "queri": 1, "result": [1, 28, 29, 30, 31, 32], "basic": [1, 9, 11], "syntax": 1, "us": [1, 2, 22], "event": [1, 45], "filter": 1, "payload": 1, "exampl": [1, 38, 41, 42, 43], "openscenario": [1, 5], "transit": 1, "spawn": [1, 7], "time": [1, 7], "explicit": 1, "datatyp": 1, "dev": 1, "note": [1, 22], "agent": [2, 3, 7, 45], "compon": [2, 38, 39, 48, 54], "action_longitudinaldriv": 2, "action_secondarydriv": 2, "agentupdat": 2, "algorithm_later": [2, 49], "algorithm_longitudin": [2, 50], "algorithmcar2xsend": 2, "dynamics_collis": 2, "dynamics_scenario": [2, 53], "dynamics_regulardriv": [2, 52], "limiteraccelerationvehiclecompon": 2, "openscenarioact": 2, "parameters_vehicl": 2, "vehicl": 2, "model": [2, 50], "relat": 2, "paramet": [2, 7, 44], "powertrain": 2, "steer": 2, "sensor_driv": [2, 54], "sensor_osi": 2, "sensorgeometric2d": [2, 56], "function": [2, 52], "case": 2, "visual": [2, 13, 30], "obstruct": 2, "sensorfusionosi": 2, "signalpriorit": 2, "componentcontrol": 2, "overview": [2, 33, 39, 47, 52], "state": 2, "handl": 2, "insid": 2, "signal": 2, "coordin": 3, "system": [3, 8, 16, 27], "world": [3, 9], "road": [3, 7, 9], "sensor": [3, 38], "convers": 3, "between": 3, "sensordata": 3, "eventdetector": 4, "collisiondetector": 4, "map": 5, "action": [5, 39], "acquirepositionact": [5, 39], "assignrouteact": 5, "customcommandact": 5, "followtrajectoryact": [5, 39], "lanechangeact": [5, 39], "speedact": [5, 39], "teleportact": [5, 39], "trafficsignalact": 5, "trafficsignalstateact": 5, "trafficsinkact": [5, 39], "visibilityact": 5, "command": [6, 21], "line": 6, "argument": 6, "schedul": 6, "phase": 6, "task": 6, "type": 6, "descript": [6, 49, 50], "prioriti": [6, 44], "spawner": [7, 42, 55], "featur": [7, 49, 50], "prerunspawn": [7, 55], "lane": [7, 9], "rang": 7, "non": 7, "exist": 7, "singl": 7, "consecut": 7, "across": 7, "junction": 7, "multipl": 7, "includ": 7, "id": [7, 10, 44], "specifi": 7, "overlap": 7, "stream": 7, "sstart": 7, "send": 7, "within": 7, "boundari": 7, "slength": 7, "outsid": 7, "right": 7, "onli": [7, 20, 39], "traffic": [7, 9], "separ": 7, "buffer": [7, 22], "collis": 7, "stochast": 7, "group": 7, "profil": 7, "veloc": 7, "distribut": 7, "tgap": 7, "runtimespawn": [7, 55], "drive": 7, "direct": 7, "structur": [8, 28], "parameter": [8, 45], "ssp": [8, 43, 56], "input": [8, 28, 33], "packag": [8, 17, 22], "ssd": 8, "definit": [8, 45], "implement": 8, "pars": 8, "osi": [8, 22], "connector": 8, "object": 8, "openpass": [8, 11, 14, 18, 43], "limit": 8, "output": [8, 26, 28, 33, 36, 45, 46], "folderstructur": 8, "writemessageparamet": 8, "world_osi": 9, "sampl": 9, "geometri": 9, "local": 9, "sequenc": 9, "sign": 9, "mark": 9, "trafficlight": 9, "getobstruct": 9, "support": [10, 40], "document": [11, 14], "concept": 11, "build": [11, 13, 17, 20, 21], "mechan": 11, "submodul": 11, "docker": 11, "imag": 11, "code": [12, 13], "guidelin": 12, "gener": [12, 20, 21, 26], "name": 12, "convent": 12, "clangformat": 12, "clangtidi": 12, "commit": 12, "messag": [12, 39], "header": 12, "file": [12, 45, 46], "inclus": 12, "work": 13, "studio": 13, "assumpt": 13, "instal": [13, 14, 17, 18, 20, 21], "set": [13, 26], "up": 13, "develop": [13, 14], "contain": 13, "introduct": 13, "devcontain": 13, "win_onli": 13, "msys2": 13, "path": [13, 26], "kit": 13, "user": [13, 14], "c": [13, 22], "intellisens": 13, "cmake": [13, 21, 22], "debug": 13, "target": [13, 21], "troubleshoot": 13, "guid": 14, "todo": [14, 57, 58], "advanc": 14, "topic": 14, "inform": [14, 22], "other": 14, "todolist": 14, "get": [15, 33], "start": [15, 28, 33], "requir": 16, "environ": [17, 42], "binari": [17, 22], "version": [17, 22], "git": 17, "ssh": 17, "depend": [17, 22, 56], "further": 19, "guidanc": 19, "custom": 19, "conan": 20, "addit": 20, "recip": 20, "creat": 20, "thirdparti": 20, "variabl": [21, 56], "option": 21, "see": 21, "also": 21, "cmake_prefix_path": 21, "cmake_install_prefix": 21, "cmake_with_debug_postix": 21, "cmake_build_typ": 21, "cmake_c_compil": 21, "cmake_cxx_compil": 21, "cmake_object_path_max": 21, "use_ccach": 21, "with_simcor": 21, "with_doc": 21, "with_api_doc": 21, "with_test": 21, "with_coverag": 21, "with_endtoend_test": 21, "openpass_adjust_output": 21, "with_protobuf_arena": 21, "install_system_runtime_dep": 21, "install_extra_runtime_dep": 21, "install_exampl": 21, "make": 21, "extern": 22, "gnu": 22, "compil": 22, "collect": 22, "gcc": 22, "hint": 22, "debugg": 22, "gdb": 22, "ccach": 22, "doxygen": 22, "qt": 22, "boost": 22, "librari": 22, "googletest": 22, "sourc": 22, "open": 22, "interfac": 22, "protocol": 22, "protobuf": 22, "modelon": 22, "fmi": 22, "fmil": 22, "glossari": 23, "gui": 24, "plugin": 24, "licens": 25, "project": 26, "editor": 27, "pcm": [28, 29, 58], "variat": 28, "save": 28, "load": [28, 29, 31, 32], "experi": [28, 42], "folder": 28, "evalu": [29, 31, 32], "statist": 31, "timeplot": 32, "intend": 33, "audienc": 33, "workflow": 33, "primer": 33, "tutori": 34, "config": 35, "depth": [35, 36, 48], "profilescatalog": [38, 39, 42], "agentprofil": [38, 39], "systemprofil": 38, "profilegroup": 38, "driver": [38, 51], "vehiclecompon": [38, 56], "spawnerprofil": 38, "trafficrul": 38, "scenario": [39, 40, 42, 57], "parameterdeclar": 39, "catalog": 39, "vehiclecatalog": 39, "pedestriancatalog": 39, "roadnetwork": 39, "entiti": 39, "storyboard": 39, "init": 39, "stori": 39, "stoptrigg": 39, "current": 39, "restrict": [39, 41], "condit": 39, "followrouteact": 39, "setcomponentst": 39, "userdefinedact": 39, "defaultcustomcommandact": 39, "fmu_wrapp": 39, "osmp": 39, "api": 40, "igeometryhelp": 40, "ienviron": 40, "icoordconvert": 40, "ilanelocationqueryservic": 40, "icontrollerrepositori": 40, "ientiti": 40, "ivehicl": 40, "ipedestrian": 40, "istaticobject": 40, "ientityrepositori": 40, "sceneri": 41, "full": [41, 42], "simulationconfig": 42, "observ": 42, "static": 43, "systemconfig": 43, "connect": 43, "systemconfigblueprint": 44, "agentcompon": 44, "channel": 44, "observation_log": 45, "wildcard": 45, "logginggroup": 45, "simulationoutput": 45, "runstatist": 45, "import": 45, "cyclic": 45, "cyclics_run_": 45, "observation_entityrepositori": 46, "parametr": 46, "repository_run_": 46, "csv": 46, "repository_persist": 46, "view": 48, "detail": [49, 50], "modul": [49, 50, 52, 54], "": [49, 50, 52], "later": [49, 51, 52, 53], "dynam": [49, 50, 52], "head": 49, "control": [49, 51], "deviat": 49, "invert": 50, "longitudin": [50, 51, 52, 53], "algorithm": 50, "optim": 50, "gear": 50, "determin": 50, "algorithmagentfollowingdrivermodel": 51, "updat": 52, "posit": 52, "defaultstrategi": 53, "keepveloc": 53, "keeplaneoffset": 53, "strategi": 53, "followvelocitysplin": 53, "performchangelan": 53, "followtrajectori": 53, "both": 53, "ownvehiclest": 54, "trafficruleinform": 54, "geometryinform": 54, "surroundingobject": 54, "trafficgroup": 55, "aeb": 56, "dynamicstrajectoryfollow": 56, "fmu": 56, "wrapper": 56, "write": 56, "readvalu": 56, "causal": 56, "receivercar2x": 56, "vehicledynam": 56, "actionsteeringsystem": 56, "actionpowertrain": 56, "actionbrakesystem": 56, "dynamicschassi": 56, "dynamicstiremodel": 56, "dynamicsmotionmodel": 56, "base": 57}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Simulator": [[0, "simulator"], [37, "simulator"]], "EndToEnd Test Framework": [[1, "endtoend-test-framework"]], "Prerequisites": [[1, "prerequisites"], [13, "prerequisites"]], "Execution": [[1, "execution"]], "Parallel Execution": [[1, "parallel-execution"]], "Test Configuration": [[1, "test-configuration"]], "Querying Results": [[1, "querying-results"]], "Basic Syntax": [[1, "basic-syntax"]], "Using Events in Filter": [[1, "using-events-in-filter"]], "Event Payload": [[1, "event-payload"]], "Query Example": [[1, "query-example"]], "Using OpenSCENARIO Events": [[1, "using-openscenario-events"]], "Querying Transitions": [[1, "querying-transitions"]], "Querying Spawning Time": [[1, "querying-spawning-time"]], "Explicit Datatypes": [[1, "explicit-datatypes"]], "Dev Notes": [[1, "dev-notes"]], "Agent Components": [[2, "agent-components"]], "Action_LongitudinalDriver": [[2, "action-longitudinaldriver"]], "Action_SecondaryDriver": [[2, "action-secondarydriver"]], "AgentUpdater": [[2, "agentupdater"]], "Algorithm_Lateral": [[2, "algorithm-lateral"], [49, "algorithm-lateral"]], "Algorithm_Longitudinal": [[2, "algorithm-longitudinal"], [50, "algorithm-longitudinal"]], "AlgorithmCar2XSender": [[2, "algorithmcar2xsender"]], "Dynamics_Collision": [[2, "dynamics-collision"]], "Dynamics_Scenario": [[2, "dynamics-scenario"], [53, "dynamics-scenario"]], "Dynamics_RegularDriving": [[2, "dynamics-regulardriving"], [52, "dynamics-regulardriving"]], "LimiterAccelerationVehicleComponents": [[2, "limiteraccelerationvehiclecomponents"]], "OpenScenarioActions": [[2, "openscenarioactions"]], "Parameters_Vehicle": [[2, "parameters-vehicle"]], "Vehicle model related parameters": [[2, "vehicle-model-related-parameters"]], "Powertrain related parameters": [[2, "powertrain-related-parameters"]], "Steering related parameters": [[2, "steering-related-parameters"]], "Sensor_Driver": [[2, "sensor-driver"], [54, "sensor-driver"]], "Sensor_OSI": [[2, "sensor-osi"]], "SensorGeometric2D": [[2, "sensorgeometric2d"], [56, "sensorgeometric2d"]], "Function": [[2, "function"]], "Cases": [[2, "cases"]], "Visual Obstruction": [[2, "visual-obstruction"]], "SensorFusionOSI": [[2, "sensorfusionosi"]], "SignalPrioritizer": [[2, "signalprioritizer"]], "ComponentController": [[2, "componentcontroller"]], "Overview": [[2, "overview"], [33, "overview"], [39, "overview"], [47, "overview"]], "State handling inside Vehicle Component": [[2, "state-handling-inside-vehicle-component"]], "Used signals": [[2, "used-signals"]], "Coordinate Systems": [[3, "coordinate-systems"]], "World Coordinate System": [[3, "world-coordinate-system"]], "Road Coordinate System": [[3, "road-coordinate-system"]], "Agent Coordinate System": [[3, "agent-coordinate-system"]], "Sensor Coordinate System": [[3, "sensor-coordinate-system"]], "Conversions between SensorData coordinate systems": [[3, "conversions-between-sensordata-coordinate-systems"]], "EventDetector": [[4, "eventdetector"]], "CollisionDetector": [[4, "collisiondetector"]], "Mapping of OpenSCENARIO Actions": [[5, "mapping-of-openscenario-actions"]], "AcquirePositionAction": [[5, "acquirepositionaction"], [39, "acquirepositionaction"]], "AssignRouteAction": [[5, "assignrouteaction"]], "CustomCommandAction": [[5, "customcommandaction"]], "FollowTrajectoryAction": [[5, "followtrajectoryaction"], [39, "followtrajectoryaction"]], "LaneChangeAction": [[5, "lanechangeaction"], [39, "lanechangeaction"]], "SpeedAction": [[5, "speedaction"], [39, "scenario-speedaction"]], "TeleportAction": [[5, "teleportaction"], [39, "scenario-teleportaction"]], "TrafficSignalAction": [[5, "trafficsignalaction"]], "TrafficSignalStateAction": [[5, "trafficsignalstateaction"]], "TrafficSinkAction": [[5, "trafficsinkaction"], [39, "trafficsinkaction"]], "VisibilityAction": [[5, "visibilityaction"]], "Simulation": [[6, "simulation"]], "Command Line Arguments": [[6, "command-line-arguments"]], "Scheduler": [[6, "scheduler"]], "Executing phases": [[6, "executing-phases"]], "Task type description": [[6, "task-type-description"]], "Task priorities": [[6, "task-priorities"]], "Spawner Features": [[7, "spawner-features"]], "PreRunSpawner": [[7, "prerunspawner"], [55, "prerunspawner"]], "Spawning on roads, lanes and ranges": [[7, "spawning-on-roads-lanes-and-ranges"], [7, "id2"]], "Non-existent roads": [[7, "non-existent-roads"], [7, "id3"]], "Single road": [[7, "single-road"], [7, "spawner-features-runtime-on-roads-single-road"]], "Consecutive roads": [[7, "consecutive-roads"]], "Non-consecutive roads": [[7, "non-consecutive-roads"]], "Roads across junction": [[7, "roads-across-junction"]], "Multiple roads (including non existent IDs)": [[7, "multiple-roads-including-non-existent-ids"], [7, "id5"]], "Specified lanes": [[7, "specified-lanes"], [7, "id6"]], "Multiple overlapping road streams": [[7, "multiple-overlapping-road-streams"]], "Spawning on range (SStart + SEnd within road boundaries)": [[7, "spawning-on-range-sstart-send-within-road-boundaries"]], "Spawning on range (SStart + SLength within road boundaries)": [[7, "spawning-on-range-sstart-slength-within-road-boundaries"]], "Spawning on range (SEnd outside of road boundaries)": [[7, "spawning-on-range-send-outside-of-road-boundaries"]], "Spawning on range (SLength outside of road boundaries)": [[7, "spawning-on-range-slength-outside-of-road-boundaries"]], "Right lane only": [[7, "right-lane-only"], [7, "id7"]], "Traffic parameters": [[7, "traffic-parameters"], [7, "id8"]], "Separation buffer specified": [[7, "separation-buffer-specified"], [7, "id9"]], "Separation buffer not specified": [[7, "separation-buffer-not-specified"], [7, "id10"]], "Time to collision": [[7, "time-to-collision"]], "Stochastics": [[7, "stochastics"], [7, "id11"]], "Traffic groups": [[7, "traffic-groups"], [7, "id12"]], "Agent profiles": [[7, "agent-profiles"], [7, "id13"]], "Velocity distribution": [[7, "velocity-distribution"], [7, "id14"]], "TGap distribution": [[7, "tgap-distribution"], [7, "id15"]], "RuntimeSpawner": [[7, "runtimespawner"], [55, "runtimespawner"]], "Driving direction": [[7, "driving-direction"]], "System Structure and Parameterization (SSP)": [[8, "system-structure-and-parameterization-ssp"]], "Inputs / SSP Structure": [[8, "inputs-ssp-structure"]], "System Structure Package SSP": [[8, "system-structure-package-ssp"]], "SSD - System Structure Definition": [[8, "ssd-system-structure-definition"]], "Implementation": [[8, "implementation"]], "Parsing": [[8, "parsing"]], "OSI Connectors": [[8, "osi-connectors"]], "Object Structure": [[8, "object-structure"]], "SSP and openPASS": [[8, "ssp-and-op"]], "Limits": [[8, "limits"]], "Outputs": [[8, "outputs"], [33, "outputs"]], "FolderStructure": [[8, "folderstructure"]], "WriteMessageParameters": [[8, "writemessageparameters"]], "World_OSI": [[9, "world-osi"]], "Sampling of World Geometries": [[9, "sampling-of-world-geometries"]], "Localization": [[9, "localization"]], "Basics": [[9, "basics"]], "Localization Sequence": [[9, "localization-sequence"]], "Traffic Signs, Road Markings and TrafficLights": [[9, "traffic-signs-road-markings-and-trafficlights"]], "Lane Markings": [[9, "lane-markings"]], "GetObstruction": [[9, "getobstruction"]], "IDE Support": [[10, "ide-support"]], "Documentation Concept": [[11, "documentation-concept"]], "Basic Build Mechanics": [[11, "basic-build-mechanics"]], "openPASS as Submodule": [[11, "openpass-as-submodule"]], "Docker Image": [[11, "docker-image"]], "Coding Guidelines": [[12, "coding-guidelines"]], "General": [[12, "general"], [20, "general"], [26, "general"]], "Naming Conventions": [[12, "naming-conventions"]], "ClangFormat": [[12, "clangformat"]], "ClangTidy": [[12, "clangtidy"]], "Commit Message Guidelines": [[12, "commit-message-guidelines"]], "Header File Inclusion": [[12, "header-file-inclusion"]], "Working with Visual Studio Code": [[13, "working-with-visual-studio-code"]], "Assumptions": [[13, "assumptions"]], "Installation": [[13, "installation"]], "Set Up Development Containers in Visual Studio Code": [[13, "set-up-development-containers-in-visual-studio-code"]], "Introduction": [[13, "introduction"]], "DevContainers": [[13, "devcontainers"]], "Configuration": [[13, "configuration"]], "win_only MSYS2 Path": [[13, "win-only-msys2-path"]], "Build Kit": [[13, "build-kit"]], "User Settings": [[13, "user-settings"]], "C++ and IntelliSense": [[13, "c-and-intellisense"]], "Configure the Build": [[13, "configure-the-build"]], "CMake": [[13, null], [22, "cmake"]], "Debug Targets": [[13, "debug-targets"]], "Troubleshooting": [[13, "troubleshooting"]], "openPASS Documentation": [[14, "openpass-documentation"]], "Installation Guide": [[14, null]], "Todo": [[14, "id1"], [14, null], [14, null], [14, null], [57, "id2"], [58, "id1"]], "User Guides": [[14, null]], "Advanced topics": [[14, null]], "Developer Information": [[14, null]], "Other Information": [[14, null]], "Todolist": [[14, "todolist"]], "Getting Started": [[15, "getting-started"], [33, "getting-started"]], "System Requirements": [[16, "system-requirements"]], "Installing Prerequisites": [[17, "installing-prerequisites"]], "Installing the Build Environment": [[17, "installing-the-build-environment"]], "Installing the Binary Packages": [[17, "installing-the-binary-packages"]], "Versions": [[17, null]], "GIT/SSH": [[17, null]], "Installing the Dependencies": [[17, "installing-the-dependencies"]], "Installing openPASS": [[18, "installing-openpass"]], "Further Guidance": [[19, "further-guidance"]], "Customizing": [[19, null]], "Building with Conan": [[20, "building-with-conan"]], "Additional Prerequisites": [[20, "additional-prerequisites"]], "Conan Recipes": [[20, "conan-recipes"]], "Conan Create": [[20, "conan-create"]], "Conan Install": [[20, "conan-install"]], "Build only ThirdParties": [[20, "build-only-thirdparties"]], "CMake Variables and Options": [[21, "cmake-variables-and-options"]], "See also": [[21, null], [21, null]], "CMake Generator": [[21, "cmake-generator"]], "CMAKE_PREFIX_PATH": [[21, "cmake-prefix-path"]], "CMAKE_INSTALL_PREFIX": [[21, "cmake-install-prefix"]], "CMAKE_WITH_DEBUG_POSTIX": [[21, "cmake-with-debug-postix"]], "CMAKE_BUILD_TYPE": [[21, "cmake-build-type"]], "CMAKE_C_COMPILER": [[21, "cmake-c-compiler"]], "CMAKE_CXX_COMPILER": [[21, "cmake-cxx-compiler"]], "CMAKE_OBJECT_PATH_MAX": [[21, "cmake-object-path-max"]], "USE_CCACHE": [[21, "use-ccache"]], "WITH_SIMCORE": [[21, "with-simcore"]], "WITH_DOC": [[21, "with-doc"]], "WITH_API_DOC": [[21, "with-api-doc"]], "WITH_TESTS": [[21, "with-tests"]], "WITH_COVERAGE": [[21, "with-coverage"]], "WITH_ENDTOEND_TESTS": [[21, "with-endtoend-tests"]], "OPENPASS_ADJUST_OUTPUT": [[21, "openpass-adjust-output"]], "WITH_PROTOBUF_ARENA": [[21, "with-protobuf-arena"]], "INSTALL_SYSTEM_RUNTIME_DEPS": [[21, "install-system-runtime-deps"]], "INSTALL_EXTRA_RUNTIME_DEPS": [[21, "install-extra-runtime-deps"]], "INSTALL_EXAMPLES": [[21, "install-examples"]], "Make Targets/Commands": [[21, "make-targets-commands"]], "Build and Install": [[21, "build-and-install"]], "Executing Tests": [[21, "executing-tests"]], "External Dependencies": [[22, "external-dependencies"]], "Information on Binary Packages": [[22, "information-on-binary-packages"]], "GNU Compiler Collection (gcc)": [[22, "gnu-compiler-collection-gcc"]], "Useful hints": [[22, null], [22, null], [22, null]], "GNU Debugger (gdb)": [[22, "gnu-debugger-gdb"]], "Ccache": [[22, "ccache"]], "Doxygen": [[22, "doxygen"]], "Qt Framework": [[22, "qt-framework"]], "Note on Versions": [[22, null], [22, null], [22, null]], "Boost C++ Libraries": [[22, "boost-c-libraries"]], "googletest": [[22, "googletest"]], "Information on Source Packages": [[22, "information-on-source-packages"]], "Open Simulation Interface (OSI)": [[22, "open-simulation-interface-osi"]], "Protocol Buffers (protobuf)": [[22, "protocol-buffers-protobuf"]], "Modelon FMI Library (FMIL)": [[22, "modelon-fmi-library-fmil"]], "Glossary": [[23, "glossary"]], "GUI Plugins": [[24, "gui-plugins"]], "License": [[25, "license"]], "Project": [[26, "project"]], "Path Settings": [[26, "path-settings"]], "Simulation Output Settings": [[26, "simulation-output-settings"]], "System Editor": [[27, "system-editor"]], "PCM Simulation": [[28, "pcm-simulation"], [58, "pcm-simulation"]], "Simulation Input": [[28, "simulation-input"]], "Simulation Output": [[28, "simulation-output"]], "Simulation Configuration": [[28, "simulation-configuration"]], "Variation": [[28, "variation"]], "Simulation Start": [[28, "simulation-start"]], "Save / Load Experiment": [[28, "save-load-experiment"]], "Result Folder Structure": [[28, "result-folder-structure"]], "PCM Evaluation": [[29, "pcm-evaluation"]], "Loading Results": [[29, "loading-results"], [31, "loading-results"], [32, "loading-results"]], "Evaluating Results": [[29, "evaluating-results"], [31, "evaluating-results"], [32, "evaluating-results"]], "Result Visualization": [[30, "result-visualization"]], "Statistics": [[31, "statistics"]], "TimePlot": [[32, "timeplot"]], "Intended Audience": [[33, "intended-audience"]], "Workflow": [[33, "workflow"]], "Primer": [[33, "primer"]], "Inputs": [[33, "inputs"]], "Tutorials": [[34, "tutorials"]], "Configs in Depth": [[35, "configs-in-depth"]], "Outputs in Depth": [[36, "outputs-in-depth"]], "ProfilesCatalog": [[38, "profilescatalog"], [42, "profilescatalog"]], "AgentProfiles": [[38, "agentprofiles"]], "Example": [[38, "example"], [43, "example"], [43, "id1"]], "SystemProfiles": [[38, "systemprofiles"]], "Components": [[38, "components"]], "Sensors": [[38, "sensors"]], "ProfileGroups": [[38, "profilegroups"]], "Driver ProfileGroup": [[38, "driver-profilegroup"]], "VehicleComponent ProfileGroups": [[38, "vehiclecomponent-profilegroups"]], "SpawnerProfile ProfileGroup": [[38, "spawnerprofile-profilegroup"]], "TrafficRules ProfileGroup": [[38, "trafficrules-profilegroup"]], "Scenario": [[39, "scenario"], [42, "scenario"]], "ParameterDeclarations": [[39, "parameterdeclarations"]], "Catalogs": [[39, "catalogs"]], "VehicleCatalog": [[39, "vehiclecatalog"]], "PedestrianCatalog": [[39, "pedestriancatalog"]], "RoadNetwork": [[39, "roadnetwork"]], "Entities": [[39, "entities"]], "AgentProfile and ProfilesCatalog": [[39, null]], "Storyboard": [[39, "storyboard"]], "Init": [[39, "init"]], "Story": [[39, "story"]], "StopTrigger": [[39, "stoptrigger"]], "Current Restrictions": [[39, "current-restrictions"]], "Conditions": [[39, "conditions"]], "Actions": [[39, "actions"]], "FollowRouteAction": [[39, "scenario-followrouteaction"]], "SetComponentState (UserDefinedAction)": [[39, "setcomponentstate-userdefinedaction"]], "DefaultCustomCommandAction (UserDefinedAction)": [[39, "defaultcustomcommandaction-userdefinedaction"]], "FMU_Wrapper component for OSMP messages only": [[39, null]], "Scenario API Support": [[40, "scenario-api-support"]], "IGeometryHelper": [[40, "igeometryhelper"]], "IEnvironment": [[40, "ienvironment"]], "ICoordConverter": [[40, "icoordconverter"]], "ILaneLocationQueryService": [[40, "ilanelocationqueryservice"]], "IControllerRepository": [[40, "icontrollerrepository"]], "IEntity": [[40, "ientity"]], "IVehicle": [[40, "ivehicle"]], "IPedestrian": [[40, "ipedestrian"]], "IStaticObject": [[40, "istaticobject"]], "IEntityRepository": [[40, "ientityrepository"]], "Scenery": [[41, "scenery"]], "Restrictions": [[41, "restrictions"]], "Full Example": [[41, "full-example"], [42, "full-example"]], "SimulationConfig": [[42, "simulationconfig"]], "Experiment": [[42, "experiment"]], "Environment": [[42, "environment"]], "Observations": [[42, "observations"]], "Spawners": [[42, "spawners"]], "Static SystemConfig": [[43, "static-systemconfig"]], "SSP": [[43, "ssp"], [56, "ssp"]], "Connecting SSP with OpenPass": [[43, "connecting-ssp-with-openpass"]], "SystemConfigBlueprint": [[44, "systemconfigblueprint"]], "AgentComponents": [[44, "agentcomponents"]], "Priorities": [[44, "priorities"]], "Channel-Ids": [[44, "channel-ids"]], "Parameters": [[44, "parameters"]], "Observation_Log": [[45, "observation-log"]], "Parameterization": [[45, "parameterization"]], "Wildcards in LoggingGroup definitions": [[45, null]], "Output Files": [[45, "output-files"], [46, "output-files"]], "SimulationOutput": [[45, "simulationoutput"]], "RunStatistics": [[45, "runstatistics"]], "Events": [[45, "events"]], "Important Events": [[45, "important-events"]], "Agents": [[45, "agents"]], "Cyclics": [[45, "cyclics"]], "Cyclics_Run_###": [[45, "cyclics-run"]], "Observation_EntityRepository": [[46, "observation-entityrepository"]], "Parametrization": [[46, "parametrization"]], "Repository_Run_###.csv": [[46, "repository-run-csv"]], "Repository_Persistent.csv": [[46, "repository-persistent-csv"]], "Component View": [[48, "component-view"]], "Components in Depth": [[48, "components-in-depth"]], "Detailed description of the module\u2019s features": [[49, "detailed-description-of-the-module-s-features"], [50, "detailed-description-of-the-module-s-features"]], "Lateral dynamics": [[49, "lateral-dynamics"], [52, "lateral-dynamics"]], "Heading controller": [[49, "heading-controller"]], "Lateral deviation controller": [[49, "lateral-deviation-controller"]], "Inverted longitudinal dynamics model": [[50, "inverted-longitudinal-dynamics-model"]], "Algorithm for optimal gear determination": [[50, "algorithm-for-optimal-gear-determination"]], "Driver": [[51, "driver"]], "AlgorithmAgentFollowingDriverModel": [[51, "algorithmagentfollowingdrivermodel"]], "Lateral control": [[51, "lateral-control"]], "Longitudinal control": [[51, "longitudinal-control"]], "Overview of the module\u2019s functionalities": [[52, "overview-of-the-module-s-functionalities"]], "Longitudinal dynamics": [[52, "longitudinal-dynamics"]], "Updating position": [[52, "updating-position"]], "DefaultStrategies": [[53, "defaultstrategies"]], "KeepVelocity - longitudinal": [[53, "keepvelocity-longitudinal"]], "KeepLaneOffset - lateral": [[53, "keeplaneoffset-lateral"]], "Strategies": [[53, "strategies"]], "FollowVelocitySpline - longitudinal": [[53, "followvelocityspline-longitudinal"]], "PerformChangeLane - lateral": [[53, "performchangelane-lateral"]], "FollowTrajectory - both": [[53, "followtrajectory-both"]], "Components of the module": [[54, "components-of-the-module"]], "OwnVehicleStates": [[54, "ownvehiclestates"]], "TrafficRuleInformation": [[54, "trafficruleinformation"]], "GeometryInformation": [[54, "geometryinformation"]], "SurroundingObjects": [[54, "surroundingobjects"]], "Spawner": [[55, "spawner"]], "TrafficGroups": [[55, "trafficgroups"]], "VehicleComponents": [[56, "vehiclecomponents"]], "AEB": [[56, "aeb"]], "DynamicsTrajectoryFollower": [[56, "dynamicstrajectoryfollower"]], "FMU Wrapper": [[56, "fmu-wrapper"]], "Write- and ReadValues depending on variability and causality": [[56, "id1"]], "ReceiverCar2X": [[56, "receivercar2x"]], "VehicleDynamics": [[56, "vehicledynamics"]], "ActionSteeringSystem": [[56, "actionsteeringsystem"]], "ActionPowertrain": [[56, "actionpowertrain"]], "ActionBrakeSystem": [[56, "actionbrakesystem"]], "DynamicsChassis": [[56, "dynamicschassis"]], "DynamicsTireModel": [[56, "dynamicstiremodel"]], "DynamicsMotionModel": [[56, "dynamicsmotionmodel"]], "Scenario-based simulation": [[57, "scenario-based-simulation"]]}, "indexentries": {"adas": [[23, "term-ADAS"]], "aeb": [[23, "term-AEB"]], "cog": [[23, "term-COG"]], "channel": [[23, "term-Channel"]], "component": [[23, "term-Component"]], "dynamics": [[23, "term-Dynamics"]], "fmi": [[23, "term-FMI"]], "fmu": [[23, "term-FMU"]], "gidas": [[23, "term-GIDAS"]], "msys": [[23, "term-MSYS"]], "msys2": [[23, "term-MSYS2"]], "mingw": [[23, "term-MinGW"]], "model": [[23, "term-Model"]], "module": [[23, "term-Module"]], "od": [[23, "term-OD"]], "osi": [[23, "term-OSI"]], "pcm": [[23, "term-PCM"]], "precase": [[23, "term-PreCASE"]], "scenario": [[23, "term-Scenario"]], "ttc": [[23, "term-TTC"]], "openpass": [[23, "term-openPASS"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["advanced_topics/20_simulator_advanced", "advanced_topics/30_testing", "advanced_topics/simulator/agent_components", "advanced_topics/simulator/coordinate_systems", "advanced_topics/simulator/event_detector", "advanced_topics/simulator/scenario_actions", "advanced_topics/simulator/simulation", "advanced_topics/simulator/spawner_features", "advanced_topics/simulator/system_structure_and_parameterization_(SSP)", "advanced_topics/simulator/world_osi", "developer_information/10_ide_support", "developer_information/20_documentation", "developer_information/30_coding_conventions", "developer_information/ide_support/30_vscode", "index", "installation_guide/10_getting_started", "installation_guide/15_system_requirements", "installation_guide/20_install_prerequisites", "installation_guide/30_install_openpass", "installation_guide/50_further_guidance", "installation_guide/60_conan", "installation_guide/further_guidance/10_cmake", "other_information/10_external_dependencies", "other_information/20_glossary", "other_information/30_gui_plugins", "other_information/40_license", "other_information/gui_user_guide/10_projects", "other_information/gui_user_guide/20_system_editor", "other_information/gui_user_guide/30_pcm_sim", "other_information/gui_user_guide/40_pcm_eval", "other_information/gui_user_guide/50_result_visualization", "other_information/gui_user_guide/result_visualization/10_statistics", "other_information/gui_user_guide/result_visualization/20_timePlot", "user_guide/10_overview", "user_guide/20_tutorials", "user_guide/30_configs_in_depth", "user_guide/40_outputs_in_depth", "user_guide/50_scenario_simulation", "user_guide/configs/profilescatalog", "user_guide/configs/scenario", "user_guide/configs/scenario_api_support", "user_guide/configs/scenery", "user_guide/configs/simulationconfig", "user_guide/configs/staticsystemconfig", "user_guide/configs/systemconfigblueprint", "user_guide/outputs/observation_log", "user_guide/outputs/observation_repository", "user_guide/sim_user_guide/10_overview", "user_guide/sim_user_guide/20_components", "user_guide/sim_user_guide/components/algorithm_lateral", "user_guide/sim_user_guide/components/algorithm_longitudinal", "user_guide/sim_user_guide/components/driver", "user_guide/sim_user_guide/components/dynamics_regular_driving", "user_guide/sim_user_guide/components/dynamics_scenario", "user_guide/sim_user_guide/components/sensor_driver", "user_guide/sim_user_guide/components/spawner", "user_guide/sim_user_guide/components/vehicle", "user_guide/tutorials/10_scenario_simulation", "user_guide/tutorials/20_pcm_simulation"], "filenames": ["advanced_topics/20_simulator_advanced.rst", "advanced_topics/30_testing.rst", "advanced_topics/simulator/agent_components.rst", "advanced_topics/simulator/coordinate_systems.rst", "advanced_topics/simulator/event_detector.rst", "advanced_topics/simulator/scenario_actions.rst", "advanced_topics/simulator/simulation.rst", "advanced_topics/simulator/spawner_features.rst", "advanced_topics/simulator/system_structure_and_parameterization_(SSP).rst", "advanced_topics/simulator/world_osi.rst", "developer_information/10_ide_support.rst", "developer_information/20_documentation.rst", "developer_information/30_coding_conventions.rst", "developer_information/ide_support/30_vscode.rst", "index.rst", "installation_guide/10_getting_started.rst", "installation_guide/15_system_requirements.rst", "installation_guide/20_install_prerequisites.rst", "installation_guide/30_install_openpass.rst", "installation_guide/50_further_guidance.rst", "installation_guide/60_conan.rst", "installation_guide/further_guidance/10_cmake.rst", "other_information/10_external_dependencies.rst", "other_information/20_glossary.rst", "other_information/30_gui_plugins.rst", "other_information/40_license.rst", "other_information/gui_user_guide/10_projects.rst", "other_information/gui_user_guide/20_system_editor.rst", "other_information/gui_user_guide/30_pcm_sim.rst", "other_information/gui_user_guide/40_pcm_eval.rst", "other_information/gui_user_guide/50_result_visualization.rst", "other_information/gui_user_guide/result_visualization/10_statistics.rst", "other_information/gui_user_guide/result_visualization/20_timePlot.rst", "user_guide/10_overview.rst", "user_guide/20_tutorials.rst", "user_guide/30_configs_in_depth.rst", "user_guide/40_outputs_in_depth.rst", "user_guide/50_scenario_simulation.rst", "user_guide/configs/profilescatalog.rst", "user_guide/configs/scenario.rst", "user_guide/configs/scenario_api_support.rst", "user_guide/configs/scenery.rst", "user_guide/configs/simulationconfig.rst", "user_guide/configs/staticsystemconfig.rst", "user_guide/configs/systemconfigblueprint.rst", "user_guide/outputs/observation_log.rst", "user_guide/outputs/observation_repository.rst", "user_guide/sim_user_guide/10_overview.rst", "user_guide/sim_user_guide/20_components.rst", "user_guide/sim_user_guide/components/algorithm_lateral.rst", "user_guide/sim_user_guide/components/algorithm_longitudinal.rst", "user_guide/sim_user_guide/components/driver.rst", "user_guide/sim_user_guide/components/dynamics_regular_driving.rst", "user_guide/sim_user_guide/components/dynamics_scenario.rst", "user_guide/sim_user_guide/components/sensor_driver.rst", "user_guide/sim_user_guide/components/spawner.rst", "user_guide/sim_user_guide/components/vehicle.rst", "user_guide/tutorials/10_scenario_simulation.rst", "user_guide/tutorials/20_pcm_simulation.rst"], "titles": ["Simulator", "EndToEnd Test Framework", "Agent Components", "Coordinate Systems", "EventDetector", "Mapping of OpenSCENARIO Actions", "Simulation", "Spawner Features", "System Structure and Parameterization (SSP)", "World_OSI", "IDE Support", "Documentation Concept", "Coding Guidelines", "Working with Visual Studio Code", "openPASS Documentation", "Getting Started", "System Requirements", "Installing Prerequisites", "Installing openPASS", "Further Guidance", "Building with Conan", "CMake Variables and Options", "External Dependencies", "Glossary", "GUI Plugins", "License", "Project", "System Editor", "PCM Simulation", "PCM Evaluation", "Result Visualization", "Statistics", "TimePlot", "Overview", "Tutorials", "Configs in Depth", "Outputs in Depth", "Simulator", "ProfilesCatalog", "Scenario", "Scenario API Support", "Scenery", "SimulationConfig", "Static SystemConfig", "SystemConfigBlueprint", "Observation_Log", "Observation_EntityRepository", "Overview", "Component View", "Algorithm_Lateral", "Algorithm_Longitudinal", "Driver", "Dynamics_RegularDriving", "Dynamics_Scenario", "Sensor_Driver", "Spawner", "VehicleComponents", "Scenario-based simulation", "PCM Simulation"], "terms": {"agent": [0, 1, 4, 6, 8, 9, 11, 14, 23, 27, 28, 33, 38, 39, 42, 43, 44, 51, 52, 53, 54, 55, 56, 57], "compon": [0, 5, 6, 8, 12, 21, 23, 27, 33, 37, 43, 44, 45, 49, 51, 56, 57], "action_longitudinaldriv": [0, 44], "action_secondarydriv": 0, "agentupdat": [0, 44, 45], "algorithm_later": [0, 37, 44, 48, 52], "algorithm_longitudin": [0, 37, 48, 52], "algorithmcar2xsend": [0, 44], "dynamics_collis": [0, 44], "dynamics_scenario": [0, 37, 44, 48], "dynamics_regulardriv": [0, 37, 44, 45, 48, 49, 50], "limiteraccelerationvehiclecompon": [0, 42, 44], "openscenarioact": [0, 44], "parameters_vehicl": [0, 49, 50, 52], "vehicl": [0, 3, 4, 8, 23, 27, 28, 33, 38, 39, 40, 44, 45, 48, 49, 50, 51, 52, 54, 56, 57], "model": [0, 4, 8, 23, 33, 38, 39, 45, 48, 49, 51, 52, 56], "relat": [0, 8, 9, 12, 13, 17, 20, 21, 33, 45, 49, 50, 52, 56], "paramet": [0, 1, 4, 8, 12, 14, 23, 27, 33, 38, 39, 42, 43, 45, 46, 47, 49, 50, 51, 52, 55, 56, 57], "powertrain": [0, 50, 52, 56], "steer": [0, 27, 44, 45, 49, 51, 52, 54, 56], "sensor_driv": [0, 37, 44, 45, 48, 49, 50], "sensor_osi": [0, 3, 44, 45], "sensorgeometric2d": [0, 48], "function": [0, 6, 8, 9, 12, 13, 22, 23, 33, 39, 40, 48, 49, 50, 53, 56, 57], "case": [0, 1, 4, 8, 9, 12, 26, 27, 28, 33, 38, 39, 45, 54, 55, 56, 57], "visual": [0, 10, 15, 18, 21, 24, 29, 33, 42, 45, 46, 56], "obstruct": [0, 45, 56], "sensorfusionosi": 0, "signalpriorit": [0, 44], "componentcontrol": [0, 39, 44], "overview": [0, 6, 11, 12, 14, 22, 37, 48, 56, 57], "state": [0, 4, 5, 6, 9, 17, 38, 39, 44, 45, 47, 49, 50, 51, 52, 53, 56, 57], "handl": [0, 6, 7, 8, 12, 38, 39, 44, 56], "insid": [0, 8, 13, 21, 39, 42, 54, 55, 56], "us": [0, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 20, 21, 23, 26, 27, 28, 29, 31, 32, 33, 38, 39, 42, 43, 44, 45, 49, 50, 51, 52, 54, 55, 56, 57], "signal": [0, 6, 8, 12, 39, 41, 44, 45, 49, 52, 56], "coordin": [0, 2, 4, 7, 9, 28, 38, 39, 45, 49, 52, 54, 56], "system": [0, 1, 2, 4, 9, 12, 13, 14, 15, 17, 18, 20, 21, 23, 24, 28, 33, 38, 43, 44, 49, 50, 52, 56, 57], "world": [0, 2, 4, 6, 12, 22, 33, 39, 42, 45, 48, 49, 54, 55, 56, 57], "road": [0, 22, 23, 33, 39, 41, 42, 45, 46, 49, 50, 51, 52, 54, 55, 56], "sensor": [0, 2, 8, 12, 22, 27, 33, 42, 44, 45, 56, 57], "convers": [0, 50], "between": [0, 1, 2, 4, 6, 7, 8, 9, 13, 14, 22, 27, 33, 42, 43, 44, 45, 49, 50, 51, 52, 53, 54, 55, 56], "sensordata": [0, 2, 8, 44, 56], "eventdetector": [0, 6, 45], "collisiondetector": 0, "map": [0, 8, 12, 46, 50, 52, 56], "openscenario": [0, 2, 9, 17, 33, 39, 44, 45, 46, 53, 56], "action": [0, 2, 12, 26, 27, 33, 44, 53], "acquirepositionact": 0, "assignrouteact": [0, 39], "customcommandact": [0, 39, 44], "followtrajectoryact": [0, 53], "lanechangeact": [0, 53], "lightstateact": 0, "speedact": [0, 53], "teleportact": 0, "trafficsignalact": 0, "trafficsignalstateact": 0, "trafficsinkact": 0, "visibilityact": 0, "command": [0, 5, 11, 12, 13, 17, 18, 20, 39, 42, 49, 50], "line": [0, 2, 9, 12, 13, 14, 17, 21, 41, 42], "argument": [0, 1, 12, 20, 42], "schedul": [0, 2, 8, 43, 44], "execut": [0, 2, 4, 9, 11, 12, 13, 17, 18, 26, 33, 39, 44, 47, 53, 56, 57], "phase": [0, 23, 39, 56], "task": [0, 2, 9, 12, 20, 56], "type": [0, 1, 2, 4, 5, 8, 9, 12, 13, 21, 26, 38, 39, 41, 42, 43, 44, 45, 46, 51, 54, 55, 56], "descript": [0, 1, 2, 4, 8, 12, 13, 26, 33, 38, 39, 42, 43, 44, 45, 46, 48, 51, 54, 55, 56, 57], "prioriti": [0, 1, 2, 8, 12, 42, 43, 56], "spawner": [0, 6, 33, 37, 38, 48, 57], "featur": [0, 8, 12, 21, 22, 39, 48, 54], "prerunspawn": [0, 48], "spawn": [0, 6, 39, 46, 55, 57], "lane": [0, 1, 2, 22, 38, 39, 41, 42, 45, 46, 51, 53, 54, 55, 56, 57], "rang": [0, 1, 2, 31, 42, 44, 45, 46, 50, 55, 56], "traffic": [0, 14, 22, 23, 33, 38, 39, 47, 49, 51, 54, 55, 57], "stochast": [0, 13, 33, 38, 39, 44, 55, 57], "runtimespawn": [0, 48], "structur": [0, 2, 11, 12, 15, 17, 22, 29, 41, 43, 54], "parameter": [0, 1, 21, 39, 43, 48, 56], "ssp": [0, 48], "input": [0, 1, 2, 6, 12, 31, 32, 35, 38, 43, 44, 47, 49, 52, 56, 57], "packag": [0, 1, 11, 13, 20, 21, 56], "ssd": 0, "definit": [0, 1, 9, 12, 33, 38, 39, 41, 42, 49, 56], "implement": [0, 2, 5, 9, 12, 21, 33, 39, 40, 50, 51, 53], "pars": [0, 1, 6, 56], "osi": [0, 2, 3, 9, 13, 21, 23, 43, 56], "connector": [0, 42], "object": [0, 2, 3, 4, 9, 22, 23, 33, 41, 45, 46, 54, 56, 57], "openpass": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "limit": [0, 1, 2, 22, 33, 50, 56], "output": [0, 1, 2, 6, 7, 12, 14, 18, 21, 39, 42, 43, 44, 49, 50, 53, 56, 57], "folderstructur": 0, "writemessageparamet": 0, "world_osi": [0, 42], "sampl": [0, 2, 5, 33, 43, 45, 47, 55], "geometri": [0, 41, 54], "local": [0, 1, 4, 13, 17, 18, 20, 39, 43], "basic": [0, 7, 13, 15, 20, 42, 45, 56], "sequenc": [0, 1, 6, 45, 55], "sign": [0, 33, 38, 54], "mark": [0, 21, 22, 54, 57], "trafficlight": [0, 45, 54], "getobstruct": [0, 56], "work": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "group": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "open": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "mingw": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "64": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "bit": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "shell": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "3": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "20": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "0": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "6": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "2": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "v1": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "12": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "1": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "14": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "72": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "9": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "13": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "27": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "4": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "7": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "pyopenpass": [1, 21], "thi": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 38, 39, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "tool": [1, 7, 8, 13, 14, 17, 22, 23, 47], "act": [1, 9, 11, 21, 33, 39, 45, 48, 49, 50, 52, 53, 55, 56], "executor": 1, "complet": [1, 8, 23, 27, 33, 35, 57], "set": [1, 2, 3, 6, 7, 8, 10, 11, 12, 14, 15, 17, 18, 20, 21, 22, 23, 28, 33, 38, 39, 40, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 55, 56, 57], "config": [1, 2, 6, 11, 13, 14, 17, 26, 33, 42, 56, 57], "simul": [1, 2, 7, 8, 9, 11, 13, 14, 15, 16, 17, 18, 20, 21, 23, 24, 27, 29, 30, 33, 34, 36, 38, 39, 41, 42, 43, 44, 45, 47, 49, 50, 51, 52, 53, 55, 56], "The": [1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 20, 21, 22, 24, 26, 27, 28, 29, 30, 32, 33, 38, 39, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 54, 55, 56, 57], "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 32, 33, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "locat": [1, 3, 8, 9, 11, 12, 13, 14, 17, 18, 20, 26, 39, 55, 57], "sim": [1, 11, 13, 39, 56, 57], "endtoendtest": 1, "base": [1, 2, 4, 6, 8, 9, 12, 13, 14, 18, 21, 22, 23, 24, 26, 27, 28, 29, 30, 33, 34, 39, 42, 44, 46, 47, 49, 52, 53, 54, 55, 56], "python": [1, 17, 20, 21], "some": [1, 11, 13, 17, 21, 22, 33, 41, 45, 49, 50, 51, 55, 57], "addit": [1, 4, 8, 9, 11, 12, 13, 17, 21, 28, 38, 39, 41, 45, 48, 49, 50, 56], "modul": [1, 2, 6, 21, 23, 42, 44, 48, 53, 56], "instal": [1, 11, 12, 15, 16, 22, 57], "requir": [1, 2, 7, 8, 9, 11, 13, 14, 15, 17, 18, 20, 21, 27, 32, 33, 38, 41, 43, 44, 49, 50, 51, 55, 56, 57], "can": [1, 2, 4, 6, 8, 9, 11, 12, 13, 14, 17, 18, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 38, 39, 41, 42, 44, 45, 48, 49, 50, 51, 52, 53, 55, 56, 57], "accomplish": 1, "pip": [1, 17, 20], "pleas": [1, 12, 13, 15, 17, 18, 20, 21, 33, 39, 42, 44, 51], "refer": [1, 3, 8, 9, 11, 12, 13, 17, 21, 26, 33, 38, 39, 42, 44, 45, 49, 51, 55, 56], "file": [1, 4, 6, 7, 8, 9, 11, 13, 17, 20, 21, 26, 27, 28, 29, 31, 32, 33, 35, 38, 39, 41, 42, 43, 44, 56, 57], "txt": [1, 11, 17, 20], "code": [1, 10, 11, 14, 15, 17, 18, 20, 21, 22, 27, 28, 56], "repositori": [1, 11, 12, 13, 17, 18, 20, 42, 46, 57], "list": [1, 2, 4, 7, 8, 13, 16, 17, 18, 20, 21, 31, 33, 38, 39, 42, 44, 45, 54, 55, 56, 57], "depend": [1, 2, 6, 9, 12, 13, 14, 18, 20, 21, 23, 26, 28, 33, 38, 39, 42, 44, 49, 50], "see": [1, 2, 8, 9, 11, 12, 13, 17, 18, 19, 20, 22, 23, 26, 29, 32, 33, 38, 39, 42, 44, 45, 47, 49, 56, 57], "instruct": [1, 13, 15, 17, 18, 20, 22, 56, 57], "checkout": [1, 17, 22, 57], "directli": [1, 8, 12, 17, 21, 27, 39, 42, 50, 57], "pass": [1, 8, 20, 38, 52, 56], "r": [1, 2, 9, 28, 39, 45, 49, 52, 56], "from": [1, 2, 3, 5, 8, 9, 11, 12, 13, 17, 18, 20, 21, 22, 26, 28, 31, 33, 38, 39, 42, 44, 45, 46, 47, 49, 50, 51, 52, 54, 55, 56, 57], "try": [1, 13, 39, 51], "fetch": [1, 20, 52], "precompil": 1, "default": [1, 6, 8, 12, 13, 15, 17, 18, 20, 21, 28, 38, 39, 42, 46, 51, 53, 54, 55, 56, 57], "If": [1, 2, 6, 8, 9, 12, 13, 17, 18, 21, 22, 26, 33, 38, 39, 41, 42, 44, 45, 46, 50, 53, 55, 56, 57], "unabl": 1, "binari": [1, 8, 20, 56], "current": [1, 2, 3, 5, 8, 9, 11, 12, 13, 18, 22, 27, 28, 33, 38, 40, 42, 45, 49, 50, 51, 52, 53, 54, 55, 56, 57], "environ": [1, 2, 10, 11, 13, 14, 15, 20, 21, 22, 38, 54, 57], "compil": [1, 12, 13, 15, 17, 18, 20, 21, 56], "step": [1, 2, 3, 6, 8, 9, 11, 12, 13, 15, 17, 18, 21, 22, 26, 33, 39, 43, 45, 49, 50, 52, 53, 55, 56, 57], "fail": [1, 9, 21], "numpi": 1, "when": [1, 2, 6, 7, 9, 11, 12, 13, 18, 20, 21, 26, 28, 33, 39, 44, 45, 47, 52, 53, 56, 57], "being": [1, 7, 11, 17, 20, 33, 45, 51, 55], "built": [1, 13, 17, 18, 20, 22, 56], "msys2": [1, 17, 18, 20, 21, 23], "thu": [1, 11, 16, 41, 57], "recommend": [1, 12, 13, 15, 16, 17, 18, 21, 22, 26, 33, 39, 56], "up": [1, 2, 4, 6, 7, 8, 10, 12, 15, 17, 20, 22, 23, 32, 38, 42, 49, 56, 57], "nativ": [1, 12, 13, 17, 20, 23], "window": [1, 12, 13, 15, 16, 17, 18, 20, 21, 22, 23, 38], "perform": [1, 2, 8, 12, 16, 21, 33, 38, 39, 56, 57], "To": [1, 2, 8, 11, 12, 13, 17, 18, 20, 21, 28, 33, 39, 49, 52, 56, 57], "forc": [1, 2, 39, 51, 56, 57], "usag": [1, 8, 11, 13, 14, 17, 21, 39, 49], "specif": [1, 2, 4, 8, 9, 13, 14, 16, 17, 20, 22, 28, 33, 38, 39, 42, 45, 49, 50, 56, 57], "variabl": [1, 2, 8, 9, 12, 13, 15, 17, 18, 19, 22, 49, 50, 52, 54], "python3_execut": 1, "indend": 1, "interpret": [1, 4, 8, 9, 39, 53], "dure": [1, 2, 6, 8, 11, 16, 18, 20, 21, 39, 40, 43, 45, 52, 53, 55, 56], "cmake": [1, 11, 15, 17, 18, 19], "As": [1, 2, 8, 9, 11, 13, 17, 21, 22, 26, 27, 33, 35, 36, 39, 45, 48, 50, 53, 55, 56, 57], "pytest": [1, 17], "plugin": [1, 14, 26, 28, 29, 31, 32, 33], "yet": [1, 8, 12, 15, 33, 35, 40, 52, 57], "standalon": 1, "automat": [1, 7, 8, 13, 17, 21], "find": [1, 13, 18, 26, 44, 57], "its": [1, 2, 3, 4, 6, 8, 9, 13, 17, 20, 21, 22, 39, 49, 50, 51, 52, 54, 56], "entri": [1, 8, 14, 26, 33, 38, 39, 42, 45, 56], "point": [1, 2, 3, 4, 9, 11, 12, 13, 14, 27, 28, 33, 39, 45, 49, 52, 53, 54, 55, 56], "conftest": 1, "py": [1, 11, 20], "next": [1, 2, 6, 8, 11, 13, 17, 18, 26, 33, 39, 45, 53, 54, 55, 57], "name": [1, 2, 5, 6, 8, 9, 11, 13, 20, 26, 28, 33, 38, 39, 40, 41, 42, 44, 45, 46, 51, 55, 56, 57], "test_": 1, "json": [1, 8, 13, 56], "so": [1, 2, 8, 9, 12, 13, 16, 17, 22, 23, 26, 27, 33, 39, 46, 50, 52, 55, 56, 57], "must": [1, 2, 8, 9, 11, 12, 13, 18, 28, 38, 39, 42, 49, 50, 56, 57], "copi": [1, 11, 13, 17, 18, 21, 57], "directori": [1, 8, 11, 12, 13, 17, 18, 21, 26, 39, 56, 57], "befor": [1, 6, 11, 13, 17, 18, 20, 22, 23, 26, 49, 55, 56], "simulation_ex": 1, "path": [1, 6, 7, 11, 12, 18, 20, 21, 33, 39, 42, 43, 45, 56], "e": [1, 2, 4, 6, 8, 9, 11, 12, 13, 17, 20, 21, 22, 23, 27, 28, 33, 38, 39, 42, 45, 46, 49, 51, 52, 54, 56, 57], "g": [1, 2, 6, 8, 11, 12, 13, 17, 18, 20, 21, 22, 23, 28, 33, 39, 45, 46, 50, 52, 54, 56, 57], "bin": [1, 13, 17, 18, 21, 57], "opsimul": [1, 6, 13, 17, 21, 26, 33, 56, 57], "mutual": 1, "mutual_resources_path": 1, "all": [1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 31, 32, 33, 35, 36, 38, 39, 41, 42, 44, 45, 46, 48, 49, 50, 52, 53, 54, 55, 56, 57], "run": [1, 6, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 28, 33, 39, 41, 42, 45, 46, 47, 55, 56, 57, 58], "common": [1, 4, 6, 7, 8, 9, 11, 12, 17, 31, 33, 39, 45, 46, 55, 57], "resourc": [1, 8], "resources_path": 1, "where": [1, 2, 3, 8, 9, 12, 13, 20, 26, 28, 33, 49, 50, 52, 53, 54, 55, 56, 57], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 32, 33, 36, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "retriev": [1, 2, 9, 12, 13, 20, 28], "overrid": [1, 2, 11, 12, 20, 21, 39, 56], "necessari": [1, 8, 11, 12, 13, 17, 18, 20, 21, 22, 23, 50, 56], "report": [1, 13, 21, 53], "report_path": 1, "shall": [1, 7, 11, 17, 21, 28, 31, 35, 38, 47, 56], "store": [1, 4, 8, 9, 17, 39, 45, 54, 57], "allow": [1, 2, 8, 9, 11, 12, 13, 20, 21, 23, 38, 39, 44, 49, 56], "warn": [1, 2, 13, 22, 28, 33, 56], "allowed_warnings_path": 1, "which": [1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 17, 18, 20, 21, 22, 23, 25, 26, 27, 28, 31, 33, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "contain": [1, 2, 4, 7, 8, 9, 11, 12, 14, 15, 23, 26, 31, 32, 33, 38, 39, 40, 42, 44, 45, 46, 49, 52, 54, 55, 56, 57], "ignor": [1, 7, 8, 31, 38, 39, 41, 53, 55], "test_fil": 1, "under": [1, 8, 11, 12, 13, 17, 18, 20, 21, 25, 47, 49, 52, 55, 56, 57], "you": [1, 8, 13, 15, 17, 18, 20, 21, 22, 26, 27, 28, 33, 46, 56, 57], "v": [1, 2, 13, 28, 49, 51, 52], "verbos": [1, 11], "collect": [1, 2, 8, 23, 33, 54], "onli": [1, 2, 4, 5, 6, 8, 9, 11, 12, 13, 16, 17, 21, 22, 26, 27, 28, 38, 40, 42, 44, 45, 46, 50, 53, 55, 56, 57], "avail": [1, 2, 4, 8, 11, 13, 15, 17, 18, 20, 21, 22, 25, 33, 39, 42, 47, 48, 51, 56, 57], "http": [1, 4, 8, 9, 11, 13, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 51, 53, 56], "doc": [1, 11, 12, 13, 14, 18, 20, 21, 43, 57], "org": [1, 8, 9, 11, 17, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 51, 53, 56], "In": [1, 2, 3, 4, 8, 9, 13, 14, 16, 20, 21, 23, 26, 28, 33, 36, 38, 39, 42, 45, 46, 47, 48, 49, 53, 55, 56, 57], "support": [1, 2, 5, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23, 27, 33, 35, 38, 39, 41, 45, 46, 53, 56], "follow": [1, 2, 3, 6, 8, 9, 11, 12, 13, 15, 17, 18, 20, 21, 27, 28, 31, 33, 36, 38, 39, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57], "option": [1, 9, 12, 13, 15, 17, 18, 19, 20, 22, 26, 33, 39, 42, 43, 46, 55, 56], "provid": [1, 2, 10, 11, 12, 13, 17, 21, 22, 26, 27, 33, 44, 47, 52, 56, 57], "artifact": [1, 20], "For": [1, 2, 3, 8, 9, 12, 13, 17, 18, 20, 21, 22, 26, 28, 31, 32, 33, 38, 39, 42, 44, 45, 47, 50, 51, 54, 56], "each": [1, 2, 3, 4, 6, 8, 9, 12, 21, 28, 31, 32, 33, 39, 42, 44, 45, 46, 47, 50, 53, 55, 56, 57], "specifi": [1, 2, 8, 11, 12, 17, 18, 20, 21, 23, 26, 27, 33, 38, 39, 42, 50, 54, 55, 56, 57], "correspond": [1, 2, 6, 9, 11, 13, 20, 31, 36, 38, 39, 44, 45, 50, 56, 57], "html": [1, 9, 11, 20, 21, 22], "gener": [1, 2, 3, 4, 8, 9, 11, 13, 22, 23, 28, 33, 36, 38, 39, 42, 44, 45, 46, 47, 49, 50, 54, 56, 57], "might": [1, 2, 13, 17, 18, 21, 23, 33, 35, 39, 51, 57], "conflict": 1, "length": [1, 2, 3, 5, 7, 8, 9, 17, 39, 41, 45, 54, 55, 56], "increas": [1, 3, 22, 49, 56], "registri": 1, "kei": [1, 2, 17, 28, 38, 42, 44, 45, 46, 51, 55, 56], "longpathsen": 1, "access": [1, 4, 8, 17, 18, 39, 56], "comput": 1, "hkey_local_machin": 1, "currentcontrolset": 1, "control": [1, 2, 8, 9, 13, 33, 39, 44, 45, 48, 50, 53, 56], "filesystem": [1, 8, 17], "cannot": [1, 2, 9, 13], "disabl": [1, 2, 17, 56], "error": [1, 2, 7, 9, 13, 17, 21, 26, 28, 33, 49, 56], "messag": [1, 8, 11, 13, 22, 26, 43, 56], "often": [1, 10], "mislead": 1, "found": [1, 9, 17, 18, 20, 21, 24, 26, 27, 28, 29, 30, 56, 57], "actual": [1, 2, 8, 9, 13, 20, 21, 33, 39, 49, 51, 52], "exist": [1, 2, 11, 12, 17, 33, 38, 45, 46, 54, 55, 56, 57], "shutil": 1, "etc": [1, 2, 13, 20, 26, 32, 57], "xdist": 1, "invok": [1, 21, 47], "n": [1, 2, 56], "auto": 1, "similar": [1, 23, 49], "pypi": 1, "project": [1, 2, 4, 9, 11, 12, 13, 20, 24], "given": [1, 2, 6, 7, 9, 17, 20, 28, 33, 39, 42, 46, 47, 55, 56, 57], "worker": 1, "displai": [1, 8, 13, 29], "an": [1, 2, 4, 6, 7, 8, 9, 11, 12, 13, 17, 20, 21, 22, 23, 27, 28, 31, 32, 33, 38, 39, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 54, 56, 57], "arbitrari": [1, 7, 39, 56], "order": [1, 2, 6, 8, 9, 11, 13, 17, 55, 57], "shown": [1, 2, 9, 12, 21, 22, 29, 31, 32, 52, 54, 56], "done": [1, 9, 10, 11, 17, 18, 47, 50, 51, 57], "individu": [1, 2, 9, 13, 14, 21, 23, 32, 33, 38, 42, 46, 48, 56], "user": [1, 2, 12, 18, 20, 21, 26, 27, 28, 33, 39, 44, 47, 56, 57], "choic": [1, 8, 17], "three": [1, 2, 3, 8, 17, 26, 32, 39, 56], "differ": [1, 2, 3, 6, 8, 11, 13, 14, 17, 22, 28, 29, 39, 42, 44, 45, 49, 51, 54, 55, 56, 57], "runner": [1, 13], "determin": [1, 2, 4, 7, 9, 11, 45, 48, 51, 52, 55, 56, 57], "check": [1, 2, 4, 7, 9, 12, 13, 15, 17, 33, 39, 50, 52, 56], "x": [1, 2, 3, 4, 5, 8, 9, 22, 28, 31, 32, 39, 41, 44, 45, 52, 56], "one": [1, 2, 6, 7, 8, 9, 11, 21, 23, 28, 31, 33, 38, 39, 43, 44, 45, 49, 53, 55, 56, 57], "more": [1, 2, 4, 7, 8, 9, 11, 12, 13, 17, 18, 20, 21, 22, 23, 33, 39, 42, 44, 55, 56, 57], "split": [1, 6, 46], "two": [1, 2, 3, 4, 7, 8, 9, 11, 17, 21, 27, 31, 32, 38, 44, 45, 47, 50, 55, 56, 57], "section": [1, 2, 8, 9, 10, 11, 12, 13, 17, 18, 19, 22, 33, 38, 39, 42, 44, 45, 57], "singl": [1, 2, 9, 11, 12, 14, 16, 17, 21, 38, 39, 42, 45, 46, 49, 52], "whenev": [1, 6, 52], "possibl": [1, 2, 8, 9, 11, 13, 17, 21, 28, 29, 31, 33, 38, 39, 44, 45, 47, 50, 51, 55, 56], "re": [1, 17, 28, 31, 33, 42], "speed": [1, 2, 38, 47, 50, 51, 52, 54, 56], "analysi": [1, 7, 21], "config_set": 1, "config_set_1": 1, "defin": [1, 2, 3, 6, 8, 9, 12, 13, 20, 21, 28, 33, 38, 39, 42, 43, 44, 45, 46, 47, 50, 53, 55, 56, 57], "config_folder_1": 1, "config_folder_2": 1, "config_set_2": 1, "config_folder_3": 1, "config_set_3": 1, "config_folder_4": 1, "true": [1, 2, 4, 7, 8, 13, 20, 38, 39, 40, 41, 45, 50, 54, 55, 56, 57], "activ": [1, 2, 14, 21, 22, 23, 33, 39, 45, 50, 51, 53, 55, 56, 57], "durat": [1, 6, 39], "30": [1, 9, 22, 41, 42, 44, 45], "how": [1, 8, 11, 14, 15, 17, 18, 22, 33, 42, 45, 46, 48, 49, 51, 55, 57, 58], "long": [1, 21, 33], "invoc": [1, 33, 42, 45, 47, 57], "compar": [1, 9, 29, 47], "1x3": 1, "3x1": 1, "systemconfigfmu": 1, "xml": [1, 2, 8, 26, 27, 33, 38, 39, 42, 45, 56, 57], "xpath": 1, "valu": [1, 2, 3, 6, 7, 8, 9, 13, 20, 21, 28, 33, 38, 39, 42, 43, 44, 45, 46, 50, 51, 52, 54, 55, 56], "id": [1, 2, 4, 5, 8, 9, 12, 13, 14, 19, 20, 23, 31, 32, 38, 40, 41, 42, 43, 45, 46, 54, 56], "fmupath": [1, 56], "need": [1, 2, 3, 8, 9, 12, 13, 17, 18, 21, 22, 26, 27, 31, 32, 33, 38, 39, 41, 42, 43, 44, 49, 50, 55, 56, 57], "replac": [1, 11, 12, 13, 56], "fmu1_staticfmu": 1, "fmu": [1, 5, 8, 22, 23, 39, 43, 48], "fmu2_staticfmu": 1, "10": [1, 9, 13, 16, 21, 22, 38, 39, 44, 52], "100": [1, 2, 39, 41, 43, 44, 45, 52], "count": [1, 28], "agentid": [1, 12], "timestep": [1, 2, 4, 6, 8, 39, 42, 45, 52, 53, 55, 56], "10000": 1, "velocityego": [1, 42, 45, 56], "mean": [1, 2, 9, 13, 17, 26, 33, 38, 39, 42, 44, 47, 52, 53, 55, 56], "success_r": 1, "8": [1, 6, 9, 11, 16, 22, 39, 41, 42], "80": [1, 44, 55], "60": [1, 50, 52], "ram_limit": 1, "512": 1, "ram": [1, 16], "mb": 1, "measur": 1, "It": [1, 2, 3, 8, 12, 13, 17, 20, 23, 26, 29, 31, 33, 38, 39, 41, 42, 43, 45, 49, 50, 52, 53, 54, 55, 56], "also": [1, 2, 3, 7, 8, 9, 11, 12, 13, 17, 18, 19, 22, 27, 33, 38, 39, 44, 45, 46, 49, 50, 51, 53, 55, 56, 57], "success": [1, 9, 12, 13, 17, 26, 45], "exclud": [1, 21], "99": [1, 44], "intern": [1, 2, 9, 21, 22, 33, 39, 46], "datafram": 1, "aggreg": [1, 2, 9], "data": [1, 2, 3, 8, 12, 21, 22, 23, 28, 39, 43, 44, 45, 54, 56], "custom": [1, 11, 13, 20, 21, 39], "languag": [1, 12], "describ": [1, 2, 3, 4, 8, 9, 11, 12, 13, 15, 17, 18, 21, 22, 23, 33, 35, 36, 38, 39, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 54, 55, 57], "below": [1, 2, 4, 11, 12, 13, 16, 17, 20, 32, 42, 44, 45, 46, 51, 56], "gather": [1, 2], "relev": [1, 2, 5, 8, 31, 32, 44, 56, 57], "folder": [1, 8, 11, 13, 17, 18, 20, 21, 26, 29, 31, 32, 33, 56, 57], "typic": [1, 2, 21, 33, 39, 55], "expect": [1, 13, 56], "simulationoutput": [1, 33, 42, 57], "detail": [1, 4, 8, 12, 13, 17, 20, 22, 23, 26, 33, 35, 38, 39, 48, 53, 57], "cyclics_run": 1, "run_id": 1, "csv": [1, 31, 32, 33, 42, 45, 56, 57], "here": [1, 9, 11, 17, 24, 26, 27, 28, 29, 30, 33, 35, 38, 39, 42, 44, 49, 55, 56, 57], "placehold": [1, 11, 20], "number": [1, 2, 9, 11, 12, 20, 22, 28, 33, 38, 39, 42, 44, 45, 47, 50, 56, 57], "cyclic": [1, 33, 44, 57], "posit": [1, 2, 3, 9, 11, 23, 27, 28, 32, 33, 38, 39, 42, 45, 48, 49, 50, 51, 53, 54, 55, 56, 57], "y": [1, 2, 3, 4, 9, 12, 17, 28, 32, 39, 41, 45, 52, 56], "veloc": [1, 2, 3, 4, 5, 28, 32, 39, 45, 49, 50, 51, 52, 53, 54, 55, 56, 57], "independ": [1, 6, 8, 23], "subfold": [1, 31, 32, 56], "pattern": [1, 8, 13], "entiti": [1, 5, 8, 12, 33, 42, 45, 46, 56], "entity_id": 1, "discov": [1, 13], "look": [1, 8, 13, 33, 57], "recursilvi": 1, "within": [1, 2, 6, 8, 9, 12, 13, 17, 18, 21, 23, 33, 38, 39, 41, 42, 46, 50, 55, 56, 57], "them": [1, 2, 4, 8, 12, 20, 23, 43, 44, 45, 56], "everi": [1, 2, 8, 12, 28, 33, 38, 42, 44, 45, 46, 53, 56, 57], "belowstand": 1, "condit": [1, 6, 8, 23, 33, 44, 45, 47, 52, 55, 57], "satisfi": 1, "thei": [1, 6, 7, 8, 12, 13, 17, 20, 22, 28, 33, 39, 42, 43, 44, 45, 48, 50, 55, 57], "merg": [1, 2, 3, 38], "runid": [1, 45], "column": [1, 31, 32, 45, 46], "other": [1, 2, 3, 7, 8, 12, 13, 16, 17, 20, 21, 23, 38, 39, 42, 43, 44, 45, 46, 48, 49, 50, 53, 54, 55, 56], "start": [1, 6, 7, 11, 12, 13, 14, 17, 18, 26, 39, 42, 45, 46, 49, 53, 55, 56, 57], "match": [1, 7, 21, 38, 39, 49, 50, 56], "00": [1, 42, 44, 45], "detectedobject": 1, "prefix": [1, 11, 21, 39, 46], "columnnam": 1, "shorten": 1, "doe": [1, 7, 9, 12, 13, 17, 33, 39, 41, 42, 45, 50, 55, 56], "take": [1, 2, 7, 21, 56], "care": [1, 2, 18, 56], "duplic": [1, 46], "suffix": 1, "succe": 1, "like": [1, 2, 7, 8, 11, 13, 17, 28, 29, 33, 39, 42, 43, 44, 49, 50, 51, 56, 57], "oper": [1, 2, 9, 12, 13, 16, 33, 39], "everyth": [1, 56], "panda": [1, 17], "min": [1, 2, 38, 44, 50, 52, 55, 56], "max": [1, 2, 28, 38, 44, 50, 51, 52, 55, 56], "A": [1, 2, 4, 7, 8, 9, 12, 13, 17, 20, 21, 23, 33, 38, 39, 42, 45, 50, 53, 55, 56, 57], "should": [1, 2, 8, 11, 12, 13, 18, 22, 33, 39, 43, 44, 48, 50, 55, 56, 57], "positionrout": [1, 39, 42, 45], "tag": [1, 9, 24, 26, 27, 28, 29, 30, 38, 39, 41, 42, 43, 45], "agenttypegroupnam": [1, 45], "agenttypenam": [1, 45], "vehiclemodeltyp": [1, 45], "driverprofilenam": [1, 45], "agenttyp": 1, "comparison": [1, 11], "approxim": [1, 2, 51], "maximum": [1, 2, 6, 9, 12, 21, 38, 39, 42, 50, 51, 52, 54, 55, 56], "deviat": [1, 9, 18, 28, 48, 51], "seldom": 1, "skip": [1, 2, 21, 42, 46], "secur": 1, "ha": [1, 2, 3, 4, 7, 8, 9, 11, 22, 27, 28, 29, 38, 39, 42, 44, 45, 47, 49, 50, 52, 54, 56, 57], "been": [1, 12, 18, 22, 33, 56, 57], "800": 1, "collis": [1, 2, 4, 11, 13, 23, 33, 54, 56], "associ": [1, 20, 33], "trigger": [1, 5, 6, 8, 13, 33, 39, 42, 44, 45, 55, 56, 57], "affect": [1, 2, 45], "pair": [1, 8, 42, 43, 45], "document": [1, 8, 12, 13, 17, 18, 21, 22, 23, 33, 39, 42, 58], "inform": [1, 2, 8, 9, 11, 12, 13, 15, 17, 20, 28, 33, 39, 42, 43, 44, 45, 46, 49, 50, 51, 54, 56, 57], "transform": [1, 8, 9, 49, 56], "per": [1, 9, 13, 44, 45, 50, 56], "scope": [1, 12, 17, 18, 44, 48], "taken": [1, 4, 28, 56], "triggeringent": [1, 39, 45], "flag": [1, 2, 6, 9, 12, 18, 20, 55], "becom": [1, 11, 49], "istrigg": 1, "affectedent": [1, 45], "isaffect": 1, "publish": [1, 2, 6, 20, 45], "xyz": 1, "withag": 1, "carri": [1, 9, 33, 39], "collisionwithag": [1, 4], "strip": 1, "No": [1, 2, 7, 9, 28, 42, 46, 50, 55], "collid": [1, 4, 54], "process": [1, 2, 6, 8, 9, 11, 13, 15, 16, 17, 20, 28, 33, 39, 50, 56], "same": [1, 2, 8, 9, 11, 27, 33, 38, 39, 42, 43, 44, 45, 53, 54, 55, 56], "manner": [1, 46], "regular": [1, 21, 45, 51], "abov": [1, 2, 8, 9, 11, 12, 13, 17, 26, 39, 46, 49, 50, 56], "occurr": 1, "stori": [1, 33, 45], "maneuv": [1, 45, 57], "thestori": 1, "theact": 1, "thesequ": 1, "numberofexecut": 1, "themaneuv": 1, "ttc_event": 1, "overwrit": [1, 39, 57], "startcondit": 1, "conditiongroup": [1, 39], "byentiti": 1, "entitycondit": 1, "timetocollis": 1, "sometim": 1, "whether": [1, 2, 4, 9, 20, 52, 54, 55, 56], "happen": [1, 6, 23, 33, 39, 56], "certain": [1, 8, 11, 13, 38, 39, 45], "achiev": [1, 2, 9, 38], "shift": [1, 2, 13, 28, 32, 50], "earlier": [1, 8], "350": [1, 44], "laneid": [1, 5, 39, 55], "have": [1, 2, 4, 6, 7, 8, 9, 11, 12, 13, 16, 17, 18, 21, 22, 27, 33, 38, 39, 46, 49, 53, 55, 56, 57], "integ": [1, 2, 8, 39, 42, 45, 54, 56], "would": [1, 2, 11, 13, 26, 33, 47, 50], "appli": [1, 6, 12, 18, 20, 44, 49, 50, 52, 53, 55, 56], "behavior": [1, 39, 45, 49, 50, 51, 55, 56], "lead": [1, 7, 9, 11, 15, 17, 21, 26, 45, 49, 51], "escap": [1, 21], "quot": [1, 12, 21], "restrict": [1, 9, 11, 17, 38, 55], "first": [1, 6, 7, 8, 9, 13, 15, 17, 21, 22, 23, 26, 31, 32, 33, 39, 42, 44, 46, 49, 50, 52, 55, 56], "succeed": [1, 13], "detect": [1, 2, 4, 21, 33, 45, 56], "won": [1, 13, 28], "t": [1, 2, 3, 7, 8, 9, 11, 13, 22, 28, 39, 41, 44, 45, 46, 51, 52, 54, 55, 56], "fit": [1, 2, 13, 23, 50], "": [1, 2, 3, 7, 8, 9, 12, 13, 17, 20, 23, 27, 33, 39, 41, 45, 48, 51, 53, 54, 55, 56], "intent": 1, "hold": [1, 2, 8, 9, 15, 22, 49, 51], "semicolon": [1, 21, 31, 32], "separ": [1, 9, 11, 12, 21, 22, 28, 31, 32, 33, 39, 42, 46, 51, 55, 56, 57], "just": [1, 6, 8, 11, 12, 28, 51], "element": [1, 8, 9, 39, 42, 46, 50, 52], "imposs": 1, "distinguish": [1, 12, 21], "string": [1, 5, 8, 11, 21, 38, 39, 42, 43, 44, 45, 46, 51, 55, 56], "reason": [1, 39, 46], "explicitli": [1, 12, 21, 43, 44, 55], "along": [1, 2, 3, 9, 16, 39, 49, 53, 54, 56], "sensor0_detectedag": 1, "str": 1, "miss": [1, 2, 7, 13, 20, 21, 39, 50, 56, 57], "want": [1, 2, 11, 33, 57], "debug": [1, 6, 8, 21, 22, 28], "add": [1, 3, 11, 13, 17, 20, 31, 38, 41, 42, 56], "launch": [1, 13, 23], "after": [1, 2, 4, 6, 8, 9, 13, 21, 26, 28, 55, 56, 57], "arg": [1, 13, 18, 21], "core": [1, 6, 12, 13, 16, 17, 18, 21, 33, 39, 42, 43, 48, 50, 52, 57], "oss": 1, "repo": [1, 11, 13, 39], "allowed_end_to_end_warn": 1, "test_end_to_end": 1, "request": [1, 2, 13, 39, 53, 56], "consol": [1, 18, 57], "integratedtermin": 1, "compos": [2, 33, 48], "multipl": [2, 4, 16, 21, 28, 29, 31, 42, 43, 44, 45, 56], "connect": [2, 6, 7, 8, 9, 13, 23, 33, 49, 50, 52, 56], "figur": [2, 8, 56], "roughli": [2, 48], "divid": [2, 6, 17, 22, 39, 48, 56, 57], "driver": [2, 12, 27, 33, 37, 42, 44, 45, 48, 49, 50, 52, 54, 56], "algorithm": [2, 8, 9, 12, 27, 44, 48], "dynam": [2, 12, 23, 27, 38, 39, 43, 44, 45, 48, 56], "priorit": [2, 33, 44], "therebi": [2, 11, 22, 33, 47], "consist": [2, 3, 8, 9, 12, 13, 23, 31, 38, 42, 44, 45, 54, 56], "sever": [2, 9, 12, 13, 14, 20, 21, 22, 42, 48, 49, 55], "submodul": 2, "read": [2, 8, 13, 21, 28, 31, 44, 45, 56], "interfac": [2, 4, 5, 8, 9, 12, 13, 14, 18, 20, 23, 39, 52, 56], "write": [2, 6, 8, 11, 12, 39, 42, 45, 46], "longitudin": [2, 3, 33, 38, 39, 44, 45, 48, 49, 56], "later": [2, 3, 9, 28, 33, 38, 39, 44, 45, 48, 56], "By": [2, 8, 18, 21, 46, 56], "statist": [2, 27, 30], "probabl": [2, 33, 38, 42, 47, 55, 56], "profilescatalog": [2, 33, 35, 44, 48, 56, 57], "superset": [2, 33], "valid": [2, 8, 9, 33, 54, 55, 56], "combin": [2, 8, 21, 28, 32, 52], "systemconfigblueprint": [2, 33, 35, 38, 43, 45, 57], "framework": [2, 4, 14, 17, 21, 22, 23, 52, 56], "channel": [2, 8, 20, 23, 56], "turn": [2, 11, 17, 21, 39, 42, 45, 56], "give": [2, 6, 8, 13, 17, 18, 22, 33, 56], "exhaust": 2, "over": [2, 31, 32, 49, 50, 53, 56], "commun": [2, 8, 43, 44, 56], "draw": 2, "io": [2, 13, 23], "componentschannelcommunicationdiagram": 2, "drawio": 2, "parametr": [2, 8, 14, 33, 42], "explain": [2, 12, 14, 58], "guid": [2, 10, 15, 17, 21, 27, 33, 48, 57], "therefor": [2, 6, 8, 13, 17, 28, 33, 39, 43, 49, 50, 52, 57], "updat": [2, 4, 6, 13, 17, 44, 48, 56], "pedal": [2, 27, 45, 50, 51, 52, 56], "gear": [2, 39, 42, 45, 48, 49, 51, 52, 56], "prepar": [2, 6, 11, 17, 18], "algorithmlongitudin": 2, "brake": [2, 23, 27, 45, 50, 51, 52, 56], "light": [2, 9, 39, 45, 54], "indic": [2, 3, 9, 12, 44, 45, 52, 56], "horn": 2, "switch": [2, 13, 53], "headlight": [2, 45], "high": [2, 42, 45, 47, 49, 51, 56], "beam": [2, 45], "flasher": 2, "secondari": [2, 45, 46], "drive": [2, 17, 23, 33, 38, 41, 45, 46, 49, 50, 51, 52, 53, 54, 55, 56], "transfer": [2, 8, 43, 49, 56], "grade": 2, "exampl": [2, 8, 9, 11, 12, 13, 16, 17, 20, 21, 27, 33, 39, 44, 45, 46, 47, 50, 56, 57], "primari": 2, "direct": [2, 3, 4, 8, 9, 45, 53, 54, 56], "movement": [2, 6, 49, 53, 56], "indirect": 2, "complement": [2, 57], "tertiari": 2, "radio": [2, 28], "tabl": [2, 4, 6, 16, 32, 44, 51, 52, 54, 56], "paramemt": 2, "in_indicatorst": 2, "left": [2, 3, 9, 13, 38, 41, 45, 49, 54, 55, 56], "center": [2, 3, 9, 23, 41, 45, 49, 56], "off": [2, 11, 18, 21, 39, 45, 56], "right": [2, 3, 6, 9, 13, 18, 32, 38, 39, 41, 45, 49, 54, 55, 56, 57], "in_hornswitch": 2, "fals": [2, 4, 6, 8, 9, 11, 12, 13, 20, 38, 39, 42, 45, 54, 56, 57], "in_headlightswitch": 2, "in_highbeamlightswitch": 2, "in_flasherswitch": 2, "method": [2, 5, 12, 44, 56], "dynamicspriorit": 2, "includ": [2, 6, 8, 11, 12, 13, 14, 20, 21, 22, 27, 31, 33, 45, 46, 54, 55, 56, 57, 58], "acceler": [2, 3, 40, 44, 45, 50, 51, 52, 54, 56], "rotat": [2, 3, 45, 49, 52, 56], "convert": [2, 3, 9, 40, 49, 52, 56], "wheel": [2, 27, 45, 49, 50, 51, 52, 54, 56], "angl": [2, 4, 5, 27, 28, 45, 49, 51, 52, 54, 56], "mention": [2, 13, 17, 18, 33], "via": [2, 9, 13, 17, 22, 39, 43, 44, 52, 56], "radiointerfac": 2, "unit": [2, 5, 7, 8, 9, 13, 18, 20, 21, 22, 23, 38, 43, 44, 45, 51, 52, 54, 55, 56], "signalstrength": [2, 56], "doubl": [2, 12, 38, 39, 45, 51, 54, 55, 56, 57], "w": [2, 39, 45, 49, 52, 56], "singal": 2, "strength": [2, 56], "car2xsend": 2, "sendpositionxen": 2, "boolean": [2, 8, 45, 50, 54, 56], "sent": [2, 44, 49, 52, 56], "sendpositionyen": 2, "sendvelocityen": 2, "sendaccelerationen": 2, "sendyawen": 2, "yaw": [2, 4, 9, 38, 45, 52, 56], "partner": 2, "bigger": [2, 56], "than": [2, 7, 9, 12, 50, 51, 53, 54, 56, 57], "previou": [2, 3, 28, 29, 52, 53, 55, 57], "time": [2, 4, 5, 6, 8, 12, 23, 32, 33, 38, 39, 42, 43, 44, 45, 49, 51, 52, 53, 55, 56, 57], "dynamicscollis": [2, 44], "calcul": [2, 3, 4, 9, 12, 22, 23, 28, 31, 39, 45, 50, 51, 52, 55, 56], "fulli": [2, 8, 15, 33, 57], "inelast": 2, "while": [2, 8, 38, 39, 51, 52, 53], "momentum": [2, 4], "conserv": 2, "slow": [2, 51], "down": [2, 8, 50], "fix": [2, 9, 11, 12, 22, 39, 55, 56], "deceler": [2, 50, 51, 52, 56], "until": [2, 33, 42, 50, 56], "stop": [2, 9, 28, 39, 53, 56], "motion": [2, 56], "physic": [2, 33, 39, 51], "friction": [2, 42, 50, 56], "both": [2, 4, 7, 8, 9, 11, 33, 41, 46, 48, 55, 56], "cover": [2, 7, 27, 47], "consequ": [2, 9], "rate": [2, 9, 39, 42, 45, 51, 52, 56], "new": [2, 6, 8, 12, 17, 26, 28, 31, 33, 44, 52, 53, 55, 57], "accelerationsign": [2, 44, 56], "prioritizeraccelerationvehiclecompon": [2, 44], "constraint": [2, 50], "dynamicstrajectoryfollow": [2, 44, 48], "trajectori": [2, 5, 27, 28, 29, 32, 33, 39, 44, 49, 53, 56, 57], "a_": [2, 50, 51, 52, 56], "text": [2, 9, 13, 28, 49, 56], "lim": 2, "frac": [2, 49, 50, 51, 52, 56], "f_": [2, 52, 56], "roll": [2, 4, 17, 38, 39, 41, 42, 50, 52], "air": [2, 51, 52, 56], "m_": [2, 50, 52, 56], "veh": 2, "symbol": [2, 56], "result": [2, 3, 6, 7, 8, 9, 11, 20, 21, 24, 26, 33, 46, 47, 50, 52, 53, 56, 57], "m": [2, 7, 9, 11, 13, 22, 23, 42, 44, 45, 49, 50, 51, 52, 54, 55, 56], "s\u00b2": [2, 45, 51, 54, 56], "drivetrain": [2, 56], "resist": [2, 50, 52, 56], "drag": [2, 50, 51, 52], "mass": [2, 4, 50, 52, 56], "kg": [2, 52], "t_": [2, 52, 56], "engin": [2, 45, 50, 51, 52, 53, 56], "cdot": [2, 49, 50, 51, 52, 56], "r_": [2, 50, 52], "axl": [2, 3, 9, 49, 50, 52, 56], "torqu": [2, 45, 50, 52, 56], "assum": [2, 11, 13, 17, 21, 42, 52], "best": [2, 21], "select": [2, 7, 8, 13, 27, 28, 29, 31, 32, 33, 38, 39, 42, 55, 56], "nm": [2, 45, 52, 56], "transmiss": [2, 12, 56], "ratio": [2, 4, 49, 50, 52, 56], "static": [2, 12, 27, 33, 35, 38, 41, 44, 50, 52, 54, 56, 57], "radiu": [2, 12, 28, 41, 49, 50, 52], "simpl": [2, 8, 13, 17, 38, 49, 50, 51], "scale": [2, 28, 38, 56], "proport": [2, 49, 52], "1350": 2, "5000": 2, "rpm": [2, 50], "minimum": [2, 6, 9, 12, 38, 50, 51, 52, 55, 57], "half": [2, 56], "maxenginespe": 2, "c_": [2, 52], "fric": 2, "coeffici": [2, 52, 56], "constant": [2, 9, 11, 12, 45, 51, 53, 56], "015": 2, "rho_": [2, 52], "front": [2, 9, 38, 45, 49, 51, 52, 54, 56], "c_w": 2, "densiti": [2, 52], "m\u00b3": 2, "surfac": [2, 52], "area": [2, 12, 29, 55], "m\u00b2": [2, 52, 56], "relai": [2, 39], "lanechang": [2, 39, 41], "userdefin": 2, "trajectorymanipul": 2, "lanechangemanipul": 2, "manipul": [2, 6, 27, 39, 45], "rais": [2, 22], "event": [2, 4, 6, 8, 33, 39, 44, 57], "forward": [2, 4, 44, 49, 50, 56], "interest": [2, 8, 33, 35, 48], "react": [2, 39], "content": [2, 8, 11, 12, 31, 33, 44], "without": [2, 9, 12, 13, 16, 22, 33, 42, 56], "delai": [2, 39, 44, 56], "parametersvehicl": [2, 44], "vehiclemodelparamet": [2, 52], "parametersvehiclesign": 2, "present": [2, 7, 8, 12, 23, 33, 39], "explan": [2, 12], "width": [2, 3, 9, 41, 45, 54, 56], "height": [2, 3, 38, 41, 45, 54], "wheelbas": [2, 49, 52, 56], "trackwidth": 2, "distancecogtoleadingedg": 2, "distanc": [2, 7, 9, 28, 41, 45, 49, 51, 52, 53, 54, 55, 56], "cog": [2, 23], "bumper": 2, "distancecogtofrontaxl": 2, "heightcog": 2, "graviti": [2, 23, 49, 56], "ground": [2, 22, 33], "weight": [2, 9, 41, 42, 49, 55], "overal": [2, 21, 33, 49, 50, 56, 57], "momentinertiarol": 2, "kgm\u00b2": [2, 56], "moment": [2, 9, 26, 52], "inertia": [2, 50, 52, 56], "axi": [2, 3, 9, 32, 45, 49, 56], "momentinertiapitch": 2, "momentinertiayaw": 2, "vertic": [2, 39, 45, 56], "frontsurfac": [2, 56], "airdragcoeffici": [2, 56], "minimumenginespe": 2, "idl": 2, "maximumenginespe": [2, 56], "minimumenginetorqu": 2, "maximumenginetorqu": [2, 56], "numberofgear": [2, 56], "gearbox": [2, 50], "axleratio": [2, 56], "decelerationfrompowertraindrag": 2, "caus": [2, 13, 21, 45], "steeringratio": [2, 56], "maximumsteeringwheelangleamplitud": 2, "degre": [2, 4, 49, 53], "amplitud": 2, "queri": [2, 9], "agentinterfac": [2, 5, 54, 56], "about": [2, 12, 14, 15, 17, 20, 33, 42, 45, 46, 49, 50, 54, 56, 57], "own": [2, 3, 4, 21, 22, 33, 51, 54, 56], "surround": [2, 54, 57], "These": [2, 8, 9, 11, 17, 20, 26, 33, 38, 39, 45, 55, 56], "represent": [2, 8, 9, 22, 23], "variou": [2, 11, 12, 22, 23, 33, 39, 57], "receivercar2x": [2, 38, 48], "sector": 2, "sensorview": [2, 3, 8, 56], "sensorviewconfigur": 2, "imag": [2, 8, 9, 31, 33, 49, 50, 52], "dataflow": 2, "develop": [2, 4, 10, 11, 17, 21, 22, 23, 33, 57], "perspect": [2, 21], "send": [2, 43, 44, 55, 56], "back": [2, 3, 18, 21, 53, 55, 56], "configur": [2, 4, 6, 7, 11, 12, 14, 17, 18, 20, 21, 24, 26, 27, 29, 30, 33, 38, 39, 43, 44, 45, 56, 57], "sinc": [2, 3, 6, 8, 9, 22, 52], "mayb": 2, "notabl": [2, 49], "we": [2, 8, 11, 12, 17, 22, 43, 56, 57], "full": [2, 4, 8, 39, 50, 56], "accord": [2, 3, 4, 9, 12, 13, 18, 20, 33, 38, 39, 41, 49, 51, 52, 56], "alwai": [2, 8, 9, 39, 40, 50, 51, 53, 56], "test": [2, 4, 7, 12, 13, 14, 15, 16, 17, 18, 20, 22, 33, 57], "our": [2, 8, 17, 57], "circl": [2, 12], "around": [2, 21, 33, 49, 57], "intersect": [2, 4, 9, 55], "suitabl": [2, 17, 23, 49, 52], "polygon": [2, 9], "either": [2, 8, 9, 13, 17, 28, 38, 39, 42, 45, 55, 56, 57], "four": [2, 9, 49, 54, 56], "180": 2, "five": 2, "corner": [2, 9], "kite": 2, "lower": [2, 7, 47, 50, 56], "b": [2, 9, 41], "c": [2, 9, 11, 12, 17, 18, 21, 26, 41, 56, 57], "d": [2, 9, 13, 18, 21, 28, 41, 49, 56], "greater": [2, 7, 50, 56], "equal": [2, 9, 11, 50, 51, 52], "360": 2, "convex": 2, "bbox": 2, "correct": [2, 7, 12], "construct": 2, "out": [2, 8, 9, 12, 13, 33, 39, 45, 55], "boundari": [2, 9, 22, 39, 54, 56], "tangent": 2, "field": [2, 20, 39, 56], "ani": [2, 6, 8, 9, 11, 12, 13, 17, 20, 21, 26, 33, 38, 39, 43, 55, 56, 57], "dist": 2, "isintersect": 2, "circular": 2, "pi": [2, 12, 50, 52, 56], "radius": 2, "exactli": 2, "suffic": 2, "block": [2, 12], "sight": 2, "larg": [2, 51], "enough": [2, 50], "shadow": 2, "enablevisualobstruct": [2, 56], "percentag": [2, 56], "visibl": [2, 8, 39, 45, 53, 54, 56], "concept": [2, 4, 14], "cast": 2, "cone": [2, 56], "too": [2, 9, 17, 21, 45], "much": [2, 8, 33, 49, 51], "remov": [2, 11, 12, 21, 26, 39, 57], "bound": [2, 4, 9, 39, 42, 45, 49, 55, 56], "box": [2, 4, 9, 13, 45, 49, 56], "remain": [2, 28], "total": [2, 9, 45, 56], "smaller": [2, 47, 50], "parameteriz": [2, 33, 47], "threshold": [2, 7, 56], "ahead": 2, "captur": [2, 9], "outer": [2, 8], "vector": [2, 5, 9, 12, 45, 49, 50, 54, 55, 56], "extend": [2, 8, 9, 13, 55], "regard": [2, 22, 38, 44], "note": [2, 6, 9, 11, 12, 17, 21, 38, 44, 47, 57], "edg": [2, 9, 49], "produc": [2, 8, 28, 33, 44, 49, 50], "small": [2, 49, 51, 52], "red": [2, 9, 39], "avoid": [2, 11, 12, 56], "numer": 2, "problem": 2, "stretch": 2, "size": [2, 8, 12, 22, 49, 56], "instead": [2, 12, 13, 18, 20, 33], "overestim": 2, "guarante": [2, 9, 50], "ideal": 2, "rather": [2, 8, 12, 49], "tangenti": 2, "With": [2, 8, 44, 50, 56], "consid": [2, 4, 17, 20, 49, 50, 52, 56], "neglig": 2, "final": [2, 6, 9, 33, 55, 56], "subtract": [2, 3, 51], "repeat": [2, 41, 46, 57], "partial": [2, 7, 56], "occlud": 2, "irrelev": 2, "unsort": 2, "broadcast": 2, "ada": [2, 3, 23, 33, 38, 44, 49], "sensordatasign": [2, 56], "get": [2, 3, 8, 13, 14, 17, 21, 26, 38, 40, 44, 56], "highest": [2, 6, 26, 42, 44, 50], "higher": [2, 8, 11], "102": 2, "lowest": [2, 32, 50], "prioritizernam": 2, "150": [2, 44], "offset": [2, 9, 39, 43, 44, 53], "cycl": [2, 4, 43, 44, 52], "respons": [2, 8, 43, 44, 48, 49, 50, 52, 55, 56], "librari": [2, 6, 12, 13, 18, 20, 21, 23, 26, 38, 42, 43, 44, 45, 46, 55, 56, 57], "int": [2, 12, 38, 56], "101": 2, "One": [2, 8, 17, 21, 43, 55], "class": [2, 5, 12], "deriv": [2, 49, 52], "componentstatesign": 2, "prioritizersteeringvehiclecompon": [2, 44], "prioritizerturningind": [2, 44], "prioritizerlongitudin": [2, 44], "prioritizerst": [2, 44], "prioritizerdynam": [2, 43, 44], "cc": [2, 12, 13], "could": [2, 17, 21, 33, 38, 52, 56], "cruis": [2, 51], "latter": [2, 21, 56], "deactiv": [2, 12, 39, 56, 57], "keep": [2, 8, 11, 13, 17, 33, 51, 53], "assist": [2, 23, 27, 33, 38], "emerg": [2, 23, 38, 56, 57], "stai": [2, 13], "occur": [2, 4, 45, 55, 56], "responsibili": 2, "vehiclecompon": [2, 37, 44, 48], "make": [2, 8, 9, 11, 12, 13, 16, 17, 18, 22, 23, 27, 48, 57], "trajectoryfollow": 2, "notifi": 2, "assign": [2, 9, 39, 44, 56], "componentst": [2, 56], "arm": [2, 56], "passiv": 2, "flow": [2, 33, 44, 49], "desir": [2, 11, 17, 39, 51, 56, 57], "driverstatesign": 2, "vehiclecomptocompctrlsign": 2, "destin": [2, 11], "reachabl": [2, 39], "stati": 2, "adasstatesign": 2, "compctrltovehiclecompsign": 2, "counterclockwis": 3, "radian": [3, 56], "absolut": [3, 6, 11, 39, 40, 45, 49, 51, 52, 54, 56], "parent": 3, "rel": [3, 5, 6, 8, 11, 28, 38, 39, 43, 45, 49, 52, 54, 56], "z": [3, 39], "unus": [3, 42], "At": [3, 7, 8, 9, 11, 27, 28, 38, 39, 42, 52, 53], "begin": [3, 4, 8, 12, 13, 26, 56], "downstream": 3, "side": [3, 9, 54, 55, 56], "respect": [3, 7, 9, 17, 22, 33, 39, 45, 49, 50, 54], "origin": [3, 8, 9, 11, 14, 28], "rear": [3, 9, 45, 49, 56], "parallel": [3, 8, 9, 18], "car": [3, 4, 33, 39, 55], "whose": [3, 23], "mount": [3, 38, 56], "orient": [3, 39, 41, 44, 53], "vectori": 3, "written": [3, 8, 11, 12, 22, 28, 39, 45, 46, 50, 56, 57], "translat": [3, 9, 56], "invers": [3, 49], "mai": [3, 8, 13, 17, 21, 38, 39, 49, 53, 55, 56, 57], "sensorfusion_errorless": 3, "ego": [3, 9, 38, 39, 45, 46, 49, 51, 55, 56, 57], "detector": [4, 6], "usual": 4, "eventnetwork": 4, "There": [4, 8, 9, 13, 17, 20, 21, 22, 26, 38, 39, 48, 51, 52, 56], "share": [4, 12, 13, 18, 20, 21], "instanc": [4, 8, 21, 45, 56], "move": [4, 11, 33, 46, 55, 56], "stationari": [4, 46, 54], "account": [4, 7, 28, 56], "dimension": [4, 56], "itself": [4, 13, 18, 20, 22, 28, 38, 39, 50], "potenti": [4, 13, 35, 36, 55], "inclin": [4, 56], "onto": [4, 39, 56], "xy": 4, "plane": [4, 49], "collisionev": 4, "particip": [4, 9, 14, 33, 47, 48], "creat": [4, 8, 9, 12, 13, 17, 18, 21, 22, 26, 33, 40, 45, 54, 55, 56, 57], "pick": [4, 33], "collisionmanipul": 4, "accordingli": [4, 11], "geometr": [4, 22, 49, 52, 54], "crash": [4, 21, 23, 33], "term": [4, 11, 25, 33, 50, 51, 55], "wagstrom": 4, "et": 4, "al": 4, "www": [4, 9, 11, 21, 22, 23, 25, 53, 56], "esv": 4, "nhtsa": 4, "dot": [4, 9], "gov": [4, 9], "proceed": 4, "26": [4, 38], "26esv": 4, "000177": 4, "pdf": [4, 9, 33, 51], "furthermor": [4, 8, 39], "impact": [4, 55], "evalu": [4, 14, 23, 24, 33, 55, 56], "estim": [4, 50], "chang": [4, 6, 8, 9, 11, 12, 13, 18, 22, 26, 28, 33, 39, 42, 45, 46, 49, 50, 52, 53, 57], "due": [4, 6, 11, 14, 21, 39, 51, 52, 53], "initi": [4, 6, 8, 9, 11, 28, 33, 38, 39, 45, 50, 56, 57], "h": [4, 9, 12, 13, 39, 42, 49, 52], "velocitychang": 4, "behind": [4, 54], "wa": [4, 24, 26, 27, 28, 29, 30, 38], "overlap": [4, 9], "esar": 4, "2016": 4, "kolk": 4, "bast": [4, 9], "opu": 4, "hbz": 4, "nrw": 4, "de": [4, 8, 9, 23, 38, 42, 56], "opus45": 4, "frontdoor": 4, "deliv": [4, 44], "index": [4, 21, 22, 44, 46, 56], "docid": 4, "1825": 4, "f117_21": 4, "collisionveloc": 4, "host": [4, 56], "prior": [4, 11, 22], "anoth": [4, 8, 11, 12, 13, 38, 39, 54, 56, 57], "hcpa": 4, "hcpao": 4, "normal": [4, 11, 12, 13, 33, 45, 52, 56], "ocpa": 4, "oppon": 4, "ocpao": 4, "oya": 4, "opponentcollisionveloc": 4, "opponentpointofcontactlocalx": 4, "contact": [4, 13], "opponentpointofcontactlocali": 4, "opponentveloc": 4, "opponentvelocitychang": 4, "opponentvelocitydirect": 4, "opponentyawveloc": 4, "pointofcontactlocalx": 4, "pointofcontactlocali": 4, "applic": [4, 8, 14, 16, 23, 45, 56], "progress": [4, 33, 57], "layer": [5, 9, 23, 56], "api": [5, 13, 17, 21, 22, 35, 39, 53], "datatyp": [5, 56], "openscenarioengin": [5, 17, 39], "mantle_api": 5, "opsimualt": 5, "osi3": [5, 12, 13], "assignrout": 5, "uniqueid": 5, "routedefinit": 5, "getposit": [5, 40], "geometryhelp": 5, "translateglobalpositionloc": [5, 40], "spawnparamet": 5, "getpositionx": 5, "getpositioni": 5, "getyaw": 5, "routesamplerinterfac": 5, "calculateroutefromwaypoint": 5, "std": [5, 12], "routewaypoint": 5, "egoagentinterfac": 5, "setroadgraph": 5, "roadgraph": 5, "roadgraphvertex": 5, "executecustomcommand": [5, 40], "actor": [5, 39], "addcustomcommand": 5, "getcustomcommand": [5, 39], "componentcontrollerimplement": 5, "trajectoryfollowercommonbas": 5, "trafficact": 5, "customact": 5, "mutable_custom_act": 5, "trafficaction_customact": 5, "set_command": 5, "updatecontrolstrategi": [5, 40], "followtrajectorycontrolstrategi": 5, "hascontrolstrategygoalbeenreach": [5, 40], "controlstrategytyp": 5, "kfollowtrajectori": 5, "polylin": [5, 39], "movementdomain": [5, 53], "kboth": 5, "setstrategi": 5, "algorithm_routecontrol_implement": 5, "readwaypointdata": 5, "dynamicsscenarioimplement": 5, "trajectoryfollowerimplement": 5, "fmuhelp": 5, "addtrafficcommandactionfromopenscenariotrajectori": 5, "trafficcommand": [5, 39, 56], "add_act": 5, "mutable_follow_trajectory_act": 5, "trafficaction_followtrajectoryact": 5, "add_trajectory_point": 5, "followpathact": 5, "mutable_follow_path_act": 5, "trafficaction_followpathact": 5, "add_path_point": 5, "lanechangeactionimpl": 5, "getlanechangetarget": 5, "convertscenariolanechangetarget": 5, "ilanechangetarget": 5, "relativetargetlan": [5, 39], "lanechangetargetimpl": 5, "getrelativetargetlan": 5, "convertscenariorelativetargetlan": 5, "irelativetargetlan": 5, "absolutetargetlan": [5, 39], "getabsolutetargetlan": 5, "convertscenarioabsolutetargetlan": 5, "iabsolutetargetlan": 5, "performlanechangecontrolstrategi": 5, "kperformlanechang": 5, "lanelocationqueryservic": 5, "getrelativelaneid": [5, 40], "klater": 5, "calculatesinusiodallanechang": 5, "followvelocitysplinecontrolstrategi": 5, "shared_ptr": 5, "controlstrategi": [5, 40, 53], "command_typ": 5, "updatelightst": 5, "lighttyp": 5, "lightstat": 5, "setlinearvelocitysplinecontrolstrategi": 5, "kfollowvelocitysplin": 5, "setspe": 5, "ientiti": 5, "meters_per_second_t": 5, "klongitudin": 5, "hasnewlongitudinalstrategi": 5, "getvelocityfromsplin": 5, "mutable_speed_act": 5, "set_absolute_target_spe": 5, "targetspe": 5, "setposit": [5, 40], "vec3": 5, "meter_t": 5, "setorient": [5, 40], "orientation3": 5, "radian_t": 5, "setassignedlaneid": [5, 40], "uint64_t": 5, "getupwardsshiftedlaneposit": [5, 40], "getlaneidsatposit": [5, 40], "routesampl": 5, "setpositionx": 5, "setpositioni": 5, "setyaw": 5, "settrafficsignalst": [5, 40], "worlddata": 5, "gettrafficsignidmap": 5, "getsignaltyp": 5, "gettrafficlight": 5, "threesignalstrafficlight": [5, 45], "setstat": 5, "commontrafficlight": 5, "twosignalstrafficlight": 5, "onesignalstrafficlight": 5, "databuff": [5, 6, 45], "putacycl": 5, "trafficlight_classif": 5, "set_mod": 5, "trafficlight_classification_mod": 5, "convertscenariotrafficdefinit": 5, "net_asam_openscenario": 5, "v1_1": 5, "itrafficdefinit": 5, "setvis": [5, 40], "entityvisibilityconfig": 5, "vehiclelightstatescontrolstrategi": 5, "knone": 5, "setvehiclelightst": 5, "indicatorleft": 5, "indicatorright": 5, "warninglight": 5, "vehiclelighttyp": 5, "attribut": [5, 8, 9, 38, 39, 41, 42, 43, 44, 45, 46, 56], "transitiontim": 5, "receiv": [5, 8, 9, 43, 49, 50, 52, 56], "os": 5, "unspecifi": 6, "clearresultspath": 6, "clear": [6, 12, 13, 31], "loglevel": 6, "log": [6, 8, 13, 26, 28, 33, 45, 46, 56, 57], "level": [6, 8, 11, 26, 28, 33, 41, 42, 44, 47], "5": [6, 7, 9, 20, 24, 26, 27, 28, 29, 30, 38, 39, 41, 42, 44, 45, 46, 51, 55, 56], "logfil": [6, 13], "lib": [6, 13, 57], "bootstrap": 6, "onc": [6, 8, 12, 13, 15, 39, 42, 45, 46, 52, 55, 56, 57], "observ": [6, 33, 36, 45, 46, 51], "prerun": [6, 42], "preagent": 6, "nonrecur": 6, "recur": 6, "syncron": [6, 53], "runtim": [6, 9, 13, 17, 18, 21, 39, 42, 43, 55], "sort": [6, 11, 56], "non": [6, 9, 12, 13, 21, 22, 31, 46, 55, 57], "delet": [6, 11, 13, 40, 56], "afterward": [6, 9, 55, 56], "init": [6, 8, 40, 44, 56], "componentrepositori": 6, "synchron": [6, 56], "last": [6, 7, 18, 22, 44, 50, 52, 55, 56], "end": [6, 7, 9, 12, 13, 17, 21, 31, 32, 49, 50, 53, 54, 55, 56, 57], "reach": [6, 39, 42, 45, 56], "syncworld": 6, "changeabl": 6, "ye": [6, 38, 42, 43, 55], "virtual": [6, 9, 12, 23], "timestamp": [6, 39, 56], "schedulertask": 6, "aforment": 6, "show": [6, 8, 13, 15, 31, 33], "noth": 6, "instanti": [6, 33, 39, 44, 45, 56], "call": [6, 8, 9, 13, 17, 21, 23, 26, 33, 39, 45, 50, 51, 56, 57], "syncglobaldata": 6, "systemconfig": [6, 27, 33, 35, 38, 44, 56], "part": [7, 8, 11, 12, 21, 22, 23, 24, 26, 27, 28, 29, 30, 39, 45, 49, 56], "sceneri": [7, 9, 33, 35, 39, 45, 46, 55, 56, 57], "igor": 7, "verifi": 7, "spawnerpreruncommonparameterextractor_getwaytonextroad_nopossiblewai": 7, "place": [7, 11, 12, 28, 33, 56, 57], "spawnerprerun_highway_singleroad": 7, "precondit": 7, "listitem": [7, 38, 55], "drivabl": 7, "spawnerprerun_highway_fullstream": 7, "spawnerprerun_singleroad_drivingdirect": 7, "ones": [7, 18], "were": [7, 45, 55], "solut": [7, 8, 13], "necessarili": [7, 11, 39, 56], "chain": [7, 43], "cross": [7, 8, 9, 15, 21, 46], "spawnerprerun_highway_entryexit": 7, "least": [7, 8, 13, 16, 38, 56], "encount": 7, "doesn": [7, 52, 55, 56], "spawnerprerun_highway_incorrectstreambegin": 7, "spawnerprerun_highway_incorrectstreammid": 7, "setup": [7, 13, 15, 16, 33, 39, 42], "do": [7, 9, 12, 13, 16, 38, 41, 49, 52, 55, 56, 57], "spawnerprerun_singleroad_specifiedlan": 7, "wai": [7, 8, 11, 12, 13, 15, 38, 39, 51, 55, 56], "spawnerprerun_highway_roadoverlap": 7, "effect": [7, 13, 50, 56], "whole": [7, 8, 33, 51, 55, 56], "spawnerpreruncommonparameterextractor_extractspawnareas_alloptionalparamet": 7, "spawnerprerun_singleroad_specifiedrang": 7, "cap": 7, "spawnerpreruncommonparameterextractor_extractspawnareaswithsoutofrange_returnsvalid": 7, "accumul": 7, "rightlaneonli": [7, 55], "rightmost": [7, 56], "spawnerprerun_singleroad_rightlaneonli": 7, "minimumseparationbuff": [7, 55], "net": [7, 8, 51, 53, 56], "untest": 7, "ttc": [7, 23, 55, 56, 57], "extern": [7, 12, 13, 14, 53, 56], "random": [7, 14, 28, 33, 38, 39, 42, 45, 55, 56], "uniform": [7, 9], "spawnerruntime_highway_singleroad": 7, "spawnerruntime_highway_singleroad_drivingdirect": 7, "spawnerruntime_highway_multipleroad": 7, "don": [7, 8, 13, 22, 46], "spawnerruntime_singleroad_specifiedlan": 7, "spawnerruntime_singleroad_rightlaneonli": 7, "spawnerruntimecommonparameterextractor_extractminimumseparationbuffer_fixedvalu": 7, "spawnerruntimecommonparameterextractor_extractminimumseparationbuffer_novalue_setsdefault": 7, "standard": [8, 9, 12, 13, 21, 23, 33, 38, 39, 41, 53, 56], "mockup": 8, "link": [8, 13, 14, 18, 33, 39, 41, 43, 45, 55, 56, 58], "fmi": [8, 23, 56], "offici": [8, 12, 13, 22, 53], "especi": [8, 12, 22, 44], "those": [8, 22, 33], "append": [8, 11, 17], "connectiontest": [8, 43, 56], "root": [8, 9, 11, 12, 13], "subsystem": 8, "osmpconnectiontest": 8, "wrap": [8, 12], "dummysensor": 8, "osmptrafficupdatestepp": 8, "exchang": [8, 21, 22, 23], "outsid": [8, 9, 11, 55, 56], "Or": 8, "usecas": [8, 28, 43], "trafficupdatestepp": 8, "dynamicsign": 8, "leav": 8, "anim": 8, "On": [8, 11, 13, 17, 26, 33, 41, 51], "zip": [8, 17, 56], "togeth": [8, 33, 43, 46], "unpack": 8, "systemstructur": 8, "mandatori": [8, 21, 39, 42, 43, 57], "parametervalu": 8, "ssv": 8, "perceiv": [8, 56], "altern": [8, 13, 43], "ref": [8, 45], "referenc": [8, 11, 33, 38, 39, 41], "through": [8, 11, 13, 15, 21, 33, 39, 48, 53, 57], "uri": 8, "cf": 8, "rfc": 8, "3986": 8, "archiv": [8, 56], "ssm": 8, "dictionari": 8, "ssb": 8, "becaus": [8, 9, 11, 49, 50, 52, 53], "organis": 8, "purpos": [8, 13, 17, 23], "hierarch": 8, "Not": [8, 13, 15, 40], "version": [8, 11, 12, 13, 18, 20, 21, 24, 26, 27, 28, 29, 30, 39, 41, 42, 46, 51], "parameterset": 8, "ad": [8, 12, 13, 21, 31, 33, 42, 43, 49, 56], "parametermap": 8, "schemat": 8, "osmpconnect": 8, "notic": 8, "think": 8, "filestructur": 8, "zero": [8, 39, 46, 50, 56], "mani": [8, 21, 49], "signaldictionaryrefer": 8, "annot": 8, "osmpconnector": 8, "parameterbind": 8, "osmp": [8, 56], "abl": [8, 13, 17, 18, 20, 26, 28, 56], "ssc": 8, "pmsf": 8, "xmln": 8, "xsd": 8, "osisensormodelpackag": [8, 56], "mime": 8, "osmpsensordataout": 8, "role": 8, "psmf": 8, "come": [8, 9, 26, 42, 46], "shape": [8, 38, 39], "tripl": 8, "lo": 8, "hi": 8, "memori": [8, 21], "pointer": 8, "alloc": [8, 21], "crucial": 8, "well": [8, 12, 16, 22, 23, 33, 38, 39, 44, 45, 50, 56, 57], "algorithm_fmuwrapp": [8, 21, 22], "import": [8, 11, 17, 21, 33, 38, 39, 44, 56], "fmuparamet": 8, "csvoutput": [8, 56], "unziponceperinst": 8, "writejson_sensorview": 8, "writetrace_sensorview": 8, "input_osmpsensorviewin": 8, "sub": [8, 39], "real": [8, 11, 23, 33, 56], "float": [8, 12, 56], "enumer": 8, "priorityparamet": 8, "setlevel": 8, "prio": 8, "schdule": 8, "slex": 8, "co": [8, 52], "42": 8, "wrapper": [8, 39, 48], "load": [8, 23, 26, 42, 56], "pictur": [8, 26], "illustr": [8, 33, 49, 50, 52], "algorithm_sspwrapp": [8, 43], "fold": 8, "temporari": [8, 11, 56], "scan": [8, 9], "groupconnector": 8, "arrai": 8, "creation": [8, 20], "format": [8, 11, 12, 13, 17, 22, 23, 31, 32, 33, 38, 39, 56, 57], "discuss": [8, 12, 33], "chapter": [8, 22, 33], "form": [8, 12, 38, 45, 49, 56], "repres": [8, 12, 28, 48, 52, 57], "buffer": [8, 21, 56], "join": 8, "purpl": 8, "color": [8, 9, 41], "wherea": [8, 9, 26], "soon": 8, "trace": [8, 42, 45, 56], "serial": [8, 22], "destruct": 8, "impos": [8, 16], "mainli": [8, 24, 26, 27, 28, 29, 30, 39, 46], "subel": [8, 38], "fmucompon": 8, "good": 8, "practic": [8, 21], "further": [8, 9, 12, 14, 15, 21, 33, 38, 39, 49, 50, 51, 52, 56, 57], "establish": [8, 11, 54], "fulfil": [8, 55], "sensordataout": 8, "sensordummi": 8, "sensordatain": 8, "Their": 8, "kind": [8, 39, 56], "depict": [8, 49], "propag": 8, "henc": [8, 26, 46], "tupl": 8, "elementstartnam": 8, "startconnectornam": 8, "elementendnam": 8, "endconnectornam": 8, "abstract": [8, 12, 23], "singular": [8, 12], "appear": 8, "trafficstepp": 8, "startel": 8, "startconnector": 8, "endel": 8, "endconnector": 8, "suppressunitconvers": 8, "trafficupdateout": 8, "trafficupd": [8, 56], "belong": [8, 39, 45], "outward": 8, "second": [8, 13, 21, 22, 26, 32, 42, 45, 50, 55, 56, 57], "systemoutput": 8, "mirror": 8, "most": [8, 9, 13, 26, 33, 38, 39, 48, 49, 55], "minim": [8, 16], "met": [8, 55], "emplac": 8, "again": [8, 13, 18, 33, 48, 49, 56], "let": [8, 21, 22, 26, 33, 56], "util": [8, 11, 13, 16, 17, 23, 50], "sspwrapper": 8, "updateinput": 8, "updateoutput": [8, 44], "visitor": 8, "softwar": [8, 14, 15, 17, 22, 33], "visit": [8, 12, 20], "behaviour": [8, 56], "connectorvisitor": 8, "elementvisitor": 8, "travers": 8, "osmpconnectionexampl": 8, "manifest": [8, 17], "triggervisitor": 8, "accept": [8, 13], "queue": 8, "Then": [8, 13, 55, 56], "propagatedatavisitor": 8, "systemconnector": 8, "systeminput": 8, "job": [8, 24, 26, 27, 28, 29, 30], "deleg": 8, "counterpart": 8, "updateinputvisitor": 8, "updateoutputvisitor": 8, "osiconnector": 8, "still": [8, 13, 22, 26, 33, 50, 52, 56], "experiment": [8, 33], "decid": 8, "continu": [8, 9, 33, 39, 55, 56], "refactor": [8, 12], "osmpfmuhandl": 8, "uniqu": [8, 23, 28, 39, 43, 56], "procedur": 8, "baseel": 8, "besid": 8, "top": [8, 33, 41], "meta": [8, 56], "gtype": 8, "bind": 8, "pool": [8, 55], "buse": 8, "experi": [8, 24, 26, 27, 29, 30, 33, 38, 45, 46, 47, 57], "starttim": 8, "stoptim": 8, "intermedi": [8, 55], "agent0xxx": 8, "jsonfil": 8, "binarytracefil": 8, "who": [8, 33], "agent0": 8, "agent0000": 8, "agent1": 8, "agent0001": 8, "binarytrac": 8, "writejson_sensordata": [8, 56], "writetrace_sensordata": 8, "opendr": [9, 23, 33, 39, 41, 45, 46, 55], "algebra": 9, "clothoid": 9, "cubic": 9, "polynomi": [9, 53], "wherebi": 9, "primarili": [9, 22, 33, 57], "understood": [9, 26], "stack": 9, "now": [9, 13, 39], "underli": [9, 12, 16], "almost": 9, "piecewis": [9, 53], "linear": [9, 49, 50, 51, 56], "interv": [9, 44, 55, 56], "quadrangular": 9, "laneel": 9, "centimet": 9, "aim": [9, 24, 26, 27, 28, 29, 30], "less": [9, 21, 33, 56], "f": [9, 11, 21], "exhibit": 9, "extrem": 9, "curvatur": [9, 41, 45, 49, 52, 54, 56], "cm": 9, "joint": 9, "across": [9, 12, 13, 39], "reduc": [9, 52, 55, 56], "ramer": 9, "dougla": 9, "peucker": 9, "ensur": [9, 12, 13, 17, 20, 23, 28, 57], "retain": 9, "transit": [9, 11], "accuraci": 9, "ultim": 9, "span": [9, 52], "interpol": [9, 50, 53, 56], "linearli": [9, 53, 56], "roadcoordin": 9, "notion": 9, "_": [9, 49, 56], "depic": 9, "princip": 9, "aka": 9, "owl": 9, "p": [9, 11, 13, 28, 39, 49], "cartesian": 9, "predecessor": [9, 23], "successor": [9, 41, 42], "perpendicular": 9, "stream": 9, "quadrilater": 9, "lanegeometryel": 9, "quad": 9, "realiz": 9, "longest": 9, "arc": [9, 41], "outlin": [9, 12], "bu": [9, 39], "widen": 9, "simplifi": [9, 17, 39, 50, 51, 52], "grid": 9, "manag": [9, 13, 17, 20, 22, 26, 44], "tree": [9, 11, 29], "fast": 9, "howev": [9, 26], "orthogon": 9, "introduc": [9, 11, 22, 44, 51], "segment": [9, 26, 49], "touch": [9, 53], "justifi": 9, "subsequ": [9, 31, 50, 51], "filter": [9, 21], "quickli": [9, 51], "empti": [9, 17, 21, 39, 56], "remaind": 9, "delta": [9, 28, 39, 49, 51, 52], "s_min": 9, "s_max": 9, "delta_right": 9, "middl": [9, 45, 51, 54], "mainlaneloc": 9, "rout": [9, 39, 42, 45, 55, 56], "lai": 9, "otherwis": [9, 18, 39, 45, 56], "despawen": 9, "varieti": 9, "roadsign": 9, "german": [9, 23, 33], "regul": [9, 38], "u": [9, 13, 38], "china": [9, 38], "appendix": 9, "supplementari": [9, 12], "main": [9, 12, 17, 33], "germani": [9, 38], "stvo": 9, "bast_2017": 9, "verkehrstechnik": 9, "fachthemen": 9, "verkehrszeichen": 9, "vz": 9, "download": [9, 13, 17, 22], "trafficsign": [9, 39, 54], "subtyp": [9, 46], "givewai": 9, "205": 9, "206": 9, "donotent": 9, "267": 9, "environmentalzonebegin": 9, "270": 9, "environmentalzoneend": 9, "maximumspeedlimit": 9, "274": 9, "speedlimit": 9, "km": 9, "speedlimitzonebegin": 9, "30km": 9, "20km": 9, "speedlimitzoneend": 9, "minimumspeedlimit": 9, "275": 9, "overtakingbanbegin": 9, "276": 9, "overtakingbantrucksbegin": 9, "277": 9, "endofmaximumspeedlimit": 9, "278": 9, "endofminimumspeedlimit": 9, "279": 9, "overtakingbanend": 9, "280": 9, "overtakingbantrucksend": 9, "281": 9, "endoffallspeedlimitsandovertakingrestrict": 9, "282": 9, "rightofwaynextintersect": 9, "301": 9, "rightofwaybegin": 9, "306": 9, "rightofwayend": 9, "307": 9, "townbegin": 9, "310": [9, 44], "town": 9, "townend": 9, "311": 9, "trafficcalmeddistrictbegin": 9, "325": 9, "trafficcalmeddistrictend": 9, "highwaybegin": 9, "330": [9, 44], "highwayend": 9, "highwayexit": 9, "333": 9, "announcehighwayexit": 9, "448": 9, "preannouncehighwayexitdirect": 9, "449": 9, "highwayexitpol": 9, "450": 9, "50": [9, 12, 16, 38, 41, 43, 44, 45], "51": [9, 44], "52": [9, 44], "highwai": [9, 33, 38, 52], "exit": [9, 13, 56], "100m": 9, "200m": 9, "300m": 9, "announcerightlaneend": 9, "531": 9, "11": [9, 20, 21, 24, 26, 27, 28, 29, 30, 44, 51], "announceleftlaneend": 9, "21": [9, 44], "22": [9, 12, 16, 17, 38, 44], "23": [9, 44], "distanceind": 9, "1004": 9, "31": [9, 38, 44, 55], "32": [9, 17, 44, 56], "roadmark": [9, 41], "pedestriancross": 9, "293": 9, "294": 9, "pedestrian": [9, 23, 33, 39, 40, 57], "crosswalk": 9, "manual": [9, 15, 33, 57], "devic": 9, "mutcd": 9, "fhwa": 9, "2009r1r2": 9, "pdf_index": 9, "htm": [9, 21], "e5": 9, "e2": 9, "e1": 9, "preannouncehighwayexit": 9, "2a": 9, "r1": [9, 42], "r2": [9, 42], "donotpass": 9, "overtakingban": 9, "r4": 9, "r5": 9, "rightlaneend": 9, "w4": 9, "2r": 9, "leftlaneend": 9, "2l": 9, "upload": 9, "wikimedia": 9, "wikipedia": 9, "8c": 9, "china_gb_5768": 9, "2009": 9, "endoflan": 9, "38": 9, "endofspeedlimit": 9, "39": 9, "1km": 9, "50b": 9, "500m": 9, "50c": 9, "50d": 9, "yellow": [9, 39], "green": [9, 11, 39], "000": [9, 41], "001": [9, 56], "arrow": 9, "011": 9, "upward": 9, "und": [9, 57], "40": [9, 44, 45], "print": [9, 13], "getlanemark": 9, "soffset": [9, 41], "meter": [9, 12, 42, 56], "15": [9, 12, 17, 42, 44], "bold": [9, 21], "laneboundari": 9, "solid": [9, 41, 46], "broken": [9, 41, 46], "15m": 9, "travel": [9, 45, 49, 52, 56], "align": [9, 12, 56], "target": [9, 11, 15, 20, 35, 39, 43, 49, 53], "occupi": 9, "adher": [9, 12, 53], "nearest": 9, "furthest": 9, "straight": 9, "euclidean": 9, "return": [9, 12, 40, 50, 56], "prematur": 9, "invalid": [9, 11, 55, 56], "studio": [10, 15, 18, 21], "your": [10, 11, 12, 13, 15, 17, 18, 21, 22, 26, 33], "build": [10, 12, 14, 15, 16, 18, 22, 23, 27, 56], "eclips": [11, 17, 24, 25, 26, 27, 28, 29, 30, 33, 53], "public": [11, 12, 25], "licens": [11, 12, 14], "privat": [11, 12, 39], "commerci": 11, "rule": [11, 12, 38, 39, 44, 54], "epl": [11, 25], "facilit": [11, 12], "distribut": [11, 17, 38, 44, 54, 55, 56], "integr": [11, 13, 22, 52], "proprietari": 11, "made": [11, 12, 22, 25, 56], "seam": 11, "extens": [11, 12, 13, 39, 56], "simpli": [11, 21, 26, 33, 49, 50], "clearli": 11, "easi": [11, 22], "close": [11, 13, 33, 39, 46, 49], "op_rel_root": 11, "op_rel_sim": 11, "readabl": [11, 12], "literalinclud": 11, "contrib": [11, 39, 56, 57], "sceneryconfigur": [11, 39, 41, 57], "xodr": [11, 39, 41, 57], "sure": [11, 13, 17, 18, 27, 48], "clean": 11, "outdat": [11, 20, 21], "restructuredtext": 11, "resid": 11, "clone": [11, 17], "overwritten": [11, 40], "preced": [11, 56], "toc": 11, "glob": [11, 13], "wildcard": 11, "rst": [11, 14], "digit": [11, 44], "underscor": 11, "10_quickstart": 11, "inject": 11, "head": [11, 48, 52, 54], "ascii": 11, "filenam": [11, 33, 45, 56], "sphinx": [11, 17, 21], "special": [11, 12, 17, 38, 39, 44, 45, 56, 57], "slash": 11, "preparedoccustom": 11, "coexist": 11, "templat": 11, "diff": 11, "highlight": 11, "preparedoc": 11, "home": [11, 14, 18], "jenkin": [11, 14], "workspac": [11, 13, 14], "openpass_simulator_build_v1": [11, 14], "developer_inform": 11, "_static": 11, "custom_doc": 11, "19": [11, 44, 55], "resolv": [11, 13, 18, 20], "custom_rel_sim": 11, "macro": 11, "copy_document": 11, "33": [11, 38, 44, 51], "34": 11, "regex": [11, 12], "conf": [11, 13], "dep": [11, 13, 17, 18, 21, 57], "o": [11, 13, 20, 57], "configure_fil": 11, "43": [11, 39, 55], "45": 11, "old": [11, 52], "context": [11, 12], "glob_recurs": 11, "rstfile": 11, "list_directori": 11, "cmakelist": 11, "snippet": [11, 51], "copyright": 11, "2021": 11, "tech": 11, "gmbh": 11, "program": [11, 13, 17, 21, 23, 25], "accompani": [11, 25], "materi": [11, 25], "legal": [11, 25], "spdx": [11, 25], "identifi": [11, 25, 38, 43, 45, 56], "with_doc": [11, 13, 18], "add_custom_target": 11, "cmake_command": 11, "dsrc": 11, "openpass_os_dir": 11, "ddst": 11, "cmake_binary_dir": 11, "comment": [11, 12], "cmake_current_list_dir": 11, "sphinx_execut": 11, "dwith_api_doc": 11, "with_api_doc": [11, 13], "exhal": [11, 17], "ON": [11, 13, 18, 21], "cmake_echo_color": 11, "page": [11, 12, 56], "set_properti": 11, "properti": [11, 39, 56], "additional_make_clean_fil": 11, "cmake_install_prefix": [11, 13, 18], "message_nev": 11, "endif": 11, "dockerfil": [11, 13], "dockerimagenam": 11, "modifi": [11, 12, 13, 18, 57], "modern": 12, "17": [12, 13, 14, 17, 20, 22, 44], "iso": 12, "cpp": [12, 13, 45], "concis": 12, "summar": 12, "pragma": 12, "namespac": [12, 20], "foobar": 12, "lowercamelcas": 12, "uppercamelcas": 12, "constexpr": 12, "magic_numb": 12, "999": [12, 45, 54, 56], "upper_cas": 12, "mymemb": 12, "member": 12, "ctor": 12, "void": 12, "bar": [12, 13], "barbar": 12, "bool": [12, 38, 42, 45, 55, 56], "counter": 12, "yaabar": 12, "yaa": 12, "abbrevi": 12, "lowercas": 12, "appropri": [12, 13, 55], "everyon": 12, "xmlparser": 12, "port": 12, "vector2d": 12, "opendriveid": 12, "worldinterfac": [12, 54, 56], "pure": 12, "withtout": 12, "getdist": 12, "const": 12, "exibit": 12, "excess": 12, "gmock": [12, 22], "fake": 12, "fakeworld": 12, "roi": 12, "osherov": 12, "mock": [12, 22, 23, 56], "whick": 12, "stub": 12, "easili": [12, 17, 22], "portion": 12, "agentblueprint": 12, "agentblueprintinterfac": 12, "dai": [12, 42], "gettimeofdai": 12, "suffici": [12, 50], "agentnetwork": [12, 45], "easier": [12, 26, 39], "componentport": 12, "outputport": 12, "locallinkid": 12, "setsignalvalu": 12, "inputport": 12, "getsignalvalu": 12, "entir": [12, 42, 55, 56], "adasdriv": 12, "unavoid": 12, "enum": [12, 45, 56], "prefer": [12, 13], "decor": 12, "alias": 12, "foopart": 12, "hungarian": 12, "notat": 12, "icount": 12, "partmap": 12, "magic": 12, "global": [12, 38], "except": [12, 44, 53, 56], "autogener": 12, "detectedentityhead": 12, "mutable_moving_object_head": 12, "complex": 12, "what": [12, 13, 28, 33], "why": [12, 21, 49], "third": [12, 17, 20, 22, 32], "person": [12, 39], "verb": 12, "syntax": [12, 20, 44], "multi": [12, 20], "param": 12, "markdown": [12, 22], "shortnam": 12, "longernam": 12, "verylongnam": 12, "stdio": 12, "mathemat": 12, "1415": [12, 39], "radius_m": 12, "82": 12, "calculatearea": 12, "polymorph": 12, "unless": [12, 21, 39, 46], "Of": 12, "eol": [12, 13], "gitattribut": 12, "git": 12, "edit": [12, 13, 24, 26, 27, 28, 29, 30, 57], "trim": 12, "trail": [12, 56], "whitespac": [12, 13], "space": [12, 16, 21, 31, 32], "tab": [12, 17, 32], "vscode": [12, 13, 18, 21], "linux": [12, 13, 15, 16, 17, 18, 20, 21, 22], "debian": [12, 13, 16, 17, 20], "bookworm": [12, 16, 17, 20], "ubuntu": [12, 13, 16, 17], "04": [12, 16, 17], "pacman": [12, 17], "w64": [12, 13, 17, 23], "x86_64": [12, 13, 17], "clang": [12, 13, 17, 22], "apt": [12, 13, 17, 20], "basedonstyl": 12, "googl": [12, 21], "accessmodifieroffset": 12, "allowshortfunctionsonasinglelin": 12, "inlin": 12, "alignoperand": 12, "alignafteroper": 12, "binpackargu": 12, "binpackparamet": 12, "breakbeforebrac": 12, "allman": 12, "breakbeforebinaryoper": 12, "columnlimit": 12, "120": [12, 44], "spacesinlinecommentprefix": 12, "commentpragma": 12, "includecategori": 12, "gtest": [12, 18, 20, 22], "q": 12, "termin": [12, 13, 42], "source_fil": 12, "tell": [12, 20], "qualiti": 12, "tidi": 12, "help": [12, 13, 21, 27, 33], "collabor": 12, "among": [12, 13, 56], "team": 12, "excerpt": 12, "BY": 12, "author": [12, 56], "short": [12, 17, 18, 39, 50, 56], "summari": 12, "charact": [12, 45], "bodi": 12, "footer": 12, "categor": 12, "natur": [12, 53], "feat": 12, "enhanc": [12, 33], "bug": 12, "style": 12, "improv": [12, 21, 33], "chore": 12, "mainten": 12, "modif": [12, 13, 17, 33, 57], "ci": [12, 17, 24, 26, 27, 28, 29, 30], "perf": 12, "revert": 12, "contextu": 12, "parenthesi": 12, "brief": 12, "exce": [12, 50], "justif": 12, "bullet": 12, "better": [12, 13, 33], "essenti": [12, 17], "correctli": [12, 13, 28], "enclos": 12, "angular": [12, 45, 49], "bracket": 12, "search": [12, 13, 21, 46], "stdlib": 12, "cmake_prefix_path": [12, 13, 18], "my_compon": 12, "thing": [13, 48], "testmat": 13, "pane": 13, "selector": 13, "bottom": 13, "ctest": 13, "breviti": 13, "thirdparti": [13, 15, 18, 21], "visualstudio": 13, "com": [13, 21, 56], "googletest": [13, 17, 21], "cygwin": [13, 23], "adapt": [13, 51], "remot": [13, 17, 20], "docker": 13, "reproduc": [13, 28], "machin": [13, 17, 18], "powershel": 13, "administr": 13, "mode": [13, 27, 33], "click": [13, 26, 29, 31, 32, 57], "wsl": 13, "restart": [13, 17], "onlin": 13, "distro": 13, "distronam": 13, "l": [13, 49], "sudo": [13, 18], "transport": [13, 54], "ca": [13, 17], "certif": [13, 17], "curl": 13, "temporarili": 13, "releas": [13, 17, 18, 21, 22, 24, 26, 27, 28, 29, 30, 56], "trust": 13, "fssl": 13, "gpg": 13, "tee": 13, "asc": 13, "echo": 13, "deb": 13, "arch": 13, "amd64": 13, "version_codenam": 13, "stabl": 13, "ce": 13, "cli": 13, "containerd": 13, "usermod": 13, "ag": 13, "prompt": [13, 57], "membership": 13, "dockerd": 13, "info": [13, 21, 28, 56], "cgroup": 13, "blkio": 13, "someth": 13, "listen": [13, 39], "var": 13, "sock": 13, "network": [13, 33, 41], "issu": [13, 21, 22], "compile_command": 13, "ngenerateresolvconf": 13, "unlink": 13, "nameserv": 13, "legaci": [13, 20], "iptabl": 13, "And": [13, 18], "rerun": 13, "unix": [13, 17, 23], "usernam": [13, 18, 20], "workspacefold": 13, "daemon": 13, "wsldistro": 13, "enter": 13, "palett": 13, "press": [13, 28], "ctrl": [13, 28, 32], "dev": [13, 17], "isol": 13, "statu": [13, 17, 40], "dll": [13, 21, 56], "explor": 13, "highli": 13, "environment": [13, 17, 23, 33], "msystem": 13, "mingw64": [13, 18, 21], "chere_invok": 13, "msys64": [13, 17, 18], "investig": 13, "recent": [13, 17, 22], "usr": [13, 17, 18, 21], "cygpath": 13, "ex": [13, 26, 57], "alreadi": [13, 17, 22], "even": [13, 53], "suggest": [13, 17], "env": 13, "setx": 13, "choos": [13, 17, 26, 28, 29, 31, 32, 50], "reload": 13, "optim": [13, 21, 48], "insert": 13, "preferredgener": 13, "msy": [13, 17, 18, 21, 23], "makefil": [13, 18, 21], "environmentvari": 13, "cxx": 13, "fortran": 13, "fc": 13, "gcc": [13, 17, 20, 21, 23], "cmakepath": 13, "configureset": 13, "cmake_make_program": 13, "workspaceroot": 13, "win64": [13, 21], "yase": [13, 18, 20], "fmilibrari": [13, 18, 20, 21], "mantleapi": [13, 18, 20, 39, 53], "protobuf": [13, 17, 18, 20, 21], "minizip": [13, 18, 20, 21], "openscenario_engin": [13, 18, 20], "openscenario_api": [13, 18, 20], "zlib": [13, 20], "scmthirdparti": 13, "cmake_build_typ": [13, 18], "use_ccach": [13, 18], "with_debug_postfix": [13, 18], "openpass_adjust_output": [13, 18], "install_extra_runtime_dep": [13, 18], "install_system_runtime_dep": 13, "c_cpp_properti": 13, "cmake_export_compile_command": 13, "adjust": [13, 18, 21, 26, 39, 44, 49, 57], "paralleljob": 13, "parallelexecutionlimit": 13, "parallelexecutionofexecutablelimit": 13, "discoveri": 13, "temp": 13, "ldd": 13, "_test": 13, "direcori": 13, "advancedexecut": 13, "os_env": 13, "profil": [13, 17, 20, 33, 38, 39, 42, 45, 51, 55, 56, 57], "overridenam": 13, "bash": [13, 17, 23], "login": 13, "icon": 13, "msys2_path_typ": 13, "inherit": 13, "defaultprofil": 13, "enforc": 13, "editor": [13, 24], "formatonsav": 13, "formatonsavemod": 13, "detectindent": 13, "insertspac": 13, "renderfinalnewlin": 13, "dim": 13, "insertfinalnewlin": 13, "trimfinalnewlin": 13, "trimtrailingwhitespac": 13, "with_": 13, "linux64": [13, 21], "with_test": 13, "tmp": 13, "renderwhitespac": 13, "trimautowhitespac": 13, "cstandard": 13, "c99": 13, "cppstandard": 13, "configurationprovid": 13, "compilecommand": 13, "intellisensemod": 13, "x64": [13, 16], "hint": [13, 21], "cach": [13, 20, 22], "reconfigur": 13, "src": 13, "forget": 13, "got": 13, "FOR": 13, "AND": 13, "cppdbg": 13, "launchtargetpath": 13, "stopatentri": 13, "cwd": 13, "mingw32": 13, "buildkit": 13, "externalconsol": 13, "mimod": 13, "gdb": [13, 17], "midebuggerpath": 13, "setupcommand": 13, "enabl": [13, 14, 17, 21, 33], "pretti": [13, 21], "ignorefailur": 13, "TO": 13, "proper": [13, 21, 33, 39, 44], "resolut": [13, 21], "startup": 13, "monitor": [13, 49], "But": [13, 38], "know": [13, 21], "pai": [13, 18], "platform": [14, 15, 20, 21, 23, 56], "assess": [14, 23, 33], "safeti": [14, 23, 33], "interact": [14, 22, 27, 33, 51], "situat": [14, 21, 23, 33, 47, 49], "suit": 14, "stand": [14, 52], "alon": 14, "futur": [14, 56], "graphic": [14, 16], "opgui": [14, 57, 58], "evolv": 14, "averag": [14, 56], "monolith": 14, "prerequisit": [14, 15, 18, 21, 22], "guidanc": [14, 15, 49, 51], "conan": [14, 15, 17], "tutori": [14, 15, 26, 33], "depth": [14, 23, 33, 37, 42, 57], "endtoend": [14, 17, 21], "guidelin": [14, 48], "glossari": 14, "gui": [14, 26, 27, 28, 29, 30, 33, 47], "pcm": [14, 23, 24, 26, 27, 30, 33, 34, 47], "user_guid": 14, "20_pcm_simul": 14, "hardwar": [15, 16], "finish": [15, 28, 53], "design": [16, 49, 56], "veri": [16, 47], "lightweight": 16, "huge": [16, 51], "gpu": 16, "cpu": 16, "commonli": 16, "exemplarili": 16, "intel": 16, "architectur": [16, 44, 56], "ghz": 16, "clock": 16, "frequenc": 16, "i5": 16, "10310u": 16, "gb": 16, "uhd": 16, "620": 16, "free": [16, 38, 51], "hard": 16, "disk": 16, "parti": [17, 20, 22], "websit": [17, 56], "latest": [17, 21, 22, 24, 26, 27, 28, 29, 30], "fine": 17, "op": 17, "script": [17, 20], "reflect": [17, 39], "understand": [17, 33], "lt": 17, "successfulli": [17, 18, 33, 57], "appropi": 17, "upgrad": 17, "syuu": 17, "resum": 17, "suu": 17, "ccach": [17, 21], "doxygen": 17, "graphviz": 17, "patch": 17, "lxml": 17, "font": 17, "equat": [17, 49, 50, 51, 56], "render": 17, "texliv": 17, "latex": 17, "extra": 17, "zziplib": 17, "libxslt": 17, "devel": 17, "sphinx_rtd_them": 17, "setuptool": 17, "myst": 17, "parser": 17, "date": [17, 20, 41], "pip3": 17, "approvaltest": 17, "breath": 17, "watchdog": 17, "credenti": 17, "databas": [17, 28, 33], "antlr4": 17, "libboost": 17, "libprotobuf": 17, "libantlr4": 17, "runtime4": 17, "java": 17, "openjdk": 17, "jre": 17, "pkg": [17, 20], "python3": 17, "distutil": 17, "uuid": 17, "rtd": 17, "theme": 17, "sphinxcontrib": 17, "spell": 17, "goal": [17, 33], "unfamiliar": [17, 18], "introduct": [17, 18], "strictli": [17, 18, 39, 53], "cd": [17, 18], "gitlab": [17, 53], "suffer": 17, "strang": [17, 33], "letter": 17, "subst": 17, "navig": [17, 18, 57], "branch": 17, "conanfil": [17, 20], "conancent": 17, "recip": 17, "conanprofile_linux": 17, "conanprofile_window": 17, "unexpect": 17, "outcom": 17, "15_prepare_thirdparti": [17, 20], "sh": [17, 20], "extract": [17, 56], "zulu": 17, "java_hom": 17, "export": 17, "python_execut": 17, "upon": [17, 56], "properli": [18, 41], "topic": [18, 22], "mkdir": 18, "against": 18, "direct_deploi": [18, 20], "boost": [18, 20], "permiss": 18, "chown": 18, "uesrnam": 18, "attent": 18, "quotat": 18, "goe": [18, 56], "beyond": [18, 22], "failur": [18, 21], "j3": [18, 21], "decentr": 20, "learn": [20, 57], "hook": 20, "involv": [20, 49, 50], "metadata": 20, "path_to_recip": 20, "packageopt": 20, "pr": 20, "conanprofil": 20, "path_to_sourc": 20, "creator": 20, "owner": 20, "influenc": [20, 39, 49], "mantleapi_vers": 20, "yase_vers": 20, "commit": 20, "deploy": 20, "cmakedep": 20, "deploi": 20, "my": 20, "exact": [20, 21, 57], "b2": 20, "85": 20, "libiconv": 20, "libxml2": 20, "v5": 20, "v6": 20, "toolset": 20, "without_chrono": 20, "without_cobalt": 20, "without_contain": 20, "without_context": 20, "without_contract": 20, "without_coroutin": 20, "without_date_tim": 20, "without_fib": 20, "without_iostream": 20, "without_json": 20, "without_local": 20, "without_log": 20, "without_nowid": 20, "without_stacktrac": 20, "without_test": 20, "without_thread": 20, "without_tim": 20, "without_type_erasur": 20, "without_url": 20, "without_wav": 20, "ftp": 20, "include_util": 20, "sax1": 20, "no_kil": 20, "debug_suffix": 20, "varibl": 21, "overriden": 21, "structer": 21, "cmake_": 21, "approach": [21, 51, 56], "compat": [21, 23, 56], "recogn": 21, "explicit": [21, 44], "pwd": 21, "conjunct": [21, 39], "msvc": [21, 22], "postfix": 21, "cmake_lang_compil": 21, "prevent": [21, 23], "255": 21, "scenario": [21, 23, 27, 33, 34, 35, 38, 41, 45, 53, 55, 56], "consider": [21, 49, 50, 55, 56], "slower": [21, 22], "coverag": 21, "test_nam": 21, "regist": [21, 39], "add_openpass_target": 21, "helpermacro": 21, "lcov": 21, "_coverag": 21, "genhtml": 21, "_html": 21, "testcoveragereport": 21, "gcov": 21, "fastcov": 21, "coverage_exclud": 21, "substr": 21, "ran": 21, "arena": 21, "protocol": 21, "fortun": 21, "fall": 21, "hood": 21, "major": [21, 22], "tutorialspoint": 21, "unix_command": 21, "opsimulation_test": 21, "known": [22, 50, 52], "maintain": [22, 55], "savannah": 22, "faster": 22, "recompil": 22, "regularli": 22, "definilti": 22, "regularili": 22, "20g": 22, "older": 22, "74": [22, 44], "deprec": [22, 24, 26, 27, 28, 29, 30], "header": [22, 31, 32, 41, 45], "googlemock": 22, "lastest": 22, "brought": 22, "newer": 22, "precaut": 22, "dissolv": 22, "dedic": 22, "truth": [22, 33], "backend": 22, "storag": 22, "consum": [22, 44], "centric": 22, "view": [22, 24, 26, 27, 28, 29, 30, 37], "metainfo": 22, "datastructur": 22, "far": [22, 42, 45, 49], "scratch": 22, "advanc": [23, 27, 33], "aeb": [23, 38, 44, 48, 57], "autonom": [23, 56, 57], "danger": 23, "equip": [23, 57], "gida": [23, 33], "accid": [23, 33], "studi": [23, 33], "omit": [23, 55], "precas": 23, "ahigh": 23, "flexibl": 23, "gnu": 23, "tradition": 23, "intend": [23, 45, 55], "supplement": 23, "rewrit": 23, "posix": 23, "od": 23, "percept": 23, "autom": 23, "opensimulationinterfac": [23, 56], "github": [23, 56], "pre": [23, 57], "matrix": [23, 33], "vufo": 23, "lang": 23, "en": 23, "qt": [24, 26, 27, 28, 29, 30], "minor": [24, 26, 27, 28, 29, 30, 51], "v0": [24, 26, 27, 28, 29, 30], "openpass_simulator_build": [24, 26, 27, 28, 29, 30], "openpass_0": [24, 26, 27, 28, 29, 30], "oblig": 26, "opsimulationmanag": 26, "Such": [26, 33], "inscrib": 26, "save": [26, 52], "screen": 26, "shot": 26, "demo": [26, 27, 57], "plan": [26, 49], "although": [26, 56], "matter": [27, 49], "ga": 27, "inclus": 27, "button": 28, "resimul": 28, "addition": [28, 33, 38], "comma": [28, 31, 32, 56], "car1_index": 28, "car2_index": 28, "other_index": 28, "seed": [28, 33, 42, 45, 56], "randomli": [28, 42], "car1": 28, "car2": 28, "polar": 28, "x_": [28, 52], "y_": [28, 52], "math": 28, "p_": [28, 49, 56], "int_": 28, "v_": [28, 50, 51, 52], "dt": 28, "k": 28, "factor": [28, 49, 52, 56], "chosen": [28, 41, 42, 50, 52, 57], "interrupt": 28, "anymor": [28, 50], "result_pcm": 28, "1000208": 28, "var_00001": 28, "brows": 29, "timeplot": 30, "histogram": 31, "treeview": 31, "row": 31, "scrollabl": 31, "white": 31, "background": [31, 33, 48, 49], "preview": 31, "panel": 31, "frame": [31, 32], "plot": 32, "track_id": 32, "item": [32, 38], "yield": 32, "track": [32, 45], "stakehold": 33, "predict": 33, "Its": 33, "precrash": 33, "past": 33, "technologi": 33, "That": 33, "variat": [33, 47, 57], "intervent": [33, 39], "beginn": 33, "target_object": 33, "openpass_at_a_gl": 33, "insight": 33, "record": 33, "particular": [33, 55, 56], "go": [33, 45], "serv": 33, "hand": 33, "sens": [33, 47], "tackl": 33, "interdepend": 33, "bundl": 33, "loop": [33, 49, 50], "focus": 33, "chart": 33, "deptict": 33, "decreas": [33, 51, 56], "asam": [33, 39, 41, 53], "placement": [33, 38], "xosc": [33, 39, 42, 57], "park": 33, "lot": 33, "obstacl": [33, 46], "catalog": [33, 38, 52, 56, 57], "probabilist": [33, 47], "heart": 33, "composit": [33, 38, 39], "determinist": 33, "vehiclemodelcatalog": 33, "pedestrianmodelcatalog": 33, "profilegroup": [33, 55, 56], "conform": [33, 53], "vehiclecatalog": [33, 38, 56], "pedestriancatalog": 33, "histor": 33, "word": [33, 39, 46], "vehiclemodelscatalog": [33, 38, 39, 57], "pedestrianmodelscatalog": [33, 39, 57], "simulationconfig": [33, 35, 38, 57], "subset": [33, 44], "expertis": 33, "blueprint": 33, "concret": 33, "convent": [33, 46], "put": 33, "observation_log": [33, 36, 42], "central": 33, "seen": [33, 54, 56], "cyclics_run_": 33, "cyclics_run_000": [33, 45], "behav": [33, 39], "did": 33, "primer": [35, 36], "audienc": 35, "observation_entityrepositori": [36, 42], "trafficgroup": [38, 48], "vehiclemodel": [38, 39], "driverprofil": [38, 51], "car_bmw_7": [38, 45], "luxuryclasscarag": [38, 55], "agentfollowingdriv": 38, "noada": 38, "withaeb": 38, "car_mini_coop": [38, 39], "car_bmw_7_1": [38, 39], "egoag": 38, "aebprofil": 38, "sensorlink": 38, "sensorid": 38, "inputid": [38, 56], "camera": [38, 56], "geometric2d": [38, 45, 56], "frontwindow": 38, "sensorposit": 38, "pitch": [38, 39, 41, 45], "componentnam": 38, "exampleprofil": 38, "stringparamet": [38, 44], "lorem": [38, 44], "ipsum": [38, 44], "doublevector": [38, 55], "doubleparamet": 38, "56": 38, "78": 38, "normaldistribut": [38, 44, 55, 56], "randomparamet": [38, 44], "sd": [38, 44, 55, 56], "anotherprofil": 38, "intvector": [38, 55], "stringvector": [38, 42, 45, 55], "drawn": 38, "mu": [38, 55], "sigma": [38, 55], "equival": [38, 39], "lognormaldistribut": [38, 55], "uniformdistribut": 38, "none": [38, 39], "exponentialdistribut": 38, "lambda": 38, "gammadistribut": 38, "nest": 38, "examplelist": 38, "firstparamet": 38, "secondparamet": 38, "substitut": [38, 49], "grouptyp": 38, "profilenam": 38, "driverlibrari": 38, "librarynam": 38, "vari": 38, "countri": 38, "cn": 38, "openspeedlimit": 38, "keeptoouterlan": 38, "outermost": 38, "dontovertakeonouterlan": 38, "prohibit": 38, "overtak": 38, "lefthand": 38, "formrescuelan": 38, "jam": [38, 51], "corridor": 38, "zippermerg": 38, "zipper": 38, "inf": 38, "openspeedlimittruck": 38, "2222222": 38, "openspeedlimitbus": 38, "7777777": 38, "2928": 38, "8224": 38, "3333": 38, "25": [38, 41, 44], "declar": [39, 43], "simulation_tim": 39, "parametertyp": 39, "123": [39, 42], "endtim": 39, "conditionedg": 39, "rise": 39, "byvaluecondit": 39, "simulationtimecondit": 39, "greaterthan": 39, "reus": 39, "trajectorycatalog": 39, "followtrajectori": [39, 48], "catalogloc": 39, "controllercatalog": 39, "maneuvercatalog": 39, "miscobjectcatalog": 39, "environmentcatalog": 39, "routecatalog": 39, "car_bmw_i3": 39, "car_bmw_3": 39, "car_bmw_7_2": 39, "truck": 39, "bicycl": 39, "meaningless": 39, "pedestrian_child": 39, "pedestrian_adult": 39, "logicfil": 39, "filepath": 39, "scenegraphfil": 39, "junction": [39, 41, 42], "trafficsignalcontrol": 39, "phase1": 39, "trafficsignalst": 39, "trafficsignalid": 39, "phase2": 39, "phase3": 39, "phase4": 39, "flash": [39, 45], "predefin": [39, 57], "entityselect": 39, "consit": 39, "contol": 39, "keepveloc": [39, 48], "keeplateraloffset": 39, "specifii": 39, "scenarioobject": 39, "catalogrefer": 39, "catalognam": 39, "entrynam": 39, "objectcontrol": 39, "middleclasscarag": [39, 45, 55], "parameterassign": 39, "parameterref": 39, "refert": 39, "clarif": 39, "desrib": 39, "standstil": 39, "visiblilityact": 39, "entityref": 39, "privateact": 39, "laneposit": 39, "roadid": [39, 55], "longitudinalact": 39, "speedactiondynam": 39, "dynamicsshap": [39, 53], "dynamicsdimens": [39, 53], "speedactiontarget": 39, "absolutetargetspe": 39, "controlleract": 39, "activatecontrolleract": 39, "controllerref": 39, "1472558076": 39, "200": [39, 44, 45], "routingact": 39, "waypoint": 39, "routestrategi": 39, "fastest": 39, "roadposit": [39, 42, 45], "230": 39, "3083973": 39, "2015840166": 39, "fire": 39, "never": [39, 53, 56], "perhap": 39, "byentitycondit": 39, "unrel": 39, "road_id": 39, "sinusoid": [39, 53], "lateralact": 39, "lanechangeactiondynam": 39, "lanechangetarget": 39, "worldposit": 39, "trajectoryref": 39, "vertex": 39, "570796326": 39, "timerefer": 39, "trajectoryfollowingmod": [39, 53], "followingmod": 39, "trajectorya": 39, "logic": [39, 50, 55], "acquireposit": 39, "tcoordin": [39, 42, 45], "agentinfront": [39, 42, 45], "relativeobjectposit": 39, "dx": 39, "dy": 39, "s1": [39, 46], "instantli": 39, "zone": 39, "immedi": 39, "absoultetargetspe": 39, "relativetargetspe": 39, "scenarioag": 39, "speedtargetvaluetyp": 39, "keyword": 39, "componentstatechang": 39, "dynamics_trajectoryfollow": [39, 44], "univers": 39, "scenariocontrolinterfac": 39, "empow": 39, "tailor": 39, "customparamet": [39, 44], "hello": 39, "transformpolylinepointsfromworldtoloc": 40, "transformpositionfromworldtoloc": 40, "createmap": 40, "addentitytocontrol": 40, "removecontrollerfroment": 40, "getqueryservic": 40, "getconvert": 40, "getgeometryhelp": 40, "getentityrepositori": 40, "getcontrollerrepositori": 40, "setdatetim": 40, "getdatetim": 40, "getsimulationtim": 40, "setweath": 40, "setroadcondit": 40, "setuserdefinedvalu": 40, "getuserdefinedvalu": 40, "nullopt": 40, "setvari": 40, "getvari": 40, "opendriveposit": 40, "getlaneorient": 40, "ispositiononlan": 40, "findlaneposeatdistancefrom": 40, "getlongitudinallanedistancebetweenposit": 40, "findrelativelaneposeatdistancefrom": 40, "externalcontrollerconfig": 40, "agentprofil": [40, 44, 55], "getuniqueid": 40, "setnam": 40, "getnam": 40, "setveloc": 40, "getveloc": 40, "setacceler": 40, "getacceler": 40, "getorient": 40, "setorientationr": 40, "getorientationr": 40, "setorientationacceler": 40, "getorientationacceler": 40, "getassignedlaneid": 40, "getvis": 40, "setproperti": 40, "getproperti": 40, "setindicatorst": 40, "getindicatorst": 40, "staticobject": 40, "gethost": 40, "getent": 40, "registerentitycreatedcallback": 40, "registerentitydeletedcallback": 40, "freeli": [41, 56], "roadnetwork": 41, "meet": [41, 50], "abort": 41, "revmajor": 41, "revminor": 41, "testfil": 41, "feb": 41, "24": [41, 42, 44], "06": 41, "2007": 41, "north": 41, "0000000000000000e": 41, "003": 41, "south": 41, "east": 41, "west": 41, "5139": 41, "7188686309819": 41, "planview": 41, "hdg": 41, "4000": 41, "285": 41, "spiral": 41, "curvstart": 41, "curvend": 41, "0028500000000000066": 41, "4285": 41, "4280": 41, "3350391612494": 41, "629710830536482": 41, "40612500000000096": 41, "183": 41, "7188686309816": 41, "4468": 41, "4422": 41, "9323279193268": 41, "143": 41, "12204699500415": 41, "92972377559829977": 41, "571": 41, "5039": 41, "4476": 41, "6651848689908": 41, "694": 41, "88624436808436": 41, "7453292519943295": 41, "elevationprofil": 41, "lateralprofil": 41, "lanesect": 41, "border": 41, "75": [41, 44], "roadsidemarkerpost": 41, "zoffset": 41, "validlength": 41, "rail": [41, 46, 57], "guardrail": [41, 46], "precis": 42, "indirectli": 42, "said": 42, "experimentid": 42, "numberofinvoc": 42, "rerol": 42, "randomse": [42, 45, 56], "unsign": 42, "532725206": 42, "worldlibrari": 42, "openscenariofil": 42, "highwayscenario": 42, "timeofdai": 42, "visibilitydist": [42, 54], "human": 42, "dynamicsregulardriv": [42, 44], "weather": 42, "trafficrul": 42, "turningr": 42, "70": [42, 44], "125": 42, "250": [42, 44], "sunni": 42, "18": 42, "300": [42, 45, 56], "400": [42, 44], "raini": 42, "snowi": 42, "incom": 42, "chanc": 42, "outgo": 42, "r3": 42, "the_observation_librari": 42, "the_kei": 42, "the_valu": 42, "another_kei": 42, "spawnerpreruncommon": 42, "defaultpreruncommon": [42, 55], "spawnerruntimecommon": 42, "defaultruntimecommon": [42, 55], "encod": 42, "utf": 42, "schemavers": 42, "outputfilenam": [42, 45], "loggingcyclicstocsv": [42, 45, 57], "logginggroup_trac": [42, 45], "xposit": [42, 45], "yposit": [42, 45], "yawangl": [42, 45], "logginggroup_roadposit": [42, 45], "logginggroup_roadpositionextend": [42, 45], "secondarylan": [42, 45], "logginggroup_sensor": [42, 45], "_detectedag": [42, 45], "_visibleag": [42, 45], "logginggroup_vehicl": [42, 45], "accelerationpedalposit": [42, 45], "brakepedalposit": [42, 45], "enginemo": [42, 45], "steeringangl": [42, 45], "totaldistancetravel": [42, 45], "yawrat": [42, 45], "logginggroup_visu": [42, 45], "accelerationego": [42, 45, 56], "brakelight": [42, 45], "indicatorst": [42, 45], "lightstatu": [42, 45], "logginggroup": 42, "filenameprefix": [42, 46], "writepersistentent": [42, 46], "consolid": [42, 46], "concaten": [42, 46], "_run_": [42, 46], "_persist": [42, 46], "persist": [42, 46], "schema": [43, 44], "ssppath": [43, 56], "ssp1": [43, 44, 56], "502": 43, "experienc": 44, "knowledg": [44, 50], "isn": [44, 55], "sendercar2x": 44, "399": 44, "diagram": 44, "coars": [44, 47], "500": 44, "drivermod": 44, "299": 44, "lvl": 44, "199": 44, "vehicledynamicscontrol": 44, "149": 44, "49": 44, "parametersagentmodul": 44, "parametersag": 44, "sensorobjectdetector": 44, "398": 44, "sensoraggreg": 44, "sensoraggregation_osi": 44, "351": 44, "sensorfusionerrorless": 44, "sensorfusionerrorless_osi": 44, "algorithmagentfollowingdrivermodel": [44, 48], "drivermodel": 44, "algorithmautonomousemergencybrak": 44, "fmu1": [44, 56], "algorithmfmuwrapp": 44, "fmu2": 44, "fmu3": 44, "algorithmsspwrapp": 44, "prioritizerlaterdriv": 44, "prioritizeraccelerationdriv": 44, "algorithmlateraldriv": 44, "algorithmlongitudinalvehiclecompon": 44, "algorithmlongitudinaldriv": 44, "actionlongitudinaldrivermodul": 44, "actionlongitudinaldriv": 44, "Will": [44, 56], "expand": 44, "actionprimari": 44, "drivertask": 44, "actionsecondarydrivertasksmodul": 44, "actionsecondarydrivertask": 44, "xx": 44, "sensorfus": 44, "fusion": 44, "9900": 44, "increment": [44, 45, 49, 55], "1813": 44, "41": 44, "81": [44, 50, 52], "89": 44, "91": 44, "controllerswitch": 44, "algorithm_longitudinalvehiclecompon": 44, "algorithm_longitudinalafdm": [44, 51], "algorithm_steeringvehiclecompon": 44, "algorithm_lateralvehicleafdm": 44, "action_secondarydrivertask": [44, 45], "71": 44, "73": 44, "83": 44, "84": 44, "parameter_vehicl": 44, "92": 44, "93": 44, "94": 44, "95": 44, "98": [44, 56], "61": 44, "90": 44, "01": [44, 45], "secondarydrivertask": [44, 45], "acquireglobalposit": 44, "62": [44, 51], "63": 44, "sensordriv": [44, 54], "profilesgroup": 44, "logginggroup_": 45, "publisherinterfac": 45, "spin": 45, "regardless": 45, "rad": [45, 52, 54, 56], "steeringwheelangl": [45, 54], "integervector": 45, "longitudinaldriv": 45, "percent": 45, "low": [45, 47, 51, 56], "fog": 45, "agentupdaterimpl": 45, "longitudinalcontrol": 45, "lateralcontrol": 45, "regulardriv": 45, "sensor_driverimpl": 45, "infront": 45, "sensorcar2x": 45, "detectedag": 45, "visibleag": 45, "observationlog_parameter": 45, "runresult": 45, "5673465": 45, "2634474": 45, "express": [45, 49, 56], "trafficlightcontrol": 45, "bulb": 45, "traffic_light_st": 45, "opendrive_id": 45, "post": 45, "activecomponentchang": 45, "identif": 45, "categori": 45, "vehicleattribut": 45, "longitudinalpivotoffset": 45, "closer": 45, "neg": [45, 52], "systemprofil": [45, 56], "mountingposlongitudin": 45, "mountingposlater": 45, "mountingposheight": 45, "orientationpitch": 45, "orientationyaw": 45, "openingangleh": [45, 56], "horizont": [45, 56], "openinganglev": 45, "detectionrang": [45, 56, 57], "geometric2dfront": 45, "layout": 45, "sample_nam": 45, "103": 45, "204": 45, "cyclicsfil": 45, "observationlog_cycl": 45, "repository_run_00": 46, "ie": 46, "repository_run_000": 46, "movingobject": 46, "tf": 46, "scenaro": 46, "s2": 46, "s3": 46, "100000": 46, "200000": 46, "stationaryobject": 46, "barrier": 46, "barrier_01": 46, "100001": 46, "guardrail_01": 46, "100002": 46, "100003": 46, "100004": 46, "100005": 46, "100006": 46, "guardrail_02": 46, "100007": 46, "100008": 46, "100009": 46, "100010": 46, "laneroadmark": 46, "200001": 46, "200002": 46, "200003": 46, "200004": 46, "200005": 46, "200006": 46, "guard": [46, 57], "consecut": 46, "mont": 47, "carlo": 47, "capabl": [47, 57], "topmost": 47, "domain": [47, 53], "volum": [47, 57], "aforement": 47, "gap": [47, 51, 55], "freedom": 47, "popul": [48, 55], "realist": 48, "fashion": 48, "invert": [48, 49], "defaultstrategi": 48, "keeplaneoffset": 48, "strategi": 48, "followvelocitysplin": 48, "performchangelan": 48, "ownvehiclest": 48, "trafficruleinform": 48, "geometryinform": 48, "surroundingobject": 48, "vehicledynam": 48, "actionsteeringsystem": 48, "actionpowertrain": 48, "actionbrakesystem": 48, "dynamicschassi": 48, "dynamicstiremodel": 48, "dynamicsmotionmodel": 48, "sum": [49, 52], "kappa_": 49, "2m": 49, "8m": 49, "manoeuvr": 49, "w_": 49, "phi_": [49, 52], "phi": [49, 52], "delta_": [49, 52], "kappa": [49, 52], "delta_h": 49, "subsect": [49, 50], "theoret": 49, "ackermann": [49, 52], "relationship": [49, 50], "simplif": [49, 52], "reduct": 49, "surrog": [49, 52], "citi": 49, "gain": 49, "smooth": 49, "toward": [49, 51], "instantan": 49, "centr": 49, "curv": [49, 50], "tan": [49, 52], "arctan": 49, "i_": [49, 50, 52, 56], "amplif": 49, "kinemat": [49, 52], "kramer": 49, "problemat": 49, "tune": 49, "p_w": 49, "metr": 49, "sin": [49, 52], "actuat": [50, 52], "clutch": 50, "act_": [50, 52], "olc": 50, "stat": [50, 52], "worth": 50, "n_": [50, 52], "revolut": 50, "minut": 50, "tire": [50, 52, 56], "slip": [50, 56], "eng": [50, 52], "characterist": 50, "analog": 50, "1g": 50, "strong": 50, "mechan": [50, 52], "stronger": 50, "calculatepedalposit": 50, "calculatepedalpositionandgear": 50, "calculategearandenginespe": 50, "violat": 50, "upper": 50, "aspect": 50, "criteria": 50, "foundgear": 50, "2nd": 50, "4th": 50, "3rd": 50, "optimum": 50, "idm": 51, "intellig": 51, "wish": 51, "s_": 51, "netdist": 51, "sqrt": 51, "b_": 51, "frontag": 51, "vanish": 51, "awar": 51, "govern": 51, "compens": 51, "harder": 51, "resembl": 51, "repuls": 51, "enlarg": 51, "equilibrium": 51, "algorithmlateralmodul": 51, "algorithmlongitudinalmodul": 51, "velocitywish": 51, "expon": 51, "character": 51, "infin": [51, 54], "tgapwish": 51, "mindist": 51, "maxacceler": 51, "satisfactori": 51, "maxdeceler": [51, 56], "algorithm_lateralafdm": 51, "36": 51, "treiber": 51, "martin": 51, "henneck": 51, "ansgar": 51, "helb": 51, "dirk": 51, "2000": 51, "congest": 51, "empir": 51, "microscop": 51, "review": 51, "1805": 51, "1824": 51, "arxiv": 51, "cond": 51, "mat": 51, "0002177": 51, "engag": 52, "worldobjectinterfac": 52, "dependend": 52, "pos_": 52, "proj": 52, "differenti": 52, "follw": 52, "fluid": 52, "airdrag": 52, "rollingdrag": 52, "dummi": 52, "0125": 52, "tap": 52, "power": [52, 56], "pressur": 52, "n_eng": 52, "discret": [52, 56], "deem": 52, "l_": 52, "previous": [52, 55, 57], "modelinterfac": 52, "driven": 52, "atan": 52, "plu": 52, "agent_": 52, "mantl": 53, "scenario_api": 53, "spline": 53, "momement": 53, "jump": 53, "li": 53, "concern": 54, "struct": 54, "ownvehicleinform": 54, "absoluteveloc": 54, "lateralposit": 54, "distancetolaneboundaryleft": 54, "distancetolaneboundaryright": 54, "infrastructur": 54, "laneleft": 54, "mainlan": 54, "laneego": [54, 56], "laneright": 54, "lanemarkingsleft": 54, "lanemarkingsright": 54, "lanemarkingsleftofleftlan": 54, "lanemarkingsrightofrightlan": 54, "basi": [54, 57], "laneinformationtrafficrul": 54, "trasport": 54, "laneinformationgeometri": 54, "distancetoendoflan": 54, "farther": 54, "awai": 54, "mainlaneid": 54, "objectfront": 54, "objectrear": 54, "closest": [54, 55], "objectfrontleft": 54, "objectrearleft": 54, "objectfrontright": 54, "objectrearright": 54, "objectinform": 54, "isstat": 54, "street": 54, "heigth": 54, "relativelongitudinaldist": 54, "relativelateraldist": 54, "spawnzon": 55, "sstart": 55, "inexist": 55, "slength": 55, "neither": 55, "undefin": [55, 56], "fill": [55, 56], "crop": 55, "5m": 55, "1000": 55, "lightvehicl": 55, "heavyvehicl": 55, "47": 55, "preruncommonspawn": 55, "roadstream": 55, "onramp": [55, 56], "offramp": [55, 56], "connectingramp": 55, "scenariospawn": 55, "augment": 55, "aris": 55, "entireti": 55, "opposit": 55, "draft": 55, "homogen": 55, "spawnarea": 55, "critic": 55, "spawncoordin": 55, "els": 55, "spawnerruntimecommon_osi": 55, "throughout": 55, "attempt": 55, "spawnpoint": 55, "scoordin": 55, "expir": 55, "fullfil": 55, "requri": 55, "held": 55, "trafficvolum": 55, "tgap": 55, "685": 55, "475": 55, "265": 55, "105": 55, "820": 55, "larger": 56, "collisiondetectionlongitudinalboundari": 56, "collisiondetectionlateralboundari": 56, "aeb1": 56, "automaticdeactiv": 56, "relinquish": 56, "trajectoryfil": 56, "enforcetrajectori": 56, "basictrajectoryfollow": 56, "abi": 56, "modelon": 56, "jmodelica": 56, "modeldescript": 56, "vehiclecomponentprofil": 56, "staticosmpsensordatatotrafficupdatestepp": 56, "fmuwrapp": 56, "fmuhandl": 56, "osmpsdtotu": 56, "input_osmpsensordatain": 56, "input_osmpsensorviewinconfig": 56, "sensorviewconfig": 56, "output_osmptrafficupdateout": 56, "output_osmpsensorviewinconfigrequest": 56, "sensorviewconfigrequest": 56, "writejson_trafficupd": 56, "spreadsheet": 56, "primit": 56, "simulink": 56, "Be": 56, "matlab": 56, "parameter_": 56, "varnam": 56, "parameter_assignspecial_": 56, "input_": 56, "output_": 56, "configpath": 56, "suppli": 56, "outputpath": 56, "maxsteer": 56, "max_steer": 56, "gearratio": 56, "nth": 56, "gearrat": 56, "centripetalaccelerationego": 56, "centripet": 56, "steeringwheelego": 56, "accelerationpedalpositionego": 56, "brakepedalpositionego": 56, "distancereftofrontedgeego": 56, "positionxego": 56, "positionyego": 56, "yawego": 56, "positionsego": 56, "positiontego": 56, "existencefront": 56, "positionxfront": 56, "positionyfront": 56, "yawfront": 56, "positionsfront": 56, "positiontfront": 56, "relativedistancefront": 56, "widthfront": 56, "lengthfront": 56, "distancereftofrontedgefront": 56, "velocityfront": 56, "lanefront": 56, "existencefrontfront": 56, "positionxfrontfront": 56, "positionyfrontfront": 56, "relativedistancefrontfront": 56, "velocityfrontfront": 56, "lanefrontfront": 56, "lanecountleft": 56, "lanecountright": 56, "speedlimit_": 56, "roadcurvature_": 56, "sensorfusionobjectid_": 56, "sensorfusionnumberofdetectingsensors_": 56, "sensorfusionrelatives_": 56, "nan": 56, "sensorfusionrelativenets_": 56, "sensorfusionrelativet_": 56, "sensorfusionrelativex_": 56, "sensorfusionrelativey_": 56, "sensorfusionrelativenetleft_": 56, "leftmost": 56, "sensorfusionrelativenetright_": 56, "sensorfusionrelativenetx_": 56, "sensorfusionrelativenety_": 56, "sensorfusionlane_": 56, "sensorfusionvelocity_": 56, "sensorfusionvelocityx_": 56, "sensorfusionvelocityy_": 56, "sensorfusionyaw_": 56, "longitudinalsign": 56, "steeringsign": 56, "dynamicssign": 56, "accelerationsignal_acceler": 56, "longitudinalsignal_accpedalpo": 56, "longitudinalsignal_brakepedalpo": 56, "longitudinalsignal_gear": 56, "steeringsignal_steeringwheelangl": 56, "dynamicssignal_acceler": 56, "dynamicssignal_veloc": 56, "dynamicssignal_positionx": 56, "dynamicssignal_positioni": 56, "dynamicssignal_yaw": 56, "dynamicssignal_yawr": 56, "dynamicssignal_yawacceler": 56, "dynamicssignal_steeringwheelangl": 56, "dynamicssignal_centripetalacceler": 56, "dynamicssignal_traveldist": 56, "compctrlsignal_movementdomain": 56, "compctrlsignal_warningact": 56, "compctrlsignal_warninglevel": 56, "compctrlsignal_warningtyp": 56, "optic": 56, "acoust": 56, "haptic": 56, "compctrlsignal_warningintens": 56, "medium": 56, "compctrlsignal_warningdirect": 56, "init_": 56, "var_nam": 56, "groundtruth": 56, "transformlist": 56, "scenarionam": 56, "parameter_transformlist": 56, "writejson_": 56, "writetrace_": 56, "enforcedoublebuff": 56, "throw": 56, "fmuvari": 56, "calculatedparamet": 56, "tunabl": 56, "writevalu": 56, "occas": 56, "2d": 56, "failureprob": 56, "latenc": 56, "detectiondelaytim": 56, "maxdropouttim": 56, "undetect": 56, "anew": 56, "requiredpercentageofvisiblearea": 56, "35": 56, "sensit": 56, "1e": 56, "ss_": 56, "sender": 56, "blackbox": 56, "egovehicl": 56, "modular": 56, "six": 56, "predetermin": 56, "chassi": 56, "obtain": 56, "toe": 56, "elast": 56, "staticto": 56, "vectordoubl": 56, "caster": 56, "typedrivetrain": 56, "fwd": 56, "rwd": 56, "awd": 56, "frontratioawd": 56, "hz": 56, "omega_": 56, "avg": 56, "maximumenginepow": 56, "motor": 56, "position_": 56, "evenli": 56, "s\u00b3": 56, "frontaxlepercentag": 56, "brakedecelerationincliner": 56, "brakedecelerationdecliner": 56, "brakeresponsetimem": 56, "elaps": 56, "rate_": 56, "dissip": 56, "declin": 56, "drop": 56, "prefil": 56, "spring": 56, "damper": 56, "springcoeffici": 56, "dampercoeffici": 56, "degress": 56, "rill": 56, "tmeasi": 56, "mutiremaxxfref": 56, "mutiremaxx2fref": 56, "mutireslidexfref": 56, "slide": 56, "mutireslidex2fref": 56, "sliptiremaxxfref": 56, "sliptiremaxx2fref": 56, "sliptireslidexfref": 56, "sliptireslidex2fref": 56, "f0pxfref": 56, "slope": 56, "f0px2fref": 56, "mutiremaxyfref": 56, "mutiremaxy2fref": 56, "mutireslideyfref": 56, "mutireslidey2fref": 56, "sliptiremaxyfref": 56, "sliptiremaxy2fref": 56, "sliptireslideyfref": 56, "sliptireslidey2fref": 56, "f0pyfref": 56, "f0py2fref": 56, "fref": 56, "frefnorm": 56, "vectorbool": 56, "pneumatictrail": 56, "pneumat": 56, "self": 56, "product": 56, "ident": 56, "frictioncoeffici": 56, "georg": 56, "2013": 56, "xpositioncog": 56, "ypositioncog": 56, "book": 56, "k\u00fcc\u00fckai": 56, "ferit": 56, "2022": 56, "grundlagen": 56, "der": 56, "fahrzeugtechnik": 56, "1067": 56, "ff": 56, "exemplari": 57, "break": 57, "cut": 57, "dir": 57, "aeb_cutin": 57, "child": 57, "incorpor": 57, "constel": 57, "spawnpointpreruncommon": 57, "spawnpointruntimecommon": 57, "spawnpointscenario": 57, "cyclics_run_xxx": 57, "repository_run_xxx": 57}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"simul": [0, 6, 22, 26, 28, 37, 57, 58], "endtoend": 1, "test": [1, 21], "framework": 1, "prerequisit": [1, 13, 17, 20], "execut": [1, 6, 21], "parallel": 1, "configur": [1, 13, 28], "queri": 1, "result": [1, 28, 29, 30, 31, 32], "basic": [1, 9, 11], "syntax": 1, "us": [1, 2, 22], "event": [1, 45], "filter": 1, "payload": 1, "exampl": [1, 38, 41, 42, 43], "openscenario": [1, 5], "transit": 1, "spawn": [1, 7], "time": [1, 7], "explicit": 1, "datatyp": 1, "dev": 1, "note": [1, 22], "agent": [2, 3, 7, 45], "compon": [2, 38, 39, 48, 54], "action_longitudinaldriv": 2, "action_secondarydriv": 2, "agentupdat": 2, "algorithm_later": [2, 49], "algorithm_longitudin": [2, 50], "algorithmcar2xsend": 2, "dynamics_collis": 2, "dynamics_scenario": [2, 53], "dynamics_regulardriv": [2, 52], "limiteraccelerationvehiclecompon": 2, "openscenarioact": 2, "parameters_vehicl": 2, "vehicl": 2, "model": [2, 50], "relat": 2, "paramet": [2, 7, 44], "powertrain": 2, "steer": 2, "sensor_driv": [2, 54], "sensor_osi": 2, "sensorgeometric2d": [2, 56], "function": [2, 52], "case": 2, "visual": [2, 13, 30], "obstruct": 2, "sensorfusionosi": 2, "signalpriorit": 2, "componentcontrol": 2, "overview": [2, 33, 39, 47, 52], "state": 2, "handl": 2, "insid": 2, "signal": 2, "coordin": 3, "system": [3, 8, 16, 27], "world": [3, 9], "road": [3, 7, 9], "sensor": [3, 38], "convers": 3, "between": 3, "sensordata": 3, "eventdetector": 4, "collisiondetector": 4, "map": 5, "action": [5, 39], "acquirepositionact": [5, 39], "assignrouteact": 5, "customcommandact": 5, "followtrajectoryact": [5, 39], "lanechangeact": [5, 39], "lightstateact": 5, "speedact": [5, 39], "teleportact": [5, 39], "trafficsignalact": 5, "trafficsignalstateact": 5, "trafficsinkact": [5, 39], "visibilityact": 5, "command": [6, 21], "line": 6, "argument": 6, "schedul": 6, "phase": 6, "task": 6, "type": 6, "descript": [6, 49, 50], "prioriti": [6, 44], "spawner": [7, 42, 55], "featur": [7, 49, 50], "prerunspawn": [7, 55], "lane": [7, 9], "rang": 7, "non": 7, "exist": 7, "singl": 7, "consecut": 7, "across": 7, "junction": 7, "multipl": 7, "includ": 7, "id": [7, 10, 44], "specifi": 7, "overlap": 7, "stream": 7, "sstart": 7, "send": 7, "within": 7, "boundari": 7, "slength": 7, "outsid": 7, "right": 7, "onli": [7, 20, 39], "traffic": [7, 9], "separ": 7, "buffer": [7, 22], "collis": 7, "stochast": 7, "group": 7, "profil": 7, "veloc": 7, "distribut": 7, "tgap": 7, "runtimespawn": [7, 55], "drive": 7, "direct": 7, "structur": [8, 28], "parameter": [8, 45], "ssp": [8, 43, 56], "input": [8, 28, 33], "packag": [8, 17, 22], "ssd": 8, "definit": [8, 45], "implement": 8, "pars": 8, "osi": [8, 22], "connector": 8, "object": 8, "openpass": [8, 11, 14, 18, 43], "limit": 8, "output": [8, 26, 28, 33, 36, 45, 46], "folderstructur": 8, "writemessageparamet": 8, "world_osi": 9, "sampl": 9, "geometri": 9, "local": 9, "sequenc": 9, "sign": 9, "mark": 9, "trafficlight": 9, "getobstruct": 9, "support": [10, 40], "document": [11, 14], "concept": 11, "build": [11, 13, 17, 20, 21], "mechan": 11, "submodul": 11, "docker": 11, "imag": 11, "code": [12, 13], "guidelin": 12, "gener": [12, 20, 21, 26], "name": 12, "convent": 12, "clangformat": 12, "clangtidi": 12, "commit": 12, "messag": [12, 39], "header": 12, "file": [12, 45, 46], "inclus": 12, "work": 13, "studio": 13, "assumpt": 13, "instal": [13, 14, 17, 18, 20, 21], "set": [13, 26], "up": 13, "develop": [13, 14], "contain": 13, "introduct": 13, "devcontain": 13, "win_onli": 13, "msys2": 13, "path": [13, 17, 26], "kit": 13, "user": [13, 14], "c": [13, 22], "intellisens": 13, "cmake": [13, 21, 22], "debug": 13, "target": [13, 21], "troubleshoot": 13, "guid": 14, "advanc": 14, "topic": 14, "inform": [14, 22], "other": 14, "todolist": 14, "todo": [14, 58], "get": [15, 33], "start": [15, 28, 33], "requir": 16, "environ": [17, 42], "binari": [17, 22], "version": [17, 22], "git": 17, "ssh": 17, "depend": [17, 22, 56], "adjust": 17, "further": 19, "guidanc": 19, "custom": 19, "conan": 20, "addit": 20, "recip": 20, "creat": 20, "thirdparti": 20, "variabl": [21, 56], "option": 21, "see": 21, "also": 21, "cmake_prefix_path": 21, "cmake_install_prefix": 21, "cmake_with_debug_postix": 21, "cmake_build_typ": 21, "cmake_c_compil": 21, "cmake_cxx_compil": 21, "cmake_object_path_max": 21, "use_ccach": 21, "with_simcor": 21, "with_doc": 21, "with_api_doc": 21, "with_test": 21, "with_coverag": 21, "with_endtoend_test": 21, "openpass_adjust_output": 21, "with_protobuf_arena": 21, "install_system_runtime_dep": 21, "install_extra_runtime_dep": 21, "install_exampl": 21, "make": 21, "extern": 22, "gnu": 22, "compil": 22, "collect": 22, "gcc": 22, "hint": 22, "debugg": 22, "gdb": 22, "ccach": 22, "doxygen": 22, "boost": 22, "librari": 22, "googletest": 22, "sourc": 22, "open": 22, "interfac": 22, "protocol": 22, "protobuf": 22, "modelon": 22, "fmi": 22, "fmil": 22, "glossari": 23, "gui": 24, "plugin": 24, "licens": 25, "project": 26, "editor": 27, "pcm": [28, 29, 58], "variat": 28, "save": 28, "load": [28, 29, 31, 32], "experi": [28, 42], "folder": 28, "evalu": [29, 31, 32], "statist": 31, "timeplot": 32, "intend": 33, "audienc": 33, "workflow": 33, "primer": 33, "tutori": 34, "config": 35, "depth": [35, 36, 48], "profilescatalog": [38, 39, 42], "agentprofil": [38, 39], "systemprofil": 38, "profilegroup": 38, "driver": [38, 51], "vehiclecompon": [38, 56], "spawnerprofil": 38, "trafficrul": 38, "scenario": [39, 40, 42, 57], "parameterdeclar": 39, "catalog": 39, "vehiclecatalog": 39, "pedestriancatalog": 39, "roadnetwork": 39, "entiti": 39, "storyboard": 39, "init": 39, "stori": 39, "stoptrigg": 39, "current": 39, "restrict": [39, 41], "condit": 39, "followrouteact": 39, "setcomponentst": 39, "userdefinedact": 39, "defaultcustomcommandact": 39, "fmu_wrapp": 39, "osmp": 39, "api": 40, "igeometryhelp": 40, "ienviron": 40, "icoordconvert": 40, "ilanelocationqueryservic": 40, "icontrollerrepositori": 40, "ientiti": 40, "ivehicl": 40, "ipedestrian": 40, "istaticobject": 40, "ientityrepositori": 40, "sceneri": 41, "full": [41, 42], "simulationconfig": 42, "observ": 42, "static": 43, "systemconfig": 43, "connect": 43, "systemconfigblueprint": 44, "agentcompon": 44, "channel": 44, "observation_log": 45, "wildcard": 45, "logginggroup": 45, "simulationoutput": 45, "import": 45, "cyclic": 45, "cyclics_run_": 45, "observation_entityrepositori": 46, "parametr": 46, "repository_run_": 46, "csv": 46, "repository_persist": 46, "view": 48, "detail": [49, 50], "modul": [49, 50, 52, 54], "": [49, 50, 52], "later": [49, 51, 52, 53], "dynam": [49, 50, 52], "head": 49, "control": [49, 51], "deviat": 49, "invert": 50, "longitudin": [50, 51, 52, 53], "algorithm": 50, "optim": 50, "gear": 50, "determin": 50, "algorithmagentfollowingdrivermodel": 51, "updat": 52, "posit": 52, "defaultstrategi": 53, "keepveloc": 53, "keeplaneoffset": 53, "strategi": 53, "followvelocitysplin": 53, "performchangelan": 53, "followtrajectori": 53, "both": 53, "ownvehiclest": 54, "trafficruleinform": 54, "geometryinform": 54, "surroundingobject": 54, "trafficgroup": 55, "aeb": 56, "dynamicstrajectoryfollow": 56, "fmu": 56, "wrapper": 56, "write": 56, "readvalu": 56, "causal": 56, "receivercar2x": 56, "vehicledynam": 56, "actionsteeringsystem": 56, "actionpowertrain": 56, "actionbrakesystem": 56, "dynamicschassi": 56, "dynamicstiremodel": 56, "dynamicsmotionmodel": 56, "base": 57}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Simulator": [[0, "simulator"], [37, "simulator"]], "Agent Components": [[2, "agent-components"]], "Action_LongitudinalDriver": [[2, "action-longitudinaldriver"]], "Action_SecondaryDriver": [[2, "action-secondarydriver"]], "AgentUpdater": [[2, "agentupdater"]], "Algorithm_Lateral": [[2, "algorithm-lateral"], [49, "algorithm-lateral"]], "Algorithm_Longitudinal": [[2, "algorithm-longitudinal"], [50, "algorithm-longitudinal"]], "AlgorithmCar2XSender": [[2, "algorithmcar2xsender"]], "Dynamics_Collision": [[2, "dynamics-collision"]], "Dynamics_Scenario": [[2, "dynamics-scenario"], [53, "dynamics-scenario"]], "Dynamics_RegularDriving": [[2, "dynamics-regulardriving"], [52, "dynamics-regulardriving"]], "LimiterAccelerationVehicleComponents": [[2, "limiteraccelerationvehiclecomponents"]], "OpenScenarioActions": [[2, "openscenarioactions"]], "Parameters_Vehicle": [[2, "parameters-vehicle"]], "Vehicle model related parameters": [[2, "vehicle-model-related-parameters"]], "Powertrain related parameters": [[2, "powertrain-related-parameters"]], "Steering related parameters": [[2, "steering-related-parameters"]], "Sensor_Driver": [[2, "sensor-driver"], [54, "sensor-driver"]], "Sensor_OSI": [[2, "sensor-osi"]], "SensorGeometric2D": [[2, "sensorgeometric2d"], [56, "sensorgeometric2d"]], "Function": [[2, "function"]], "Cases": [[2, "cases"]], "Visual Obstruction": [[2, "visual-obstruction"]], "SensorFusionOSI": [[2, "sensorfusionosi"]], "SignalPrioritizer": [[2, "signalprioritizer"]], "ComponentController": [[2, "componentcontroller"]], "Overview": [[2, "overview"], [33, "overview"], [47, "overview"], [39, "overview"]], "State handling inside Vehicle Component": [[2, "state-handling-inside-vehicle-component"]], "Used signals": [[2, "used-signals"]], "Coordinate Systems": [[3, "coordinate-systems"]], "World Coordinate System": [[3, "world-coordinate-system"]], "Road Coordinate System": [[3, "road-coordinate-system"]], "Agent Coordinate System": [[3, "agent-coordinate-system"]], "Sensor Coordinate System": [[3, "sensor-coordinate-system"]], "Conversions between SensorData coordinate systems": [[3, "conversions-between-sensordata-coordinate-systems"]], "EventDetector": [[4, "eventdetector"]], "CollisionDetector": [[4, "collisiondetector"]], "Mapping of OpenSCENARIO Actions": [[5, "mapping-of-openscenario-actions"]], "AcquirePositionAction": [[5, "acquirepositionaction"], [39, "acquirepositionaction"]], "AssignRouteAction": [[5, "assignrouteaction"]], "CustomCommandAction": [[5, "customcommandaction"]], "FollowTrajectoryAction": [[5, "followtrajectoryaction"], [39, "followtrajectoryaction"]], "LaneChangeAction": [[5, "lanechangeaction"], [39, "lanechangeaction"]], "LightStateAction": [[5, "lightstateaction"], [5, "id1"]], "SpeedAction": [[5, "speedaction"], [39, "scenario-speedaction"]], "TeleportAction": [[5, "teleportaction"], [39, "scenario-teleportaction"]], "TrafficSignalAction": [[5, "trafficsignalaction"]], "TrafficSignalStateAction": [[5, "trafficsignalstateaction"]], "TrafficSinkAction": [[5, "trafficsinkaction"], [39, "trafficsinkaction"]], "VisibilityAction": [[5, "visibilityaction"]], "Simulation": [[6, "simulation"]], "Command Line Arguments": [[6, "command-line-arguments"]], "Scheduler": [[6, "scheduler"]], "Executing phases": [[6, "executing-phases"]], "Task type description": [[6, "task-type-description"]], "Task priorities": [[6, "task-priorities"]], "Spawner Features": [[7, "spawner-features"]], "PreRunSpawner": [[7, "prerunspawner"], [55, "prerunspawner"]], "Spawning on roads, lanes and ranges": [[7, "spawning-on-roads-lanes-and-ranges"], [7, "id2"]], "Non-existent roads": [[7, "non-existent-roads"], [7, "id3"]], "Single road": [[7, "single-road"], [7, "spawner-features-runtime-on-roads-single-road"]], "Consecutive roads": [[7, "consecutive-roads"]], "Non-consecutive roads": [[7, "non-consecutive-roads"]], "Roads across junction": [[7, "roads-across-junction"]], "Multiple roads (including non existent IDs)": [[7, "multiple-roads-including-non-existent-ids"], [7, "id5"]], "Specified lanes": [[7, "specified-lanes"], [7, "id6"]], "Multiple overlapping road streams": [[7, "multiple-overlapping-road-streams"]], "Spawning on range (SStart + SEnd within road boundaries)": [[7, "spawning-on-range-sstart-send-within-road-boundaries"]], "Spawning on range (SStart + SLength within road boundaries)": [[7, "spawning-on-range-sstart-slength-within-road-boundaries"]], "Spawning on range (SEnd outside of road boundaries)": [[7, "spawning-on-range-send-outside-of-road-boundaries"]], "Spawning on range (SLength outside of road boundaries)": [[7, "spawning-on-range-slength-outside-of-road-boundaries"]], "Right lane only": [[7, "right-lane-only"], [7, "id7"]], "Traffic parameters": [[7, "traffic-parameters"], [7, "id8"]], "Separation buffer specified": [[7, "separation-buffer-specified"], [7, "id9"]], "Separation buffer not specified": [[7, "separation-buffer-not-specified"], [7, "id10"]], "Time to collision": [[7, "time-to-collision"]], "Stochastics": [[7, "stochastics"], [7, "id11"]], "Traffic groups": [[7, "traffic-groups"], [7, "id12"]], "Agent profiles": [[7, "agent-profiles"], [7, "id13"]], "Velocity distribution": [[7, "velocity-distribution"], [7, "id14"]], "TGap distribution": [[7, "tgap-distribution"], [7, "id15"]], "RuntimeSpawner": [[7, "runtimespawner"], [55, "runtimespawner"]], "Driving direction": [[7, "driving-direction"]], "World_OSI": [[9, "world-osi"]], "Sampling of World Geometries": [[9, "sampling-of-world-geometries"]], "Localization": [[9, "localization"]], "Basics": [[9, "basics"]], "Localization Sequence": [[9, "localization-sequence"]], "Traffic Signs, Road Markings and TrafficLights": [[9, "traffic-signs-road-markings-and-trafficlights"]], "Lane Markings": [[9, "lane-markings"]], "GetObstruction": [[9, "getobstruction"]], "Prerequisites": [[13, "prerequisites"], [1, "prerequisites"]], "Working with Visual Studio Code": [[13, "working-with-visual-studio-code"]], "Assumptions": [[13, "assumptions"]], "Installation": [[13, "installation"]], "Set Up Development Containers in Visual Studio Code": [[13, "set-up-development-containers-in-visual-studio-code"]], "Introduction": [[13, "introduction"]], "DevContainers": [[13, "devcontainers"]], "Configuration": [[13, "configuration"]], "win_only MSYS2 Path": [[13, "win-only-msys2-path"]], "Build Kit": [[13, "build-kit"]], "User Settings": [[13, "user-settings"]], "C++ and IntelliSense": [[13, "c-and-intellisense"]], "Configure the Build": [[13, "configure-the-build"]], "CMake": [[13, null], [22, "cmake"]], "Debug Targets": [[13, "debug-targets"]], "Troubleshooting": [[13, "troubleshooting"]], "openPASS Documentation": [[14, "openpass-documentation"]], "Installation Guide": [[14, null]], "User Guides": [[14, null]], "Advanced topics": [[14, null]], "Developer Information": [[14, null]], "Other Information": [[14, null]], "Todolist": [[14, "todolist"]], "Todo": [[14, null], [58, "id1"]], "Getting Started": [[15, "getting-started"], [33, "getting-started"]], "System Requirements": [[16, "system-requirements"]], "Installing Prerequisites": [[17, "installing-prerequisites"]], "Installing the Build Environment": [[17, "installing-the-build-environment"]], "Installation Path": [[17, null]], "Installing the Binary Packages": [[17, "installing-the-binary-packages"]], "Versions": [[17, null]], "GIT/SSH": [[17, null]], "Installing the Dependencies": [[17, "installing-the-dependencies"]], "Adjustments": [[17, null]], "Installing openPASS": [[18, "installing-openpass"]], "CMake Variables and Options": [[21, "cmake-variables-and-options"]], "See also": [[21, null], [21, null]], "CMake Generator": [[21, "cmake-generator"]], "CMAKE_PREFIX_PATH": [[21, "cmake-prefix-path"]], "CMAKE_INSTALL_PREFIX": [[21, "cmake-install-prefix"]], "CMAKE_WITH_DEBUG_POSTIX": [[21, "cmake-with-debug-postix"]], "CMAKE_BUILD_TYPE": [[21, "cmake-build-type"]], "CMAKE_C_COMPILER": [[21, "cmake-c-compiler"]], "CMAKE_CXX_COMPILER": [[21, "cmake-cxx-compiler"]], "CMAKE_OBJECT_PATH_MAX": [[21, "cmake-object-path-max"]], "USE_CCACHE": [[21, "use-ccache"]], "WITH_SIMCORE": [[21, "with-simcore"]], "WITH_DOC": [[21, "with-doc"]], "WITH_API_DOC": [[21, "with-api-doc"]], "WITH_TESTS": [[21, "with-tests"]], "WITH_COVERAGE": [[21, "with-coverage"]], "WITH_ENDTOEND_TESTS": [[21, "with-endtoend-tests"]], "OPENPASS_ADJUST_OUTPUT": [[21, "openpass-adjust-output"]], "WITH_PROTOBUF_ARENA": [[21, "with-protobuf-arena"]], "INSTALL_SYSTEM_RUNTIME_DEPS": [[21, "install-system-runtime-deps"]], "INSTALL_EXTRA_RUNTIME_DEPS": [[21, "install-extra-runtime-deps"]], "INSTALL_EXAMPLES": [[21, "install-examples"]], "Make Targets/Commands": [[21, "make-targets-commands"]], "Build and Install": [[21, "build-and-install"]], "Executing Tests": [[21, "executing-tests"]], "External Dependencies": [[22, "external-dependencies"]], "Information on Binary Packages": [[22, "information-on-binary-packages"]], "GNU Compiler Collection (gcc)": [[22, "gnu-compiler-collection-gcc"]], "Useful hints": [[22, null], [22, null], [22, null]], "GNU Debugger (gdb)": [[22, "gnu-debugger-gdb"]], "Ccache": [[22, "ccache"]], "Doxygen": [[22, "doxygen"]], "Boost C++ Libraries": [[22, "boost-c-libraries"]], "Note on Versions": [[22, null], [22, null]], "googletest": [[22, "googletest"]], "Information on Source Packages": [[22, "information-on-source-packages"]], "Open Simulation Interface (OSI)": [[22, "open-simulation-interface-osi"]], "Protocol Buffers (protobuf)": [[22, "protocol-buffers-protobuf"]], "Modelon FMI Library (FMIL)": [[22, "modelon-fmi-library-fmil"]], "Glossary": [[23, "glossary"]], "GUI Plugins": [[24, "gui-plugins"]], "General": [[26, "general"], [12, "general"], [20, "general"]], "Project": [[26, "project"]], "Path Settings": [[26, "path-settings"]], "Simulation Output Settings": [[26, "simulation-output-settings"]], "System Editor": [[27, "system-editor"]], "PCM Evaluation": [[29, "pcm-evaluation"]], "Loading Results": [[29, "loading-results"], [31, "loading-results"], [32, "loading-results"]], "Evaluating Results": [[29, "evaluating-results"], [31, "evaluating-results"], [32, "evaluating-results"]], "Result Visualization": [[30, "result-visualization"]], "Statistics": [[31, "statistics"]], "TimePlot": [[32, "timeplot"]], "Outputs": [[33, "outputs"], [8, "outputs"]], "Intended Audience": [[33, "intended-audience"]], "Workflow": [[33, "workflow"]], "Primer": [[33, "primer"]], "Inputs": [[33, "inputs"]], "Tutorials": [[34, "tutorials"]], "Configs in Depth": [[35, "configs-in-depth"]], "Outputs in Depth": [[36, "outputs-in-depth"]], "Component View": [[48, "component-view"]], "Components in Depth": [[48, "components-in-depth"]], "Detailed description of the module\u2019s features": [[49, "detailed-description-of-the-module-s-features"], [50, "detailed-description-of-the-module-s-features"]], "Lateral dynamics": [[49, "lateral-dynamics"], [52, "lateral-dynamics"]], "Heading controller": [[49, "heading-controller"]], "Lateral deviation controller": [[49, "lateral-deviation-controller"]], "Inverted longitudinal dynamics model": [[50, "inverted-longitudinal-dynamics-model"]], "Algorithm for optimal gear determination": [[50, "algorithm-for-optimal-gear-determination"]], "Overview of the module\u2019s functionalities": [[52, "overview-of-the-module-s-functionalities"]], "Longitudinal dynamics": [[52, "longitudinal-dynamics"]], "Updating position": [[52, "updating-position"]], "DefaultStrategies": [[53, "defaultstrategies"]], "KeepVelocity - longitudinal": [[53, "keepvelocity-longitudinal"]], "KeepLaneOffset - lateral": [[53, "keeplaneoffset-lateral"]], "Strategies": [[53, "strategies"]], "FollowVelocitySpline - longitudinal": [[53, "followvelocityspline-longitudinal"]], "PerformChangeLane - lateral": [[53, "performchangelane-lateral"]], "FollowTrajectory - both": [[53, "followtrajectory-both"]], "Components of the module": [[54, "components-of-the-module"]], "OwnVehicleStates": [[54, "ownvehiclestates"]], "TrafficRuleInformation": [[54, "trafficruleinformation"]], "GeometryInformation": [[54, "geometryinformation"]], "SurroundingObjects": [[54, "surroundingobjects"]], "EndToEnd Test Framework": [[1, "endtoend-test-framework"]], "Execution": [[1, "execution"]], "Parallel Execution": [[1, "parallel-execution"]], "Test Configuration": [[1, "test-configuration"]], "Querying Results": [[1, "querying-results"]], "Basic Syntax": [[1, "basic-syntax"]], "Using Events in Filter": [[1, "using-events-in-filter"]], "Event Payload": [[1, "event-payload"]], "Query Example": [[1, "query-example"]], "Using OpenSCENARIO Events": [[1, "using-openscenario-events"]], "Querying Transitions": [[1, "querying-transitions"]], "Querying Spawning Time": [[1, "querying-spawning-time"]], "Explicit Datatypes": [[1, "explicit-datatypes"]], "Dev Notes": [[1, "dev-notes"]], "System Structure and Parameterization (SSP)": [[8, "system-structure-and-parameterization-ssp"]], "Inputs / SSP Structure": [[8, "inputs-ssp-structure"]], "System Structure Package SSP": [[8, "system-structure-package-ssp"]], "SSD - System Structure Definition": [[8, "ssd-system-structure-definition"]], "Implementation": [[8, "implementation"]], "Parsing": [[8, "parsing"]], "OSI Connectors": [[8, "osi-connectors"]], "Object Structure": [[8, "object-structure"]], "SSP and openPASS": [[8, "ssp-and-op"]], "Limits": [[8, "limits"]], "FolderStructure": [[8, "folderstructure"]], "WriteMessageParameters": [[8, "writemessageparameters"]], "IDE Support": [[10, "ide-support"]], "Documentation Concept": [[11, "documentation-concept"]], "Basic Build Mechanics": [[11, "basic-build-mechanics"]], "openPASS as Submodule": [[11, "openpass-as-submodule"]], "Docker Image": [[11, "docker-image"]], "Coding Guidelines": [[12, "coding-guidelines"]], "Naming Conventions": [[12, "naming-conventions"]], "ClangFormat": [[12, "clangformat"]], "ClangTidy": [[12, "clangtidy"]], "Commit Message Guidelines": [[12, "commit-message-guidelines"]], "Header File Inclusion": [[12, "header-file-inclusion"]], "Further Guidance": [[19, "further-guidance"]], "Customizing": [[19, null]], "Building with Conan": [[20, "building-with-conan"]], "Additional Prerequisites": [[20, "additional-prerequisites"]], "Conan Recipes": [[20, "conan-recipes"]], "Conan Create": [[20, "conan-create"]], "Conan Install": [[20, "conan-install"]], "Build only ThirdParties": [[20, "build-only-thirdparties"]], "License": [[25, "license"]], "PCM Simulation": [[28, "pcm-simulation"], [58, "pcm-simulation"]], "Simulation Input": [[28, "simulation-input"]], "Simulation Output": [[28, "simulation-output"]], "Simulation Configuration": [[28, "simulation-configuration"]], "Variation": [[28, "variation"]], "Simulation Start": [[28, "simulation-start"]], "Save / Load Experiment": [[28, "save-load-experiment"]], "Result Folder Structure": [[28, "result-folder-structure"]], "ProfilesCatalog": [[38, "profilescatalog"], [42, "profilescatalog"]], "AgentProfiles": [[38, "agentprofiles"]], "Example": [[38, "example"], [43, "example"], [43, "id1"]], "SystemProfiles": [[38, "systemprofiles"]], "Components": [[38, "components"]], "Sensors": [[38, "sensors"]], "ProfileGroups": [[38, "profilegroups"]], "Driver ProfileGroup": [[38, "driver-profilegroup"]], "VehicleComponent ProfileGroups": [[38, "vehiclecomponent-profilegroups"]], "SpawnerProfile ProfileGroup": [[38, "spawnerprofile-profilegroup"]], "TrafficRules ProfileGroup": [[38, "trafficrules-profilegroup"]], "Scenario": [[39, "scenario"], [42, "scenario"]], "ParameterDeclarations": [[39, "parameterdeclarations"]], "Catalogs": [[39, "catalogs"]], "VehicleCatalog": [[39, "vehiclecatalog"]], "PedestrianCatalog": [[39, "pedestriancatalog"]], "RoadNetwork": [[39, "roadnetwork"]], "Entities": [[39, "entities"]], "AgentProfile and ProfilesCatalog": [[39, null]], "Storyboard": [[39, "storyboard"]], "Init": [[39, "init"]], "Story": [[39, "story"]], "StopTrigger": [[39, "stoptrigger"]], "Current Restrictions": [[39, "current-restrictions"]], "Conditions": [[39, "conditions"]], "Actions": [[39, "actions"]], "FollowRouteAction": [[39, "scenario-followrouteaction"]], "SetComponentState (UserDefinedAction)": [[39, "setcomponentstate-userdefinedaction"]], "DefaultCustomCommandAction (UserDefinedAction)": [[39, "defaultcustomcommandaction-userdefinedaction"]], "FMU_Wrapper component for OSMP messages only": [[39, null]], "Scenario API Support": [[40, "scenario-api-support"]], "IGeometryHelper": [[40, "igeometryhelper"]], "IEnvironment": [[40, "ienvironment"]], "ICoordConverter": [[40, "icoordconverter"]], "ILaneLocationQueryService": [[40, "ilanelocationqueryservice"]], "IControllerRepository": [[40, "icontrollerrepository"]], "IEntity": [[40, "ientity"]], "IVehicle": [[40, "ivehicle"]], "IPedestrian": [[40, "ipedestrian"]], "IStaticObject": [[40, "istaticobject"]], "IEntityRepository": [[40, "ientityrepository"]], "Scenery": [[41, "scenery"]], "Restrictions": [[41, "restrictions"]], "Full Example": [[41, "full-example"], [42, "full-example"]], "SimulationConfig": [[42, "simulationconfig"]], "Experiment": [[42, "experiment"]], "Environment": [[42, "environment"]], "Observations": [[42, "observations"]], "Spawners": [[42, "spawners"]], "Static SystemConfig": [[43, "static-systemconfig"]], "SSP": [[43, "ssp"], [56, "ssp"]], "Connecting SSP with OpenPass": [[43, "connecting-ssp-with-openpass"]], "SystemConfigBlueprint": [[44, "systemconfigblueprint"]], "AgentComponents": [[44, "agentcomponents"]], "Priorities": [[44, "priorities"]], "Channel-Ids": [[44, "channel-ids"]], "Parameters": [[44, "parameters"]], "Observation_Log": [[45, "observation-log"]], "Parameterization": [[45, "parameterization"]], "Wildcards in LoggingGroup definitions": [[45, null]], "Output Files": [[45, "output-files"], [46, "output-files"]], "SimulationOutput": [[45, "simulationoutput"]], "Events": [[45, "events"]], "Important Events": [[45, "important-events"]], "Agents": [[45, "agents"]], "Cyclics": [[45, "cyclics"]], "Cyclics_Run_###": [[45, "cyclics-run"]], "Observation_EntityRepository": [[46, "observation-entityrepository"]], "Parametrization": [[46, "parametrization"]], "Repository_Run_###.csv": [[46, "repository-run-csv"]], "Repository_Persistent.csv": [[46, "repository-persistent-csv"]], "Driver": [[51, "driver"]], "AlgorithmAgentFollowingDriverModel": [[51, "algorithmagentfollowingdrivermodel"]], "Lateral control": [[51, "lateral-control"]], "Longitudinal control": [[51, "longitudinal-control"]], "Spawner": [[55, "spawner"]], "TrafficGroups": [[55, "trafficgroups"]], "VehicleComponents": [[56, "vehiclecomponents"]], "AEB": [[56, "aeb"]], "DynamicsTrajectoryFollower": [[56, "dynamicstrajectoryfollower"]], "FMU Wrapper": [[56, "fmu-wrapper"]], "Write- and ReadValues depending on variability and causality": [[56, "id1"]], "ReceiverCar2X": [[56, "receivercar2x"]], "VehicleDynamics": [[56, "vehicledynamics"]], "ActionSteeringSystem": [[56, "actionsteeringsystem"]], "ActionPowertrain": [[56, "actionpowertrain"]], "ActionBrakeSystem": [[56, "actionbrakesystem"]], "DynamicsChassis": [[56, "dynamicschassis"]], "DynamicsTireModel": [[56, "dynamicstiremodel"]], "DynamicsMotionModel": [[56, "dynamicsmotionmodel"]], "Scenario-based simulation": [[57, "scenario-based-simulation"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/content/html/user_guide/10_overview.html b/content/html/user_guide/10_overview.html index ab1ccb6a97ddec9a12af6539f64bf935a08771c8..dbc71f2864277992776866f41cefd774f52789d3 100644 --- a/content/html/user_guide/10_overview.html +++ b/content/html/user_guide/10_overview.html @@ -1,328 +1,329 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Overview — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="Tutorials" href="20_tutorials.html" /> - <link rel="prev" title="Building with Conan" href="../installation_guide/60_conan.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Overview</a><ul> -<li class="toctree-l2"><a class="reference internal" href="#getting-started">Getting Started</a></li> -<li class="toctree-l2"><a class="reference internal" href="#intended-audience">Intended Audience</a></li> -<li class="toctree-l2"><a class="reference internal" href="#workflow">Workflow</a></li> -<li class="toctree-l2"><a class="reference internal" href="#primer">Primer</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#inputs">Inputs</a></li> -<li class="toctree-l3"><a class="reference internal" href="#outputs">Outputs</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Overview</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/user_guide/10_overview.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="overview"> -<span id="user-guide-overview"></span><h1>Overview<a class="headerlink" href="#overview" title="Link to this heading">ïƒ</a></h1> -<p>openPASS is an open-source software, which is continuously being improved by stakeholders of the openPASS working group: <strong>openPASS</strong> (Open Source) (<a class="reference external" href="https://openpass.eclipse.org/">https://openpass.eclipse.org/</a>) -openPASS can simulate traffic situations with the goal of predicting and evaluating the safety of driver assistance systems, more specifically ADAS (Advanced Driving Assistance Systems) or AD functions. Its main use-cases are PCM-(PreCrash Matrix), and scenario-based simulations. -Let’s have a look at what that means:</p> -<a class="reference internal image-reference" href="../_images/crash-scenario.png"><img alt="../_images/crash-scenario.png" class="align-center" src="../_images/crash-scenario.png" style="width: 600px;" /></a> -<ol class="arabic simple"> -<li><p>PCM Simulations: “Crash re-simulationsâ€</p></li> -</ol> -<blockquote> -<div><ul class="simple"> -<li><p>PCM of GIDAS: PreCrash Matrix from the database of the German In-Depth Accident Study</p></li> -<li><p>Re simulate real crashes from the past, but with cars having ADAS or AD functions and asses if the tested technology would have improved the safety.</p></li> -</ul> -</div></blockquote> -<ol class="arabic simple" start="2"> -<li><p>(Traffic-)scenario based simulations</p></li> -</ol> -<blockquote> -<div><ul class="simple"> -<li><p>This is the most common use-case for openPASS.</p></li> -<li><p>Enables simulation of whole traffic scenarios. That includes stochastic variation of those scenarios, intervention through detection of events and triggered actions and much more.</p></li> -<li><p>To get a better understanding about how these simulations are performed, please look at the scenario-based simulation tutorial.</p></li> -</ul> -</div></blockquote> -<p>For beginners, this presentation gives more illustrations and background about openPASS: <a class="reference external" href="https://openpass.eclipse.org/target_objectives/openPASS_at_a_glance.pdf">https://openpass.eclipse.org/target_objectives/openPASS_at_a_glance.pdf</a></p> -<section id="getting-started"> -<h2>Getting Started<a class="headerlink" href="#getting-started" title="Link to this heading">ïƒ</a></h2> -<p>This chapter provides insights on openPASS and how to work with the simulation. -The following step-by-step guides are included to guide you through your first simulations with openPASS:</p> -<blockquote> -<div><ul class="simple"> -<li><p>Scenario-based Simulation: traffic simulation based on <a class="reference external" href="https://www.asam.net/standards/detail/openscenario/">OpenSCENARIO</a> description</p></li> -<li><p>PCM Simulation: crash re-simulation based on GIDAS record</p></li> -</ul> -</div></blockquote> -<p>In particular, it is presented how to go through the required steps until a simulation can be run successfully. -To enhance the guiding, there are going to be examples in every section. -It is important to mention that openPASS is still in progress and e. g. some plugins and options have not been fully implemented yet.</p> -</section> -<section id="intended-audience"> -<h2>Intended Audience<a class="headerlink" href="#intended-audience" title="Link to this heading">ïƒ</a></h2> -<p>This manual serves as an entry point for users who have an operational simulator at hand (see <a class="reference internal" href="../installation_guide/10_getting_started.html#sim-install-guide"><span class="std std-ref">Getting Started</span></a>) and want to carry out (first) experiments at the invocation level (<em>GUI-less mode</em>). -In this sense, it primarily tackles how input-sets are composed, their interdependencies and, finally, the generated outputs.</p> -<figure class="align-default" id="id2"> -<img alt="../_images/workflow.png" src="../_images/workflow.png" /> -<figcaption> -<p><span class="caption-text"><strong>openPASS</strong> Workflow</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>This image shows the <em>GUI-less</em> workflow, starting with the input-set, bundled together in a folder typically named <code class="docutils literal notranslate"><span class="pre">configs</span></code>. -The <code class="docutils literal notranslate"><span class="pre">core</span></code>, executed manually by the experimenter, processes these configs and generates an (configurable) output-set typically placed in a folder named <code class="docutils literal notranslate"><span class="pre">results</span></code>. -Thereby, the <strong>Simulation Output</strong> is again a set of files.</p> -</section> -<section id="workflow"> -<h2>Workflow<a class="headerlink" href="#workflow" title="Link to this heading">ïƒ</a></h2> -<p>A typical workflow can be:</p> -<blockquote> -<div><ol class="arabic simple"> -<li><p>Configure systems and agents</p></li> -<li><p>Configure the simulation</p></li> -<li><p>Run the simulation</p></li> -<li><p>Evaluate the simulation results</p></li> -<li><p>Close the loop by continuing with your next simulation</p></li> -</ol> -</div></blockquote> -</section> -<section id="primer"> -<span id="id1"></span><h2>Primer<a class="headerlink" href="#primer" title="Link to this heading">ïƒ</a></h2> -<p>In the following the input and output sets are described with respect to the intended audience. -For detailed information please refer to the “in-depth†documentation of the individual files.</p> -<section id="inputs"> -<h3>Inputs<a class="headerlink" href="#inputs" title="Link to this heading">ïƒ</a></h3> -<p>The input is focused around the files presented in the following chart, which depticts the information flow between the files:</p> -<figure class="align-default"> -<img alt="../_images/overview-configs.png" src="../_images/overview-configs.png" /> -</figure> -<p>In the following list, those files are discussed further and listed with decreasing importance for the current audience.</p> -<ul> -<li><p><strong>Scenario</strong></p> -<p>This file describes the overall situation in terms of the <strong>ASAM OpenSCENARIO 1.0</strong> standard. -This includes placement of cars, the story (what happens when), how long the simulation will run.</p> -<p>On top it contains links to additionally needed files, where the following might need modification with respect to the current audience:</p> -<ul> -<li><p><strong>Scenery</strong> (<code class="docutils literal notranslate"><span class="pre">*.xosc</span></code>)</p> -<p>The <strong>scenery</strong> file describes the world in which the experiment runs. -As such, it contains the description of the road network and any static object, such as a highway, a parking lot, or traffic signs and obstacles. -It follows the <strong>ASAM OpenDRIVE 1.6</strong> standard.</p> -</li> -<li><p><strong>ProfilesCatalog</strong> (<code class="docutils literal notranslate"><span class="pre">*.xml</span></code>)</p></li> -</ul> -<blockquote> -<div><p>This catalog is the probabilistic heart of the simulation as it describes the composition of various simulation components and entities, using both, deterministic and stochastic definitions. -The ProfilesCatalog defines which of the available components are actually existing in the simulation: -That includes vehicles (from the <code class="docutils literal notranslate"><span class="pre">VehicleModelCatalog.xosc</span></code>), pedestrians (from the <code class="docutils literal notranslate"><span class="pre">PedestrianModelCatalog.xosc</span></code>), but also components like sensors, driver assistance systems or driver models being used. -A Profile provides, for example, information about which components are generally available in an agent (vehicle with driver) and how likely it is that they are actually existent. -Such components could be ADAS sensors, which means that they are parametrized in this section as well. -On the implementation level, a Profile is a set of parameters which will be provided to the instantiated components of an agent or to a simulation core component, e.g. Spawner. -For every parameterizable component an associated ProfileGroup contains one or more Profiles, from which one will be selected based on the given probabilities.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>As <strong>OpenSCENARIO</strong> does not support probabilities (yet), this file is not conform to the standard.</p> -</div> -</div></blockquote> -<ul> -<li><p><strong>VehicleCatalog</strong> and <strong>PedestrianCatalog</strong>: (<code class="docutils literal notranslate"><span class="pre">*.xosc</span></code>)</p> -<p>These catalogs, also based on <strong>OpenSCENARIO</strong>, describes the physical parameters of available vehicles or pedestrians, respectively.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Historically, the referenced files carry the word <em>Model</em> in the filename: <code class="docutils literal notranslate"><span class="pre">VehicleModelsCatalog.xosc</span></code> and <code class="docutils literal notranslate"><span class="pre">PedestrianModelsCatalog.xosc</span></code></p> -</div> -</li> -</ul> -</li> -<li><p><strong>SimulationConfig</strong> (<code class="docutils literal notranslate"><span class="pre">simulationConfig.xml</span></code>)</p> -<p>This is the entry point for the simulation, containing the setup of the core, such as active observers, reference to the scenario, the initial random seed, and the number or invocations.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>This file is normally of limited interest. -Yet, some variations, such as <em>environmental conditions</em> are historically placed in here and not in the scenario description. -It is therefore recommended to study the contents of this file.</p> -</div> -</li> -<li><p><strong>SystemConfigBlueprint</strong> (<code class="docutils literal notranslate"><span class="pre">systemConfigBlueprint.xml</span></code>)</p> -<p>This file is contains a superset of all possible <em>components</em> and their valid connections. -Such components can be lateral and longitudinal controllers, assistance systems, prioritizers, driver models, and so on. -Depending on the configured profiles and their probabilities, the core picks a subset of components to create one complete <em>system</em>.</p> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>This file should not be changed without the proper (developer) expertise.</p> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Instead of using an overall blueprint, concrete (static) systems can be specified using the same format. -These files are simply referred to as <code class="docutils literal notranslate"><span class="pre">SystemConfig</span></code> files.</p> -</div> -</li> -</ul> -<p>Some components need their own input files (e.g. a configuration). -It is convention to put these files also into the <code class="docutils literal notranslate"><span class="pre">configs</span></code> folder, which is internally provided as path to the components. -This helps to keep experiments separated.</p> -</section> -<section id="outputs"> -<h3>Outputs<a class="headerlink" href="#outputs" title="Link to this heading">ïƒ</a></h3> -<p>Outputs are generated by individual observers, configured by the <strong>SimulationConfig</strong>, and collected within the folder <cite>results</cite>. -This section describes the output files by the <a class="reference internal" href="outputs/observation_log.html#observation-log"><span class="std std-ref">Observation_Log</span></a>, as configured by the provided example configurations.</p> -<p>Please refer to the documentation of the individual observers and files for more details.</p> -<ul> -<li><p><strong>Simulation Output</strong> (<code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>)</p> -<p>This file acts as central entry point for further evaluation, such as the visualization. -It contains central information about all executed invocations within an experiment, such as the executed scenario and the run results, which can be seen as current values from the random sampling of the given probabilities. -As such, each run result contains, a list of participating moving entities (also referred to as agents), events related to the entities, such as collisions or activation of ADAS’s, and a reference to the <em>cyclics file</em>.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>This file <strong>does not</strong> contain information about the actual position of agents.</p> -</div> -</li> -<li><p><strong>Cyclic Output</strong> (<code class="docutils literal notranslate"><span class="pre">Cyclics_Run_###.csv</span></code>)</p> -<p>This file contains the ground truth information for each agent at each time step. -For each invocation, a new file is generated (starting with <code class="docutils literal notranslate"><span class="pre">Cyclics_Run_000.csv</span></code> and referenced in the according run results in the <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>This file <strong>does not</strong> contain information about the interaction between agents.</p> -</div> -</li> -</ul> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The core generates a file called <code class="docutils literal notranslate"><span class="pre">opSimulation.log</span></code> at the execution path, which logs errors and warnings. -If the simulation behaves strange or did not produce any output, check this file.</p> -</div> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../installation_guide/60_conan.html" class="btn btn-neutral float-left" title="Building with Conan" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="20_tutorials.html" class="btn btn-neutral float-right" title="Tutorials" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Overview — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Tutorials" href="20_tutorials.html" /> + <link rel="prev" title="Building with Conan" href="../installation_guide/60_conan.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Overview</a><ul> +<li class="toctree-l2"><a class="reference internal" href="#getting-started">Getting Started</a></li> +<li class="toctree-l2"><a class="reference internal" href="#intended-audience">Intended Audience</a></li> +<li class="toctree-l2"><a class="reference internal" href="#workflow">Workflow</a></li> +<li class="toctree-l2"><a class="reference internal" href="#primer">Primer</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#inputs">Inputs</a></li> +<li class="toctree-l3"><a class="reference internal" href="#outputs">Outputs</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Overview</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/user_guide/10_overview.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="overview"> +<span id="user-guide-overview"></span><h1>Overview<a class="headerlink" href="#overview" title="Link to this heading">ïƒ</a></h1> +<p>openPASS is an open-source software, which is continuously being improved by stakeholders of the openPASS working group: <strong>openPASS</strong> (Open Source) (<a class="reference external" href="https://openpass.eclipse.org/">https://openpass.eclipse.org/</a>) +openPASS can simulate traffic situations with the goal of predicting and evaluating the safety of driver assistance systems, more specifically ADAS (Advanced Driving Assistance Systems) or AD functions. Its main use-cases are PCM-(PreCrash Matrix), and scenario-based simulations. +Let’s have a look at what that means:</p> +<a class="reference internal image-reference" href="../_images/crash-scenario.png"><img alt="../_images/crash-scenario.png" class="align-center" src="../_images/crash-scenario.png" style="width: 600px;" /></a> +<ol class="arabic simple"> +<li><p>PCM Simulations: “Crash re-simulationsâ€</p></li> +</ol> +<blockquote> +<div><ul class="simple"> +<li><p>PCM of GIDAS: PreCrash Matrix with trajectories from the database of the German In-Depth Accident Study</p></li> +<li><p>Re-simulate real crashes from the past, but with cars having ADAS or AD functions and assess if the tested technology would have improved the safety.</p></li> +</ul> +</div></blockquote> +<ol class="arabic simple" start="2"> +<li><p>(Traffic-)scenario based simulations</p></li> +</ol> +<blockquote> +<div><ul class="simple"> +<li><p>This is the most common use-case for openPASS.</p></li> +<li><p>Enables simulation of whole traffic scenarios. That includes stochastic variation of those scenarios, intervention through detection of events and triggered actions and much more.</p></li> +<li><p>To get a better understanding about how these simulations are performed, please look at the scenario-based simulation tutorial.</p></li> +</ul> +</div></blockquote> +<p>For beginners, this presentation gives more illustrations and background about openPASS: <a class="reference external" href="https://openpass.eclipse.org/target_objectives/openPASS_at_a_glance.pdf">https://openpass.eclipse.org/target_objectives/openPASS_at_a_glance.pdf</a></p> +<section id="getting-started"> +<h2>Getting Started<a class="headerlink" href="#getting-started" title="Link to this heading">ïƒ</a></h2> +<p>This chapter provides insights on openPASS and how to work with the simulation. +The following step-by-step guides are included to guide you through your first simulations with openPASS:</p> +<blockquote> +<div><ul class="simple"> +<li><p>Scenario-based Simulation: traffic simulation based on <a class="reference external" href="https://www.asam.net/standards/detail/openscenario/">OpenSCENARIO</a> description</p></li> +<li><p>PCM Simulation: crash re-simulation based on GIDAS record</p></li> +</ul> +</div></blockquote> +<p>In particular, it is presented how to go through the required steps until a simulation can be run successfully. +To enhance the guiding, there are going to be examples in every section. +It is important to mention that openPASS is still in progress and e. g. some plugins and options have not been fully implemented yet.</p> +</section> +<section id="intended-audience"> +<h2>Intended Audience<a class="headerlink" href="#intended-audience" title="Link to this heading">ïƒ</a></h2> +<p>This manual serves as an entry point for users who have an operational simulator at hand (see <a class="reference internal" href="../installation_guide/10_getting_started.html#sim-install-guide"><span class="std std-ref">Getting Started</span></a>) and want to carry out (first) experiments at the invocation level (<em>GUI-less mode</em>). +In this sense, it primarily tackles how input-sets are composed, their interdependencies and, finally, the generated outputs.</p> +<figure class="align-default" id="id2"> +<img alt="../_images/workflow.png" src="../_images/workflow.png" /> +<figcaption> +<p><span class="caption-text"><strong>openPASS</strong> Workflow</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>This image shows the <em>GUI-less</em> workflow, starting with the input-set, bundled together in a folder typically named <code class="docutils literal notranslate"><span class="pre">configs</span></code>. +The <code class="docutils literal notranslate"><span class="pre">core</span></code>, executed manually by the experimenter, processes these configs and generates an (configurable) output-set typically placed in a folder named <code class="docutils literal notranslate"><span class="pre">results</span></code>. +Thereby, the <strong>Simulation Output</strong> is again a set of files.</p> +</section> +<section id="workflow"> +<h2>Workflow<a class="headerlink" href="#workflow" title="Link to this heading">ïƒ</a></h2> +<p>A typical workflow can be:</p> +<blockquote> +<div><ol class="arabic simple"> +<li><p>Configure systems and agents</p></li> +<li><p>Configure the simulation</p></li> +<li><p>Run the simulation</p></li> +<li><p>Evaluate the simulation results</p></li> +<li><p>Close the loop by continuing with your next simulation</p></li> +</ol> +</div></blockquote> +</section> +<section id="primer"> +<span id="id1"></span><h2>Primer<a class="headerlink" href="#primer" title="Link to this heading">ïƒ</a></h2> +<p>In the following the input and output sets are described with respect to the intended audience. +For detailed information please refer to the “in-depth†documentation of the individual files.</p> +<section id="inputs"> +<h3>Inputs<a class="headerlink" href="#inputs" title="Link to this heading">ïƒ</a></h3> +<p>The input is focused around the files presented in the following chart, which depticts the information flow between the files:</p> +<figure class="align-default"> +<img alt="../_images/overview-configs.png" src="../_images/overview-configs.png" /> +</figure> +<p>In the following list, those files are discussed further and listed with decreasing importance for the current audience.</p> +<ul> +<li><p><strong>Scenario</strong></p> +<p>This file describes the overall situation in terms of the <strong>ASAM OpenSCENARIO 1.0</strong> standard. +This includes placement of cars, the story (what happens when), how long the simulation will run.</p> +<p>On top it contains links to additionally needed files, where the following might need modification with respect to the current audience:</p> +<ul> +<li><p><strong>Scenery</strong> (<code class="docutils literal notranslate"><span class="pre">*.xosc</span></code>)</p> +<p>The <strong>scenery</strong> file describes the world in which the experiment runs. +As such, it contains the description of the road network and any static object, such as a highway, a parking lot, or traffic signs and obstacles. +It follows the <strong>ASAM OpenDRIVE 1.6</strong> standard.</p> +</li> +<li><p><strong>ProfilesCatalog</strong> (<code class="docutils literal notranslate"><span class="pre">*.xml</span></code>)</p></li> +</ul> +<blockquote> +<div><p>This catalog is the probabilistic heart of the simulation as it describes the composition of various simulation components and entities, using both, deterministic and stochastic definitions. +The ProfilesCatalog defines which of the available components are actually existing in the simulation: +That includes vehicles (from the <code class="docutils literal notranslate"><span class="pre">VehicleModelCatalog.xosc</span></code>), pedestrians (from the <code class="docutils literal notranslate"><span class="pre">PedestrianModelCatalog.xosc</span></code>), but also components like sensors, driver assistance systems or driver models being used. +A Profile provides, for example, information about which components are generally available in an agent (vehicle with driver) and how likely it is that they are actually existent. +Such components could be ADAS sensors, which means that they are parametrized in this section as well. +On the implementation level, a Profile is a set of parameters which will be provided to the instantiated components of an agent or to a simulation core component, e.g. Spawner. +For every parameterizable component an associated ProfileGroup contains one or more Profiles, from which one will be selected based on the given probabilities.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>As <strong>OpenSCENARIO</strong> does not support probabilities (yet), this file is not conform to the standard.</p> +</div> +</div></blockquote> +<ul> +<li><p><strong>VehicleCatalog</strong> and <strong>PedestrianCatalog</strong>: (<code class="docutils literal notranslate"><span class="pre">*.xosc</span></code>)</p> +<p>These catalogs, also based on <strong>OpenSCENARIO</strong>, describes the physical parameters of available vehicles or pedestrians, respectively.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Historically, the referenced files carry the word <em>Model</em> in the filename: <code class="docutils literal notranslate"><span class="pre">VehicleModelsCatalog.xosc</span></code> and <code class="docutils literal notranslate"><span class="pre">PedestrianModelsCatalog.xosc</span></code></p> +</div> +</li> +</ul> +</li> +<li><p><strong>SimulationConfig</strong> (<code class="docutils literal notranslate"><span class="pre">simulationConfig.xml</span></code>)</p> +<p>This is the entry point for the simulation, containing the setup of the core, such as active observers, reference to the scenario, the initial random seed, and the number or invocations.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>This file is normally of limited interest. +Yet, some variations, such as <em>environmental conditions</em> are historically placed in here and not in the scenario description. +It is therefore recommended to study the contents of this file.</p> +</div> +</li> +<li><p><strong>SystemConfigBlueprint</strong> (<code class="docutils literal notranslate"><span class="pre">systemConfigBlueprint.xml</span></code>)</p> +<p>This file is contains a superset of all possible <em>components</em> and their valid connections. +Such components can be lateral and longitudinal controllers, assistance systems, prioritizers, driver models, and so on. +Depending on the configured profiles and their probabilities, the core picks a subset of components to create one complete <em>system</em>.</p> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>This file should not be changed without the proper (developer) expertise.</p> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Instead of using an overall blueprint, concrete (static) systems can be specified using the same format. +These files are simply referred to as <code class="docutils literal notranslate"><span class="pre">SystemConfig</span></code> files.</p> +</div> +</li> +</ul> +<p>Some components need their own input files (e.g. a configuration). +It is convention to put these files also into the <code class="docutils literal notranslate"><span class="pre">configs</span></code> folder, which is internally provided as path to the components. +This helps to keep experiments separated.</p> +</section> +<section id="outputs"> +<h3>Outputs<a class="headerlink" href="#outputs" title="Link to this heading">ïƒ</a></h3> +<p>Outputs are generated by individual observers, configured by the <strong>SimulationConfig</strong>, and collected within the folder <cite>results</cite>. +This section describes the output files by the <a class="reference internal" href="outputs/observation_log.html#observation-log"><span class="std std-ref">Observation_Log</span></a>, as configured by the provided example configurations.</p> +<p>Please refer to the documentation of the individual observers and files for more details.</p> +<ul> +<li><p><strong>Simulation Output</strong> (<code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>)</p> +<p>This file acts as central entry point for further evaluation, such as the visualization. +It contains central information about all executed invocations within an experiment, such as the executed scenario and the run results, which can be seen as current values from the random sampling of the given probabilities. +As such, each run result contains, a list of participating moving entities (also referred to as agents), events related to the entities, such as collisions or activation of ADAS’s, and a reference to the <em>cyclics file</em>.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>This file <strong>does not</strong> contain information about the actual position of agents.</p> +</div> +</li> +<li><p><strong>Cyclic Output</strong> (<code class="docutils literal notranslate"><span class="pre">Cyclics_Run_###.csv</span></code>)</p> +<p>This file contains the ground truth information for each agent at each time step. +For each invocation, a new file is generated (starting with <code class="docutils literal notranslate"><span class="pre">Cyclics_Run_000.csv</span></code> and referenced in the according run results in the <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>This file <strong>does not</strong> contain information about the interaction between agents.</p> +</div> +</li> +</ul> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The core generates a file called <code class="docutils literal notranslate"><span class="pre">opSimulation.log</span></code> at the execution path, which logs errors and warnings. +If the simulation behaves strange or did not produce any output, check this file.</p> +</div> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../installation_guide/60_conan.html" class="btn btn-neutral float-left" title="Building with Conan" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="20_tutorials.html" class="btn btn-neutral float-right" title="Tutorials" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/20_tutorials.html b/content/html/user_guide/20_tutorials.html index 888874ae822a31a6490bccc4314ce047c1126aa6..decc5347536833435c72928b300455f4ad7fd490 100644 --- a/content/html/user_guide/20_tutorials.html +++ b/content/html/user_guide/20_tutorials.html @@ -1,157 +1,158 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Tutorials — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="Scenario-based simulation" href="tutorials/10_scenario_simulation.html" /> - <link rel="prev" title="Overview" href="10_overview.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_overview.html">Overview</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Tutorials</a><ul> -<li class="toctree-l2"><a class="reference internal" href="tutorials/10_scenario_simulation.html">Scenario-based simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="tutorials/20_pcm_simulation.html">PCM Simulation</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Tutorials</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/user_guide/20_tutorials.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="tutorials"> -<span id="id1"></span><h1>Tutorials<a class="headerlink" href="#tutorials" title="Link to this heading">ïƒ</a></h1> -<div class="toctree-wrapper compound"> -<ul> -<li class="toctree-l1"><a class="reference internal" href="tutorials/10_scenario_simulation.html">Scenario-based simulation</a></li> -<li class="toctree-l1"><a class="reference internal" href="tutorials/20_pcm_simulation.html">PCM Simulation</a></li> -</ul> -</div> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="10_overview.html" class="btn btn-neutral float-left" title="Overview" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="tutorials/10_scenario_simulation.html" class="btn btn-neutral float-right" title="Scenario-based simulation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Tutorials — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Scenario-based simulation" href="tutorials/10_scenario_simulation.html" /> + <link rel="prev" title="Overview" href="10_overview.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_overview.html">Overview</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Tutorials</a><ul> +<li class="toctree-l2"><a class="reference internal" href="tutorials/10_scenario_simulation.html">Scenario-based simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="tutorials/20_pcm_simulation.html">PCM Simulation</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Tutorials</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/user_guide/20_tutorials.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="tutorials"> +<span id="id1"></span><h1>Tutorials<a class="headerlink" href="#tutorials" title="Link to this heading">ïƒ</a></h1> +<div class="toctree-wrapper compound"> +<ul> +<li class="toctree-l1"><a class="reference internal" href="tutorials/10_scenario_simulation.html">Scenario-based simulation</a></li> +<li class="toctree-l1"><a class="reference internal" href="tutorials/20_pcm_simulation.html">PCM Simulation</a></li> +</ul> +</div> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="10_overview.html" class="btn btn-neutral float-left" title="Overview" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="tutorials/10_scenario_simulation.html" class="btn btn-neutral float-right" title="Scenario-based simulation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/30_configs_in_depth.html b/content/html/user_guide/30_configs_in_depth.html index dd06e1618e5180c0ef100f3cae64958061eb25f9..e3eb3edfafa7bac32a214529357b4569e0896ee1 100644 --- a/content/html/user_guide/30_configs_in_depth.html +++ b/content/html/user_guide/30_configs_in_depth.html @@ -1,169 +1,170 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Configs in Depth — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="ProfilesCatalog" href="configs/profilescatalog.html" /> - <link rel="prev" title="PCM Simulation" href="tutorials/20_pcm_simulation.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Configs in Depth</a><ul> -<li class="toctree-l2"><a class="reference internal" href="configs/profilescatalog.html">ProfilesCatalog</a></li> -<li class="toctree-l2"><a class="reference internal" href="configs/scenario.html">Scenario</a></li> -<li class="toctree-l2"><a class="reference internal" href="configs/scenario_api_support.html">Scenario API Support</a></li> -<li class="toctree-l2"><a class="reference internal" href="configs/scenery.html">Scenery</a></li> -<li class="toctree-l2"><a class="reference internal" href="configs/simulationconfig.html">SimulationConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="configs/staticsystemconfig.html">Static SystemConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="configs/systemconfigblueprint.html">SystemConfigBlueprint</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Configs in Depth</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/user_guide/30_configs_in_depth.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="configs-in-depth"> -<span id="id1"></span><h1>Configs in Depth<a class="headerlink" href="#configs-in-depth" title="Link to this heading">ïƒ</a></h1> -<p>As described in the <a class="reference internal" href="10_overview.html#primer"><span class="std std-ref">Primer</span></a>, not all inputs might be of interest for the targeted audience. -Yet, for completeness, all potential input files shall be described here in detail.</p> -<div class="toctree-wrapper compound"> -<ul> -<li class="toctree-l1"><a class="reference internal" href="configs/profilescatalog.html">ProfilesCatalog</a></li> -<li class="toctree-l1"><a class="reference internal" href="configs/scenario.html">Scenario</a></li> -<li class="toctree-l1"><a class="reference internal" href="configs/scenario_api_support.html">Scenario API Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="configs/scenery.html">Scenery</a></li> -<li class="toctree-l1"><a class="reference internal" href="configs/simulationconfig.html">SimulationConfig</a></li> -<li class="toctree-l1"><a class="reference internal" href="configs/staticsystemconfig.html">Static SystemConfig</a></li> -<li class="toctree-l1"><a class="reference internal" href="configs/systemconfigblueprint.html">SystemConfigBlueprint</a></li> -</ul> -</div> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="tutorials/20_pcm_simulation.html" class="btn btn-neutral float-left" title="PCM Simulation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="configs/profilescatalog.html" class="btn btn-neutral float-right" title="ProfilesCatalog" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Configs in Depth — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="ProfilesCatalog" href="configs/profilescatalog.html" /> + <link rel="prev" title="PCM Simulation" href="tutorials/20_pcm_simulation.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Configs in Depth</a><ul> +<li class="toctree-l2"><a class="reference internal" href="configs/profilescatalog.html">ProfilesCatalog</a></li> +<li class="toctree-l2"><a class="reference internal" href="configs/scenario.html">Scenario</a></li> +<li class="toctree-l2"><a class="reference internal" href="configs/scenario_api_support.html">Scenario API Support</a></li> +<li class="toctree-l2"><a class="reference internal" href="configs/scenery.html">Scenery</a></li> +<li class="toctree-l2"><a class="reference internal" href="configs/simulationconfig.html">SimulationConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="configs/staticsystemconfig.html">Static SystemConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="configs/systemconfigblueprint.html">SystemConfigBlueprint</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Configs in Depth</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/user_guide/30_configs_in_depth.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="configs-in-depth"> +<span id="id1"></span><h1>Configs in Depth<a class="headerlink" href="#configs-in-depth" title="Link to this heading">ïƒ</a></h1> +<p>As described in the <a class="reference internal" href="10_overview.html#primer"><span class="std std-ref">Primer</span></a>, not all inputs might be of interest for the targeted audience. +Yet, for completeness, all potential input files shall be described here in detail.</p> +<div class="toctree-wrapper compound"> +<ul> +<li class="toctree-l1"><a class="reference internal" href="configs/profilescatalog.html">ProfilesCatalog</a></li> +<li class="toctree-l1"><a class="reference internal" href="configs/scenario.html">Scenario</a></li> +<li class="toctree-l1"><a class="reference internal" href="configs/scenario_api_support.html">Scenario API Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="configs/scenery.html">Scenery</a></li> +<li class="toctree-l1"><a class="reference internal" href="configs/simulationconfig.html">SimulationConfig</a></li> +<li class="toctree-l1"><a class="reference internal" href="configs/staticsystemconfig.html">Static SystemConfig</a></li> +<li class="toctree-l1"><a class="reference internal" href="configs/systemconfigblueprint.html">SystemConfigBlueprint</a></li> +</ul> +</div> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="tutorials/20_pcm_simulation.html" class="btn btn-neutral float-left" title="PCM Simulation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="configs/profilescatalog.html" class="btn btn-neutral float-right" title="ProfilesCatalog" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/40_outputs_in_depth.html b/content/html/user_guide/40_outputs_in_depth.html index 266a16b3edd9208c897fa161f0029ba5d086ae54..99ca99476125ccdce3397d234ee747f596fd51a3 100644 --- a/content/html/user_guide/40_outputs_in_depth.html +++ b/content/html/user_guide/40_outputs_in_depth.html @@ -1,159 +1,160 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Outputs in Depth — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="Simulator" href="50_scenario_simulation.html" /> - <link rel="prev" title="SystemConfigBlueprint" href="configs/systemconfigblueprint.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Outputs in Depth</a><ul> -<li class="toctree-l2"><a class="reference internal" href="outputs/observation_log.html">Observation_Log</a></li> -<li class="toctree-l2"><a class="reference internal" href="outputs/observation_repository.html">Observation_EntityRepository</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Outputs in Depth</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/user_guide/40_outputs_in_depth.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="outputs-in-depth"> -<span id="id1"></span><h1>Outputs in Depth<a class="headerlink" href="#outputs-in-depth" title="Link to this heading">ïƒ</a></h1> -<p>As described in the <a class="reference internal" href="10_overview.html#primer"><span class="std std-ref">Primer</span></a>, simulation outputs are generated by the corresponding observers. -In the following, all potential outputs are described, grouped by the corresponding observers.</p> -<div class="toctree-wrapper compound"> -<ul> -<li class="toctree-l1"><a class="reference internal" href="outputs/observation_log.html">Observation_Log</a></li> -<li class="toctree-l1"><a class="reference internal" href="outputs/observation_repository.html">Observation_EntityRepository</a></li> -</ul> -</div> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="configs/systemconfigblueprint.html" class="btn btn-neutral float-left" title="SystemConfigBlueprint" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="50_scenario_simulation.html" class="btn btn-neutral float-right" title="Simulator" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Outputs in Depth — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Simulator" href="50_scenario_simulation.html" /> + <link rel="prev" title="SystemConfigBlueprint" href="configs/systemconfigblueprint.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Outputs in Depth</a><ul> +<li class="toctree-l2"><a class="reference internal" href="outputs/observation_log.html">Observation_Log</a></li> +<li class="toctree-l2"><a class="reference internal" href="outputs/observation_repository.html">Observation_EntityRepository</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Outputs in Depth</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/user_guide/40_outputs_in_depth.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="outputs-in-depth"> +<span id="id1"></span><h1>Outputs in Depth<a class="headerlink" href="#outputs-in-depth" title="Link to this heading">ïƒ</a></h1> +<p>As described in the <a class="reference internal" href="10_overview.html#primer"><span class="std std-ref">Primer</span></a>, simulation outputs are generated by the corresponding observers. +In the following, all potential outputs are described, grouped by the corresponding observers.</p> +<div class="toctree-wrapper compound"> +<ul> +<li class="toctree-l1"><a class="reference internal" href="outputs/observation_log.html">Observation_Log</a></li> +<li class="toctree-l1"><a class="reference internal" href="outputs/observation_repository.html">Observation_EntityRepository</a></li> +</ul> +</div> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="configs/systemconfigblueprint.html" class="btn btn-neutral float-left" title="SystemConfigBlueprint" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="50_scenario_simulation.html" class="btn btn-neutral float-right" title="Simulator" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/50_scenario_simulation.html b/content/html/user_guide/50_scenario_simulation.html index c5e2bdae8c1019aa41fe8480386a9c6ea4028e56..80ee8b3357ae4cafec9bab6097755b79af312e82 100644 --- a/content/html/user_guide/50_scenario_simulation.html +++ b/content/html/user_guide/50_scenario_simulation.html @@ -1,170 +1,171 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Simulator — openPASS Documentation</title> - <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../_static/jquery.js?v=5d32c60e"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../_static/doctools.js?v=888ff710"></script> - <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../genindex.html" /> - <link rel="search" title="Search" href="../search.html" /> - <link rel="next" title="Overview" href="sim_user_guide/10_overview.html" /> - <link rel="prev" title="Outputs in Depth" href="40_outputs_in_depth.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../index.html" class="icon icon-home"> - openPASS - <img src="../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1 current"><a class="current reference internal" href="#">Simulator</a><ul> -<li class="toctree-l2"><a class="reference internal" href="sim_user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l2"><a class="reference internal" href="sim_user_guide/20_components.html">Component View</a></li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item active">Simulator</li> - <li class="wy-breadcrumbs-aside"> - <a href="../_sources/user_guide/50_scenario_simulation.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="simulator"> -<span id="sim-user-guide"></span><h1>Simulator<a class="headerlink" href="#simulator" title="Link to this heading">ïƒ</a></h1> -<div class="toctree-wrapper compound"> -<ul> -<li class="toctree-l1"><a class="reference internal" href="sim_user_guide/10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="sim_user_guide/20_components.html">Component View</a><ul> -<li class="toctree-l2"><a class="reference internal" href="sim_user_guide/20_components.html#components-in-depth">Components in Depth</a><ul> -<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/algorithm_lateral.html">Algorithm_Lateral</a></li> -<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> -<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/driver.html">Driver</a></li> -<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> -<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/dynamics_scenario.html">Dynamics_Scenario</a></li> -<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/sensor_driver.html">Sensor_Driver</a></li> -<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/spawner.html">Spawner</a></li> -<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/vehicle.html">VehicleComponents</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</div> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="40_outputs_in_depth.html" class="btn btn-neutral float-left" title="Outputs in Depth" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="sim_user_guide/10_overview.html" class="btn btn-neutral float-right" title="Overview" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Simulator — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=6efca38a"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../genindex.html" /> + <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Overview" href="sim_user_guide/10_overview.html" /> + <link rel="prev" title="Outputs in Depth" href="40_outputs_in_depth.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../index.html" class="icon icon-home"> + openPASS + <img src="../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1 current"><a class="current reference internal" href="#">Simulator</a><ul> +<li class="toctree-l2"><a class="reference internal" href="sim_user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l2"><a class="reference internal" href="sim_user_guide/20_components.html">Component View</a></li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Simulator</li> + <li class="wy-breadcrumbs-aside"> + <a href="../_sources/user_guide/50_scenario_simulation.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="simulator"> +<span id="sim-user-guide"></span><h1>Simulator<a class="headerlink" href="#simulator" title="Link to this heading">ïƒ</a></h1> +<div class="toctree-wrapper compound"> +<ul> +<li class="toctree-l1"><a class="reference internal" href="sim_user_guide/10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="sim_user_guide/20_components.html">Component View</a><ul> +<li class="toctree-l2"><a class="reference internal" href="sim_user_guide/20_components.html#components-in-depth">Components in Depth</a><ul> +<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/algorithm_lateral.html">Algorithm_Lateral</a></li> +<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> +<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/driver.html">Driver</a></li> +<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> +<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/dynamics_scenario.html">Dynamics_Scenario</a></li> +<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/sensor_driver.html">Sensor_Driver</a></li> +<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/spawner.html">Spawner</a></li> +<li class="toctree-l3"><a class="reference internal" href="sim_user_guide/components/vehicle.html">VehicleComponents</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="40_outputs_in_depth.html" class="btn btn-neutral float-left" title="Outputs in Depth" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="sim_user_guide/10_overview.html" class="btn btn-neutral float-right" title="Overview" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/configs/profilescatalog.html b/content/html/user_guide/configs/profilescatalog.html index 00ead0b3deb2a592fe1afc689ef2422dd92fa49a..a04b626e7bf1759cc482b4691c61b6eb55ffe594 100644 --- a/content/html/user_guide/configs/profilescatalog.html +++ b/content/html/user_guide/configs/profilescatalog.html @@ -1,589 +1,590 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>ProfilesCatalog — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Scenario" href="scenario.html" /> - <link rel="prev" title="Configs in Depth" href="../30_configs_in_depth.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> -<li class="toctree-l2 current"><a class="current reference internal" href="#">ProfilesCatalog</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#agentprofiles">AgentProfiles</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#example">Example</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#systemprofiles">SystemProfiles</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#components">Components</a></li> -<li class="toctree-l4"><a class="reference internal" href="#sensors">Sensors</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#profilegroups">ProfileGroups</a></li> -<li class="toctree-l3"><a class="reference internal" href="#driver-profilegroup">Driver ProfileGroup</a></li> -<li class="toctree-l3"><a class="reference internal" href="#vehiclecomponent-profilegroups">VehicleComponent ProfileGroups</a></li> -<li class="toctree-l3"><a class="reference internal" href="#spawnerprofile-profilegroup">SpawnerProfile ProfileGroup</a></li> -<li class="toctree-l3"><a class="reference internal" href="#trafficrules-profilegroup">TrafficRules ProfileGroup</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="scenario.html">Scenario</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario_api_support.html">Scenario API Support</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenery.html">Scenery</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulationconfig.html">SimulationConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="staticsystemconfig.html">Static SystemConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="systemconfigblueprint.html">SystemConfigBlueprint</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> - <li class="breadcrumb-item active">ProfilesCatalog</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/user_guide/configs/profilescatalog.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="profilescatalog"> -<span id="id1"></span><h1>ProfilesCatalog<a class="headerlink" href="#profilescatalog" title="Link to this heading">ïƒ</a></h1> -<p>The ProfilesCatalog contains all AgentProfiles, SystemProfiles and generic ProfileGroups and Profiles. -Depending on the configuration the simulator could require a “Driverâ€-ProfileGroup, a “Spawnerâ€- and “TrafficGroupâ€-ProfileGroup, a “TrafficRulesâ€-ProfileGroup or sensor and vehiclecomponent specific ProfileGroups.</p> -<ul class="simple"> -<li><p><a class="reference internal" href="#profilescatalog-agentprofiles"><span class="std std-ref">AgentProfiles</span></a></p></li> -<li><p><a class="reference internal" href="#profilescatalog-systemprofiles"><span class="std std-ref">SystemProfiles</span></a></p></li> -<li><p><a class="reference internal" href="#profilescatalog-profilegroups"><span class="std std-ref">ProfileGroups</span></a></p></li> -<li><p><a class="reference internal" href="#profilescatalog-driverprofiles"><span class="std std-ref">Driver ProfileGroup</span></a></p></li> -<li><p><a class="reference internal" href="#profilescatalog-vehiclecomponentprofiles"><span class="std std-ref">VehicleComponent ProfileGroups</span></a></p></li> -<li><p><a class="reference internal" href="#profilescatalog-spawnerprofiles"><span class="std std-ref">SpawnerProfile ProfileGroup</span></a></p></li> -<li><p><a class="reference internal" href="#profilescatalog-trafficrulesprofiles"><span class="std std-ref">TrafficRules ProfileGroup</span></a></p></li> -</ul> -<section id="agentprofiles"> -<span id="profilescatalog-agentprofiles"></span><h2>AgentProfiles<a class="headerlink" href="#agentprofiles" title="Link to this heading">ïƒ</a></h2> -<p>In this section all AgentProfiles are defined. -An AgentProfile is either static or dynamic. -A static AgentProfile consists of a SystemConfig and a VehicleModel. -A dynamic AgentProfile specifies the composition of the agent according to certain probabilities. -Here the initial driver, system profile and the vehicle models of an agent get specified. -At least one AgentProfile is required. -But every AgentProfile referenced in the used <a class="reference internal" href="scenario.html#scenario"><span class="std std-ref">Scenario</span></a> file or <a class="reference internal" href="../sim_user_guide/components/spawner.html#components-trafficgroups"><span class="std std-ref">TrafficGroups</span></a> must exist. -All probabilities must add up to 1.0.</p> -<p>Composition of a static AgentProfile:</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Tag</p></th> -<th class="head"><p>Description</p></th> -<th class="head"><p>Required</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>System</p></td> -<td><p>Reference to a system defined in a SystemConfig</p></td> -<td><p>Yes</p></td> -</tr> -<tr class="row-odd"><td><p>VehicleModel</p></td> -<td><p>Name of the VehicleModel in the <a class="reference internal" href="scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a></p></td> -<td><p>Yes</p></td> -</tr> -</tbody> -</table> -<p>Composition of a dynamic AgentProfile:</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Tag</p></th> -<th class="head"><p>Description</p></th> -<th class="head"><p>Required</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>DriverProfiles</p></td> -<td><p>List of <a class="reference internal" href="#profilescatalog-driverprofiles"><span class="std std-ref">Driver ProfileGroup</span></a> for random selection</p></td> -<td><p>At least one entry</p></td> -</tr> -<tr class="row-odd"><td><p>SystemProfiles</p></td> -<td><p>List of <a class="reference internal" href="#profilescatalog-systemprofiles"><span class="std std-ref">SystemProfiles</span></a> for random selection</p></td> -<td><p>At least one entry</p></td> -</tr> -<tr class="row-even"><td><p>VehicleModels</p></td> -<td><p>List of vehicle models for random selection</p></td> -<td><p>At least one entry</p></td> -</tr> -</tbody> -</table> -<section id="example"> -<h3>Example<a class="headerlink" href="#example" title="Link to this heading">ïƒ</a></h3> -<p>In this experiment the ego agent is defined by the system with Id 0 in systemConfig.xml and the VehicleModel car_bmw_7. -Every LuxuryClassCarAgent has the driver profile “AgentFollowingDriverâ€. -Regarding the system profile 50% have a NoADAS and the other 50% have WithAEB. -Regarding the vehicle model 50% use a car_mini_cooper and the other 50% use car_bmw_7_1 vehicle model.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><AgentProfiles></span> -<span class="w"> </span><span class="nt"><AgentProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"EgoAgent"</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Static"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><System></span> -<span class="w"> </span><span class="nt"><File></span>systemConfig.xml<span class="nt"></File></span> -<span class="w"> </span><span class="nt"><Id></span>0<span class="nt"></Id></span> -<span class="w"> </span><span class="nt"></System></span> -<span class="w"> </span><span class="nt"><VehicleModel></span>car_bmw_7<span class="nt"></VehicleModel></span> -<span class="w"> </span><span class="nt"></AgentProfile></span> -<span class="w"> </span><span class="nt"><AgentProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"LuxuryClassCarAgent"</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Dynamic"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><DriverProfiles></span> -<span class="w"> </span><span class="nt"><DriverProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"AgentFollowingDriver"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"1.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></DriverProfiles></span> -<span class="w"> </span><span class="nt"><SystemProfiles></span> -<span class="w"> </span><span class="nt"><SystemProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"NoADAS"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><SystemProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"WithAEB"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></SystemProfiles></span> -<span class="w"> </span><span class="nt"><VehicleModels></span> -<span class="w"> </span><span class="nt"><VehicleModel</span><span class="w"> </span><span class="na">Name=</span><span class="s">"car_mini_cooper"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><VehicleModel</span><span class="w"> </span><span class="na">Name=</span><span class="s">"car_bmw_7_1"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></VehicleModels></span> -<span class="w"> </span><span class="nt"></AgentProfile></span> -<span class="nt"></AgentProfiles></span> -</pre></div> -</div> -</section> -</section> -<section id="systemprofiles"> -<span id="profilescatalog-systemprofiles"></span><h2>SystemProfiles<a class="headerlink" href="#systemprofiles" title="Link to this heading">ïƒ</a></h2> -<p>This sections contains all system profiles. -Every SystemProfile used by <a class="reference internal" href="#profilescatalog-agentprofiles"><span class="std std-ref">AgentProfiles</span></a> must be listed here.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><SystemProfiles></span> -<span class="w"> </span><span class="nt"><SystemProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"WithAEB"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Components></span> -<span class="w"> </span><span class="nt"><Component</span><span class="w"> </span><span class="na">Type=</span><span class="s">"AEB"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profiles></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"AebProfile"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Profiles></span> -<span class="w"> </span><span class="nt"><SensorLinks></span> -<span class="w"> </span><span class="nt"><SensorLink</span><span class="w"> </span><span class="na">SensorId=</span><span class="s">"0"</span><span class="w"> </span><span class="na">InputId=</span><span class="s">"Camera"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></SensorLinks></span> -<span class="w"> </span><span class="nt"></Component></span> -<span class="w"> </span><span class="nt"></Components></span> -<span class="w"> </span><span class="nt"><Sensors></span> -<span class="w"> </span><span class="nt"><Sensor</span><span class="w"> </span><span class="na">Id=</span><span class="s">"0"</span><span class="w"> </span><span class="na">Position=</span><span class="s">"Default"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Geometric2D"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Standard"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Sensor></span> -<span class="w"> </span><span class="nt"></Sensors></span> -<span class="w"> </span><span class="nt"></SystemProfile></span> -<span class="w"> </span>... -<span class="nt"></SystemProfiles></span> -</pre></div> -</div> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Name</p></td> -<td><p>Name of the vehicle profile</p></td> -</tr> -<tr class="row-odd"><td><p>Components</p></td> -<td><p>Lists all ADAS and other components in the vehicle</p></td> -</tr> -<tr class="row-even"><td><p>Sensors</p></td> -<td><p>Lists all sensors in the vehicle</p></td> -</tr> -</tbody> -</table> -<section id="components"> -<span id="profilescatalog-components"></span><h3>Components<a class="headerlink" href="#components" title="Link to this heading">ïƒ</a></h3> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Type</p></td> -<td><p>Type of the component.</p> -<p>Must match component name in SystemConfigBlueprint</p> -</td> -</tr> -<tr class="row-odd"><td><p>Profile</p></td> -<td><p>Possible profiles of the component with probabilities.</p> -<p>The profiles are defined in the <a class="reference internal" href="#profilescatalog-vehiclecomponentprofiles"><span class="std std-ref">VehicleComponent ProfileGroups</span></a> section</p> -<p>Probabilities do not need to add up to 1.</p> -</td> -</tr> -<tr class="row-even"><td><p>SensorLinks</p></td> -<td><p>Defines which sensor this component uses as input</p></td> -</tr> -</tbody> -</table> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The possibility of “not having that component†can be achieved if the probabilities of the profiles do not add up to 1.</p> -</div> -</section> -<section id="sensors"> -<span id="profilescatalog-sensors"></span><h3>Sensors<a class="headerlink" href="#sensors" title="Link to this heading">ïƒ</a></h3> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Id</p></td> -<td><p>Identifier for the sensor used by the SensorLink definition of the components</p></td> -</tr> -<tr class="row-odd"><td><p>Position</p></td> -<td><p>Position of the sensor in the vehicle in relative coordinates</p></td> -</tr> -<tr class="row-even"><td><p>Profile</p></td> -<td><p>All possible profiles of the sensor with probabilities.</p> -<p>The profiles are defined in the <a class="reference internal" href="#profilescatalog-vehiclecomponentprofiles"><span class="std std-ref">VehicleComponent ProfileGroups</span></a> section</p> -</td> -</tr> -</tbody> -</table> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Sensors></span> -<span class="w"> </span><span class="nt"><Sensor</span><span class="w"> </span><span class="na">Id=</span><span class="s">"0"</span><span class="w"> </span><span class="na">Position=</span><span class="s">"Default"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Type=</span><span class="s">"ReceiverCar2X"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Standard"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Sensor></span> -<span class="w"> </span><span class="nt"><Sensor</span><span class="w"> </span><span class="na">Id=</span><span class="s">"1"</span><span class="w"> </span><span class="na">Position=</span><span class="s">"FrontWindow"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Geometric2D"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Standard"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Sensor></span> -<span class="nt"></Sensors></span> -</pre></div> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The Position attribute in the XML specifies placement of a sensor within a vehicle. The position is defined in VehicleModelsCatalog. -It follows the format “SensorPosition/Position/Parametersâ€. The parameters height, lateral, longitudinal, pitch, roll and yaw are required. -For example, “FrontWindow†describes a sensor mounted on the front window, with corresponding positional parameters. -See example catalog in <a class="reference internal" href="scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a>.</p> -</div> -</section> -</section> -<section id="profilegroups"> -<span id="profilescatalog-profilegroups"></span><h2>ProfileGroups<a class="headerlink" href="#profilegroups" title="Link to this heading">ïƒ</a></h2> -<p>A ProfileGroup defines all the possible profiles of a component. -A single profile is a set of parameters that are passed to the component in the same way as the parameters in the SystemConfig. -Note: For components that have their parameters defined in the ProfilesCatalog the parameters in the SystemConfigBlueprint are ignored. -Parameters can either be simple or stochastic. -Simple parameters only have one value, while stochastic parameters have a minimum and maximum value as well as distribution specific parameters. -Which parameters are needed/supported depends on the component.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"ComponentName"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"ExampleProfile"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"StringParameter"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Lorem ipsum"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><DoubleVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"DoubleParameter"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"12.3,4.56,78.9"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><NormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"RandomParameter"</span><span class="w"> </span><span class="na">Mean=</span><span class="s">"4.5"</span><span class="w"> </span><span class="na">SD=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"3.5"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"10.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Profile></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"AnotherProfile"</span><span class="nt">></span> -<span class="w"> </span>... -<span class="w"> </span><span class="nt"></Profile></span> -<span class="nt"></ProfileGroup></span> -</pre></div> -</div> -<p>There are the following types of simple parameters:</p> -<ul class="simple"> -<li><p>Bool</p></li> -<li><p>Int</p></li> -<li><p>Double</p></li> -<li><p>String</p></li> -<li><p>IntVector</p></li> -<li><p>DoubleVector</p></li> -<li><p>StringVector</p></li> -</ul> -<p>If a parameter is stochastic it can be defined as any to be drawn from any of the following distributions:</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Distribution</p></th> -<th class="head"><p>Additional Attributes</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>NormalDistribution</p></td> -<td><p>(Mean and SD) or (Mu and Sigma) - equivalent</p></td> -</tr> -<tr class="row-odd"><td><p>LogNormalDistribution</p></td> -<td><p>(Mean and SD) or (Mu and Sigma) - not equivalent</p></td> -</tr> -<tr class="row-even"><td><p>UniformDistribution</p></td> -<td><p>None</p></td> -</tr> -<tr class="row-odd"><td><p>ExponentialDistribution</p></td> -<td><p>Lambda or Mean (Mean = 1 / Lambda)</p></td> -</tr> -<tr class="row-even"><td><p>GammaDistribution</p></td> -<td><p>(Mean and SD) or (Shape and Scale)</p></td> -</tr> -</tbody> -</table> -<p>Additionally there is the list type. -The list contains any number of list items which itself contain a list of parameters. -Lists can be nested at most two times.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><List</span><span class="w"> </span><span class="na">Name=</span><span class="s">"ExampleList"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ListItem></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FirstParameter"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Lorem"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"SecondParameter"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.4"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ListItem></span> -<span class="w"> </span><span class="nt"><ListItem></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FirstParameter"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"ipsum"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"SecondParameter"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.6"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ListItem></span> -<span class="nt"></List></span> -</pre></div> -</div> -<p>A Profile can also reference another Profile in another ProfileGroup. -In these case the importer handles the reference as if it was substituted by all subelements of the referenced Profile. -References may not be nested.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Reference</span><span class="w"> </span><span class="na">Type=</span><span class="s">"GroupType"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"ProfileName"</span><span class="nt">/></span> -</pre></div> -</div> -</section> -<section id="driver-profilegroup"> -<span id="profilescatalog-driverprofiles"></span><h2>Driver ProfileGroup<a class="headerlink" href="#driver-profilegroup" title="Link to this heading">ïƒ</a></h2> -<p>This section contains all driver profiles used by the simulation. -At least one driver profile is required. -The special parameter “Type†defines the name of the component (i.e. library name). -For details on the individual parameters see the <a class="reference internal" href="../sim_user_guide/components/driver.html#components-driver"><span class="std std-ref">components reference</span></a>.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Driver"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Name"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Type"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"DriverLibrary"</span><span class="nt">/></span> -<span class="w"> </span>... -<span class="w"> </span><span class="nt"></Profile></span> -<span class="w"> </span>... -<span class="nt"></ProfileGroup></span> -</pre></div> -</div> -</section> -<section id="vehiclecomponent-profilegroups"> -<span id="profilescatalog-vehiclecomponentprofiles"></span><h2>VehicleComponent ProfileGroups<a class="headerlink" href="#vehiclecomponent-profilegroups" title="Link to this heading">ïƒ</a></h2> -<p>This sections contains all driver assistance systems and other vehicle components and their parameter sets. -For every used VehicleComponent type there must be a ProfileGroup with this type and every profile of this type used by <a class="reference internal" href="#profilescatalog-systemprofiles"><span class="std std-ref">SystemProfiles</span></a> must be listed here. -For details on the individual parameters see the <a class="reference internal" href="../sim_user_guide/components/vehicle.html#components-vehiclecomponents"><span class="std std-ref">components reference</span></a>.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"LibraryName"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Name"</span><span class="nt">></span> -<span class="w"> </span>... -<span class="w"> </span><span class="nt"></Profile></span> -<span class="w"> </span>... -<span class="nt"></ProfileGroup></span> -</pre></div> -</div> -</section> -<section id="spawnerprofile-profilegroup"> -<span id="profilescatalog-spawnerprofiles"></span><h2>SpawnerProfile ProfileGroup<a class="headerlink" href="#spawnerprofile-profilegroup" title="Link to this heading">ïƒ</a></h2> -<p>This sections contains all parameters of the spawners referenced in the <a class="reference internal" href="simulationconfig.html#simulationconfig"><span class="std std-ref">SimulationConfig</span></a>. -For details on the individual parameters see the <a class="reference internal" href="../sim_user_guide/components/spawner.html#components-spawner"><span class="std std-ref">components reference</span></a>.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Spawner"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Name"</span><span class="nt">></span> -<span class="w"> </span>... -<span class="w"> </span><span class="nt"></Profile></span> -<span class="w"> </span>... -<span class="nt"></ProfileGroup></span> -</pre></div> -</div> -</section> -<section id="trafficrules-profilegroup"> -<span id="profilescatalog-trafficrulesprofiles"></span><h2>TrafficRules ProfileGroup<a class="headerlink" href="#trafficrules-profilegroup" title="Link to this heading">ïƒ</a></h2> -<p>This sections contains the global traffic rules, that may vary depending on the country. -The following country are supported:</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Name</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>DE</p></td> -<td><p>Germany</p></td> -</tr> -<tr class="row-odd"><td><p>US</p></td> -<td><p>United States</p></td> -</tr> -<tr class="row-even"><td><p>CN</p></td> -<td><p>China</p></td> -</tr> -</tbody> -</table> -<p>The <a class="reference internal" href="simulationconfig.html#simulationconfig-environment"><span class="std std-ref">Environment</span></a> section in the SimulationConfig defines which set is used. -Currently there are only rules regulating highway traffic. These are the following:</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Name</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OpenSpeedLimit</p></td> -<td><p>Double</p></td> -<td><p>maximum allowed speed if not restricted by signs</p></td> -</tr> -<tr class="row-odd"><td><p>KeepToOuterLanes</p></td> -<td><p>Bool</p></td> -<td><p>if true, vehicles must use the outermost free lane for driving</p></td> -</tr> -<tr class="row-even"><td><p>DontOvertakeOnOuterLanes</p></td> -<td><p>Bool</p></td> -<td><p>if true, it is prohibited to overtake another vehicle, that is driving further left (or right for lefthand traffic)</p></td> -</tr> -<tr class="row-odd"><td><p>FormRescueLane</p></td> -<td><p>Bool</p></td> -<td><p>if true, vehicles driving in a traffic jam must form a corridor for emergency vehicles</p></td> -</tr> -<tr class="row-even"><td><p>ZipperMerge</p></td> -<td><p>Bool</p></td> -<td><p>if true all merging shall be performed using zipper merge</p></td> -</tr> -</tbody> -</table> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"TrafficRules"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"DE"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimit"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"INF"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimitTrucks"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"22.2222222"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimitBuses"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"27.7777777"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"KeepToOuterLanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"DontOvertakeOnOuterLanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FormRescueLane"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"ZipperMerge"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Profile></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"US"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimit"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"31.2928"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimitTrucks"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"26.8224"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimitBuses"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"26.8224"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"KeepToOuterLanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"DontOvertakeOnOuterLanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FormRescueLane"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"ZipperMerge"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Profile></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"CN"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimit"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"33.3333"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimitTrucks"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"25.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimitBuses"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"27.7777777"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"KeepToOuterLanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"DontOvertakeOnOuterLanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FormRescueLane"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"ZipperMerge"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Profile></span> -<span class="w"> </span><span class="nt"></ProfileGroup></span> -</pre></div> -</div> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../30_configs_in_depth.html" class="btn btn-neutral float-left" title="Configs in Depth" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="scenario.html" class="btn btn-neutral float-right" title="Scenario" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>ProfilesCatalog — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Scenario" href="scenario.html" /> + <link rel="prev" title="Configs in Depth" href="../30_configs_in_depth.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> +<li class="toctree-l2 current"><a class="current reference internal" href="#">ProfilesCatalog</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#agentprofiles">AgentProfiles</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#example">Example</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#systemprofiles">SystemProfiles</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#components">Components</a></li> +<li class="toctree-l4"><a class="reference internal" href="#sensors">Sensors</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#profilegroups">ProfileGroups</a></li> +<li class="toctree-l3"><a class="reference internal" href="#driver-profilegroup">Driver ProfileGroup</a></li> +<li class="toctree-l3"><a class="reference internal" href="#vehiclecomponent-profilegroups">VehicleComponent ProfileGroups</a></li> +<li class="toctree-l3"><a class="reference internal" href="#spawnerprofile-profilegroup">SpawnerProfile ProfileGroup</a></li> +<li class="toctree-l3"><a class="reference internal" href="#trafficrules-profilegroup">TrafficRules ProfileGroup</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="scenario.html">Scenario</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario_api_support.html">Scenario API Support</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenery.html">Scenery</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulationconfig.html">SimulationConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="staticsystemconfig.html">Static SystemConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="systemconfigblueprint.html">SystemConfigBlueprint</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> + <li class="breadcrumb-item active">ProfilesCatalog</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/user_guide/configs/profilescatalog.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="profilescatalog"> +<span id="id1"></span><h1>ProfilesCatalog<a class="headerlink" href="#profilescatalog" title="Link to this heading">ïƒ</a></h1> +<p>The ProfilesCatalog contains all AgentProfiles, SystemProfiles and generic ProfileGroups and Profiles. +Depending on the configuration the simulator could require a “Driverâ€-ProfileGroup, a “Spawnerâ€- and “TrafficGroupâ€-ProfileGroup, a “TrafficRulesâ€-ProfileGroup or sensor and vehiclecomponent specific ProfileGroups.</p> +<ul class="simple"> +<li><p><a class="reference internal" href="#profilescatalog-agentprofiles"><span class="std std-ref">AgentProfiles</span></a></p></li> +<li><p><a class="reference internal" href="#profilescatalog-systemprofiles"><span class="std std-ref">SystemProfiles</span></a></p></li> +<li><p><a class="reference internal" href="#profilescatalog-profilegroups"><span class="std std-ref">ProfileGroups</span></a></p></li> +<li><p><a class="reference internal" href="#profilescatalog-driverprofiles"><span class="std std-ref">Driver ProfileGroup</span></a></p></li> +<li><p><a class="reference internal" href="#profilescatalog-vehiclecomponentprofiles"><span class="std std-ref">VehicleComponent ProfileGroups</span></a></p></li> +<li><p><a class="reference internal" href="#profilescatalog-spawnerprofiles"><span class="std std-ref">SpawnerProfile ProfileGroup</span></a></p></li> +<li><p><a class="reference internal" href="#profilescatalog-trafficrulesprofiles"><span class="std std-ref">TrafficRules ProfileGroup</span></a></p></li> +</ul> +<section id="agentprofiles"> +<span id="profilescatalog-agentprofiles"></span><h2>AgentProfiles<a class="headerlink" href="#agentprofiles" title="Link to this heading">ïƒ</a></h2> +<p>In this section all AgentProfiles are defined. +An AgentProfile is either static or dynamic. +A static AgentProfile consists of a SystemConfig and a VehicleModel. +A dynamic AgentProfile specifies the composition of the agent according to certain probabilities. +Here the initial driver, system profile and the vehicle models of an agent get specified. +At least one AgentProfile is required. +But every AgentProfile referenced in the used <a class="reference internal" href="scenario.html#scenario"><span class="std std-ref">Scenario</span></a> file or <a class="reference internal" href="../sim_user_guide/components/spawner.html#components-trafficgroups"><span class="std std-ref">TrafficGroups</span></a> must exist. +All probabilities must add up to 1.0.</p> +<p>Composition of a static AgentProfile:</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Tag</p></th> +<th class="head"><p>Description</p></th> +<th class="head"><p>Required</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>System</p></td> +<td><p>Reference to a system defined in a SystemConfig</p></td> +<td><p>Yes</p></td> +</tr> +<tr class="row-odd"><td><p>VehicleModel</p></td> +<td><p>Name of the VehicleModel in the <a class="reference internal" href="scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a></p></td> +<td><p>Yes</p></td> +</tr> +</tbody> +</table> +<p>Composition of a dynamic AgentProfile:</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Tag</p></th> +<th class="head"><p>Description</p></th> +<th class="head"><p>Required</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>DriverProfiles</p></td> +<td><p>List of <a class="reference internal" href="#profilescatalog-driverprofiles"><span class="std std-ref">Driver ProfileGroup</span></a> for random selection</p></td> +<td><p>At least one entry</p></td> +</tr> +<tr class="row-odd"><td><p>SystemProfiles</p></td> +<td><p>List of <a class="reference internal" href="#profilescatalog-systemprofiles"><span class="std std-ref">SystemProfiles</span></a> for random selection</p></td> +<td><p>At least one entry</p></td> +</tr> +<tr class="row-even"><td><p>VehicleModels</p></td> +<td><p>List of vehicle models for random selection</p></td> +<td><p>At least one entry</p></td> +</tr> +</tbody> +</table> +<section id="example"> +<h3>Example<a class="headerlink" href="#example" title="Link to this heading">ïƒ</a></h3> +<p>In this experiment the ego agent is defined by the system with Id 0 in systemConfig.xml and the VehicleModel car_bmw_7. +Every LuxuryClassCarAgent has the driver profile “AgentFollowingDriverâ€. +Regarding the system profile 50% have a NoADAS and the other 50% have WithAEB. +Regarding the vehicle model 50% use a car_mini_cooper and the other 50% use car_bmw_7_1 vehicle model.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><AgentProfiles></span> +<span class="w"> </span><span class="nt"><AgentProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"EgoAgent"</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Static"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><System></span> +<span class="w"> </span><span class="nt"><File></span>systemConfig.xml<span class="nt"></File></span> +<span class="w"> </span><span class="nt"><Id></span>0<span class="nt"></Id></span> +<span class="w"> </span><span class="nt"></System></span> +<span class="w"> </span><span class="nt"><VehicleModel></span>car_bmw_7<span class="nt"></VehicleModel></span> +<span class="w"> </span><span class="nt"></AgentProfile></span> +<span class="w"> </span><span class="nt"><AgentProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"LuxuryClassCarAgent"</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Dynamic"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><DriverProfiles></span> +<span class="w"> </span><span class="nt"><DriverProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"AgentFollowingDriver"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"1.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></DriverProfiles></span> +<span class="w"> </span><span class="nt"><SystemProfiles></span> +<span class="w"> </span><span class="nt"><SystemProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"NoADAS"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><SystemProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"WithAEB"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></SystemProfiles></span> +<span class="w"> </span><span class="nt"><VehicleModels></span> +<span class="w"> </span><span class="nt"><VehicleModel</span><span class="w"> </span><span class="na">Name=</span><span class="s">"car_mini_cooper"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><VehicleModel</span><span class="w"> </span><span class="na">Name=</span><span class="s">"car_bmw_7_1"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></VehicleModels></span> +<span class="w"> </span><span class="nt"></AgentProfile></span> +<span class="nt"></AgentProfiles></span> +</pre></div> +</div> +</section> +</section> +<section id="systemprofiles"> +<span id="profilescatalog-systemprofiles"></span><h2>SystemProfiles<a class="headerlink" href="#systemprofiles" title="Link to this heading">ïƒ</a></h2> +<p>This sections contains all system profiles. +Every SystemProfile used by <a class="reference internal" href="#profilescatalog-agentprofiles"><span class="std std-ref">AgentProfiles</span></a> must be listed here.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><SystemProfiles></span> +<span class="w"> </span><span class="nt"><SystemProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"WithAEB"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Components></span> +<span class="w"> </span><span class="nt"><Component</span><span class="w"> </span><span class="na">Type=</span><span class="s">"AEB"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profiles></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"AebProfile"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Profiles></span> +<span class="w"> </span><span class="nt"><SensorLinks></span> +<span class="w"> </span><span class="nt"><SensorLink</span><span class="w"> </span><span class="na">SensorId=</span><span class="s">"0"</span><span class="w"> </span><span class="na">InputId=</span><span class="s">"Camera"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></SensorLinks></span> +<span class="w"> </span><span class="nt"></Component></span> +<span class="w"> </span><span class="nt"></Components></span> +<span class="w"> </span><span class="nt"><Sensors></span> +<span class="w"> </span><span class="nt"><Sensor</span><span class="w"> </span><span class="na">Id=</span><span class="s">"0"</span><span class="w"> </span><span class="na">Position=</span><span class="s">"Default"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Geometric2D"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Standard"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Sensor></span> +<span class="w"> </span><span class="nt"></Sensors></span> +<span class="w"> </span><span class="nt"></SystemProfile></span> +<span class="w"> </span>... +<span class="nt"></SystemProfiles></span> +</pre></div> +</div> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Name</p></td> +<td><p>Name of the vehicle profile</p></td> +</tr> +<tr class="row-odd"><td><p>Components</p></td> +<td><p>Lists all ADAS and other components in the vehicle</p></td> +</tr> +<tr class="row-even"><td><p>Sensors</p></td> +<td><p>Lists all sensors in the vehicle</p></td> +</tr> +</tbody> +</table> +<section id="components"> +<span id="profilescatalog-components"></span><h3>Components<a class="headerlink" href="#components" title="Link to this heading">ïƒ</a></h3> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Type</p></td> +<td><p>Type of the component.</p> +<p>Must match component name in SystemConfigBlueprint</p> +</td> +</tr> +<tr class="row-odd"><td><p>Profile</p></td> +<td><p>Possible profiles of the component with probabilities.</p> +<p>The profiles are defined in the <a class="reference internal" href="#profilescatalog-vehiclecomponentprofiles"><span class="std std-ref">VehicleComponent ProfileGroups</span></a> section</p> +<p>Probabilities do not need to add up to 1.</p> +</td> +</tr> +<tr class="row-even"><td><p>SensorLinks</p></td> +<td><p>Defines which sensor this component uses as input</p></td> +</tr> +</tbody> +</table> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The possibility of “not having that component†can be achieved if the probabilities of the profiles do not add up to 1.</p> +</div> +</section> +<section id="sensors"> +<span id="profilescatalog-sensors"></span><h3>Sensors<a class="headerlink" href="#sensors" title="Link to this heading">ïƒ</a></h3> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Id</p></td> +<td><p>Identifier for the sensor used by the SensorLink definition of the components</p></td> +</tr> +<tr class="row-odd"><td><p>Position</p></td> +<td><p>Position of the sensor in the vehicle in relative coordinates</p></td> +</tr> +<tr class="row-even"><td><p>Profile</p></td> +<td><p>All possible profiles of the sensor with probabilities.</p> +<p>The profiles are defined in the <a class="reference internal" href="#profilescatalog-vehiclecomponentprofiles"><span class="std std-ref">VehicleComponent ProfileGroups</span></a> section</p> +</td> +</tr> +</tbody> +</table> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Sensors></span> +<span class="w"> </span><span class="nt"><Sensor</span><span class="w"> </span><span class="na">Id=</span><span class="s">"0"</span><span class="w"> </span><span class="na">Position=</span><span class="s">"Default"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Type=</span><span class="s">"ReceiverCar2X"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Standard"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Sensor></span> +<span class="w"> </span><span class="nt"><Sensor</span><span class="w"> </span><span class="na">Id=</span><span class="s">"1"</span><span class="w"> </span><span class="na">Position=</span><span class="s">"FrontWindow"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Geometric2D"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Standard"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Sensor></span> +<span class="nt"></Sensors></span> +</pre></div> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The Position attribute in the XML specifies placement of a sensor within a vehicle. The position is defined in VehicleModelsCatalog. +It follows the format “SensorPosition/Position/Parametersâ€. The parameters height, lateral, longitudinal, pitch, roll and yaw are required. +For example, “FrontWindow†describes a sensor mounted on the front window, with corresponding positional parameters. +See example catalog in <a class="reference internal" href="scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a>.</p> +</div> +</section> +</section> +<section id="profilegroups"> +<span id="profilescatalog-profilegroups"></span><h2>ProfileGroups<a class="headerlink" href="#profilegroups" title="Link to this heading">ïƒ</a></h2> +<p>A ProfileGroup defines all the possible profiles of a component. +A single profile is a set of parameters that are passed to the component in the same way as the parameters in the SystemConfig. +Note: For components that have their parameters defined in the ProfilesCatalog the parameters in the SystemConfigBlueprint are ignored. +Parameters can either be simple or stochastic. +Simple parameters only have one value, while stochastic parameters have a minimum and maximum value as well as distribution specific parameters. +Which parameters are needed/supported depends on the component.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"ComponentName"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"ExampleProfile"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"StringParameter"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Lorem ipsum"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><DoubleVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"DoubleParameter"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"12.3,4.56,78.9"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><NormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"RandomParameter"</span><span class="w"> </span><span class="na">Mean=</span><span class="s">"4.5"</span><span class="w"> </span><span class="na">SD=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"3.5"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"10.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Profile></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"AnotherProfile"</span><span class="nt">></span> +<span class="w"> </span>... +<span class="w"> </span><span class="nt"></Profile></span> +<span class="nt"></ProfileGroup></span> +</pre></div> +</div> +<p>There are the following types of simple parameters:</p> +<ul class="simple"> +<li><p>Bool</p></li> +<li><p>Int</p></li> +<li><p>Double</p></li> +<li><p>String</p></li> +<li><p>IntVector</p></li> +<li><p>DoubleVector</p></li> +<li><p>StringVector</p></li> +</ul> +<p>If a parameter is stochastic it can be defined as any to be drawn from any of the following distributions:</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Distribution</p></th> +<th class="head"><p>Additional Attributes</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>NormalDistribution</p></td> +<td><p>(Mean and SD) or (Mu and Sigma) - equivalent</p></td> +</tr> +<tr class="row-odd"><td><p>LogNormalDistribution</p></td> +<td><p>(Mean and SD) or (Mu and Sigma) - not equivalent</p></td> +</tr> +<tr class="row-even"><td><p>UniformDistribution</p></td> +<td><p>None</p></td> +</tr> +<tr class="row-odd"><td><p>ExponentialDistribution</p></td> +<td><p>Lambda or Mean (Mean = 1 / Lambda)</p></td> +</tr> +<tr class="row-even"><td><p>GammaDistribution</p></td> +<td><p>(Mean and SD) or (Shape and Scale)</p></td> +</tr> +</tbody> +</table> +<p>Additionally there is the list type. +The list contains any number of list items which itself contain a list of parameters. +Lists can be nested at most two times.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><List</span><span class="w"> </span><span class="na">Name=</span><span class="s">"ExampleList"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ListItem></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FirstParameter"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Lorem"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"SecondParameter"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.4"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ListItem></span> +<span class="w"> </span><span class="nt"><ListItem></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FirstParameter"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"ipsum"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"SecondParameter"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.6"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ListItem></span> +<span class="nt"></List></span> +</pre></div> +</div> +<p>A Profile can also reference another Profile in another ProfileGroup. +In these case the importer handles the reference as if it was substituted by all subelements of the referenced Profile. +References may not be nested.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Reference</span><span class="w"> </span><span class="na">Type=</span><span class="s">"GroupType"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"ProfileName"</span><span class="nt">/></span> +</pre></div> +</div> +</section> +<section id="driver-profilegroup"> +<span id="profilescatalog-driverprofiles"></span><h2>Driver ProfileGroup<a class="headerlink" href="#driver-profilegroup" title="Link to this heading">ïƒ</a></h2> +<p>This section contains all driver profiles used by the simulation. +At least one driver profile is required. +The special parameter “Type†defines the name of the component (i.e. library name). +For details on the individual parameters see the <a class="reference internal" href="../sim_user_guide/components/driver.html#components-driver"><span class="std std-ref">components reference</span></a>.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Driver"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Name"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Type"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"DriverLibrary"</span><span class="nt">/></span> +<span class="w"> </span>... +<span class="w"> </span><span class="nt"></Profile></span> +<span class="w"> </span>... +<span class="nt"></ProfileGroup></span> +</pre></div> +</div> +</section> +<section id="vehiclecomponent-profilegroups"> +<span id="profilescatalog-vehiclecomponentprofiles"></span><h2>VehicleComponent ProfileGroups<a class="headerlink" href="#vehiclecomponent-profilegroups" title="Link to this heading">ïƒ</a></h2> +<p>This sections contains all driver assistance systems and other vehicle components and their parameter sets. +For every used VehicleComponent type there must be a ProfileGroup with this type and every profile of this type used by <a class="reference internal" href="#profilescatalog-systemprofiles"><span class="std std-ref">SystemProfiles</span></a> must be listed here. +For details on the individual parameters see the <a class="reference internal" href="../sim_user_guide/components/vehicle.html#components-vehiclecomponents"><span class="std std-ref">components reference</span></a>.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"LibraryName"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Name"</span><span class="nt">></span> +<span class="w"> </span>... +<span class="w"> </span><span class="nt"></Profile></span> +<span class="w"> </span>... +<span class="nt"></ProfileGroup></span> +</pre></div> +</div> +</section> +<section id="spawnerprofile-profilegroup"> +<span id="profilescatalog-spawnerprofiles"></span><h2>SpawnerProfile ProfileGroup<a class="headerlink" href="#spawnerprofile-profilegroup" title="Link to this heading">ïƒ</a></h2> +<p>This sections contains all parameters of the spawners referenced in the <a class="reference internal" href="simulationconfig.html#simulationconfig"><span class="std std-ref">SimulationConfig</span></a>. +For details on the individual parameters see the <a class="reference internal" href="../sim_user_guide/components/spawner.html#components-spawner"><span class="std std-ref">components reference</span></a>.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Spawner"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Name"</span><span class="nt">></span> +<span class="w"> </span>... +<span class="w"> </span><span class="nt"></Profile></span> +<span class="w"> </span>... +<span class="nt"></ProfileGroup></span> +</pre></div> +</div> +</section> +<section id="trafficrules-profilegroup"> +<span id="profilescatalog-trafficrulesprofiles"></span><h2>TrafficRules ProfileGroup<a class="headerlink" href="#trafficrules-profilegroup" title="Link to this heading">ïƒ</a></h2> +<p>This sections contains the global traffic rules, that may vary depending on the country. +The following country are supported:</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Name</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>DE</p></td> +<td><p>Germany</p></td> +</tr> +<tr class="row-odd"><td><p>US</p></td> +<td><p>United States</p></td> +</tr> +<tr class="row-even"><td><p>CN</p></td> +<td><p>China</p></td> +</tr> +</tbody> +</table> +<p>The <a class="reference internal" href="simulationconfig.html#simulationconfig-environment"><span class="std std-ref">Environment</span></a> section in the SimulationConfig defines which set is used. +Currently there are only rules regulating highway traffic. These are the following:</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Name</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenSpeedLimit</p></td> +<td><p>Double</p></td> +<td><p>maximum allowed speed if not restricted by signs</p></td> +</tr> +<tr class="row-odd"><td><p>KeepToOuterLanes</p></td> +<td><p>Bool</p></td> +<td><p>if true, vehicles must use the outermost free lane for driving</p></td> +</tr> +<tr class="row-even"><td><p>DontOvertakeOnOuterLanes</p></td> +<td><p>Bool</p></td> +<td><p>if true, it is prohibited to overtake another vehicle, that is driving further left (or right for lefthand traffic)</p></td> +</tr> +<tr class="row-odd"><td><p>FormRescueLane</p></td> +<td><p>Bool</p></td> +<td><p>if true, vehicles driving in a traffic jam must form a corridor for emergency vehicles</p></td> +</tr> +<tr class="row-even"><td><p>ZipperMerge</p></td> +<td><p>Bool</p></td> +<td><p>if true all merging shall be performed using zipper merge</p></td> +</tr> +</tbody> +</table> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"TrafficRules"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"DE"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimit"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"INF"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimitTrucks"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"22.2222222"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimitBuses"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"27.7777777"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"KeepToOuterLanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"DontOvertakeOnOuterLanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FormRescueLane"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"ZipperMerge"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Profile></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"US"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimit"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"31.2928"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimitTrucks"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"26.8224"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimitBuses"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"26.8224"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"KeepToOuterLanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"DontOvertakeOnOuterLanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FormRescueLane"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"ZipperMerge"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Profile></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"CN"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimit"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"33.3333"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimitTrucks"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"25.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpenSpeedLimitBuses"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"27.7777777"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"KeepToOuterLanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"DontOvertakeOnOuterLanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FormRescueLane"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"ZipperMerge"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Profile></span> +<span class="w"> </span><span class="nt"></ProfileGroup></span> +</pre></div> +</div> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../30_configs_in_depth.html" class="btn btn-neutral float-left" title="Configs in Depth" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="scenario.html" class="btn btn-neutral float-right" title="Scenario" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/configs/scenario.html b/content/html/user_guide/configs/scenario.html index caa615ea01836a81ee2e436ca7468a594810fbe1..aa8a0b3c58a2b626dba70aa77ea1aac376502a14 100644 --- a/content/html/user_guide/configs/scenario.html +++ b/content/html/user_guide/configs/scenario.html @@ -1,815 +1,816 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Scenario — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Scenario API Support" href="scenario_api_support.html" /> - <link rel="prev" title="ProfilesCatalog" href="profilescatalog.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="profilescatalog.html">ProfilesCatalog</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Scenario</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#overview">Overview</a></li> -<li class="toctree-l3"><a class="reference internal" href="#parameterdeclarations">ParameterDeclarations</a></li> -<li class="toctree-l3"><a class="reference internal" href="#catalogs">Catalogs</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#vehiclecatalog">VehicleCatalog</a></li> -<li class="toctree-l4"><a class="reference internal" href="#pedestriancatalog">PedestrianCatalog</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#roadnetwork">RoadNetwork</a></li> -<li class="toctree-l3"><a class="reference internal" href="#entities">Entities</a></li> -<li class="toctree-l3"><a class="reference internal" href="#storyboard">Storyboard</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#init">Init</a></li> -<li class="toctree-l4"><a class="reference internal" href="#story">Story</a></li> -<li class="toctree-l4"><a class="reference internal" href="#stoptrigger">StopTrigger</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#current-restrictions">Current Restrictions</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#conditions">Conditions</a></li> -<li class="toctree-l4"><a class="reference internal" href="#actions">Actions</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="scenario_api_support.html">Scenario API Support</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenery.html">Scenery</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulationconfig.html">SimulationConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="staticsystemconfig.html">Static SystemConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="systemconfigblueprint.html">SystemConfigBlueprint</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> - <li class="breadcrumb-item active">Scenario</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/user_guide/configs/scenario.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="scenario"> -<span id="id1"></span><h1>Scenario<a class="headerlink" href="#scenario" title="Link to this heading">ïƒ</a></h1> -<section id="overview"> -<span id="scenario-overview"></span><h2>Overview<a class="headerlink" href="#overview" title="Link to this heading">ïƒ</a></h2> -<p>The scenario configuration file (<code class="docutils literal notranslate"><span class="pre">*.xosc</span></code>) describes all dynamic configurations of a simulation run, i.e. position of various road users as well as conditional events that change the behavior of the simulation during the run. -The scenario control is carried out using the <a class="reference external" href="https://gitlab.eclipse.org/eclipse/openpass/openscenario1_engine">OpenScenarioEngine</a>, which processes scenarios according to <a class="reference external" href="https://www.asam.net/standards/detail/openscenario/">ASAM OpenSCENARIO</a>. -It is interfaced using the <a class="reference external" href="https://gitlab.eclipse.org/eclipse/openpass/mantle-api">MantleAPI</a>. -For the list of MantleAPI features supported by <strong>openPASS</strong> see <a class="reference internal" href="scenario_api_support.html#scenario-api-support"><span class="std std-ref">Scenario API Support</span></a>.</p> -<p>At the time of writing, the OpenScenarioEngine processes scenario configurations in version 1.1.1, but please refer to the corresponding documentations for possible and implemented features.</p> -<p>In the following, the most important features for openPASS are described.</p> -</section> -<section id="parameterdeclarations"> -<span id="scenario-parameterdeclaration"></span><h2>ParameterDeclarations<a class="headerlink" href="#parameterdeclarations" title="Link to this heading">ïƒ</a></h2> -<p>The tag <code class="docutils literal notranslate"><span class="pre">ParameterDeclarations</span></code> allow to define generic parameters, which can be referenced later the file by its name, prefixed with <code class="docutils literal notranslate"><span class="pre">$</span></code>.</p> -<p><strong>Example declaration</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ParameterDeclarations></span> -<span class="w"> </span><span class="nt"><ParameterDeclaration</span><span class="w"> </span><span class="na">name=</span><span class="s">"simulation_time"</span><span class="w"> </span><span class="na">parameterType=</span><span class="s">"double"</span><span class="w"> </span><span class="na">value=</span><span class="s">"123.4"</span><span class="nt">/></span> -<span class="nt"></ParameterDeclarations></span> -</pre></div> -</div> -<p><strong>Example usage</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><StopTrigger></span> -<span class="w"> </span><span class="nt"><ConditionGroup></span> -<span class="w"> </span><span class="nt"><Condition</span><span class="w"> </span><span class="na">name=</span><span class="s">"EndTime"</span><span class="w"> </span><span class="na">delay=</span><span class="s">"0"</span><span class="w"> </span><span class="na">conditionEdge=</span><span class="s">"rising"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ByValueCondition></span> -<span class="w"> </span><span class="nt"><SimulationTimeCondition</span><span class="w"> </span><span class="na">value=</span><span class="s">"$simulation_time"</span><span class="w"> </span><span class="na">rule=</span><span class="s">"greaterThan"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ByValueCondition></span> -<span class="w"> </span><span class="nt"></Condition></span> -<span class="w"> </span><span class="nt"></ConditionGroup></span> -<span class="nt"></StopTrigger></span> -</pre></div> -</div> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Supported ParameterTypes</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>string</p></td> -</tr> -<tr class="row-odd"><td><p>integer</p></td> -</tr> -<tr class="row-even"><td><p>double</p></td> -</tr> -</tbody> -</table> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Only <code class="docutils literal notranslate"><span class="pre">string</span></code> allows empty values.</p> -</div> -</section> -<section id="catalogs"> -<span id="scenario-catalogs"></span><h2>Catalogs<a class="headerlink" href="#catalogs" title="Link to this heading">ïƒ</a></h2> -<p>The <code class="docutils literal notranslate"><span class="pre">Catalogs</span></code> tag defines locations of various other files containing sub features of OpenSCENARIO for easier reusing (and written in the same format).</p> -<p>The following catalogs are the most important:</p> -<ul class="simple"> -<li><p><a class="reference internal" href="#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a></p></li> -<li><p><a class="reference internal" href="#scenario-pedestrianmodels"><span class="std std-ref">PedestrianCatalog</span></a></p></li> -<li><p>TrajectoryCatalog for the case that a <em>FollowTrajectory action</em> is defined</p></li> -</ul> -<p>The VehicleCatalog is also used by <strong>openPASS</strong> itself for spawning of Common vehicles and therefore mandatory.</p> -<p><strong>Example</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><CatalogLocations></span> -<span class="w"> </span><span class="nt"><VehicleCatalog></span> -<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">"Vehicles"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></VehicleCatalog></span> -<span class="w"> </span><span class="nt"><PedestrianCatalog></span> -<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">"Vehicles"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></PedestrianCatalog></span> -<span class="w"> </span><span class="nt"><ControllerCatalog></span> -<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">""</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ControllerCatalog></span> -<span class="w"> </span><span class="nt"><ManeuverCatalog></span> -<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">""</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ManeuverCatalog></span> -<span class="w"> </span><span class="nt"><MiscObjectCatalog></span> -<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">""</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></MiscObjectCatalog></span> -<span class="w"> </span><span class="nt"><EnvironmentCatalog></span> -<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">""</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></EnvironmentCatalog></span> -<span class="w"> </span><span class="nt"><TrajectoryCatalog></span> -<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">""</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></TrajectoryCatalog></span> -<span class="w"> </span><span class="nt"><RouteCatalog></span> -<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">""</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></RouteCatalog></span> -<span class="nt"></CatalogLocations></span> -</pre></div> -</div> -<section id="vehiclecatalog"> -<span id="scenario-vehiclemodels"></span><h3>VehicleCatalog<a class="headerlink" href="#vehiclecatalog" title="Link to this heading">ïƒ</a></h3> -<p>This path is mandatory. -It has to contain a file named “VehicleModelsCatalog.xoscâ€. -This file contains the available vehicle model catalogs for the simulation. -For each vehicle the physical parameters are stored here.</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Supported Models</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>car_bmw_i3</p></td> -</tr> -<tr class="row-odd"><td><p>car_bmw_3</p></td> -</tr> -<tr class="row-even"><td><p>car_bmw_7_1</p></td> -</tr> -<tr class="row-odd"><td><p>car_bmw_7_2</p></td> -</tr> -<tr class="row-even"><td><p>car_mini_cooper</p></td> -</tr> -<tr class="row-odd"><td><p>bus</p></td> -</tr> -<tr class="row-even"><td><p>truck</p></td> -</tr> -<tr class="row-odd"><td><p>bicycle</p></td> -</tr> -</tbody> -</table> -<p><strong>Example Catalog:</strong></p> -<p><a class="reference download internal" download="" href="../../_downloads/8789748ec2bbe8f70ec8c0763329bc98/VehicleModelsCatalog.xosc"><code class="xref download docutils literal notranslate"><span class="pre">/../../../repo/sim/contrib/examples/Common/Vehicles/VehicleModelsCatalog.xosc</span></code></a></p> -</section> -<section id="pedestriancatalog"> -<span id="scenario-pedestrianmodels"></span><h3>PedestrianCatalog<a class="headerlink" href="#pedestriancatalog" title="Link to this heading">ïƒ</a></h3> -<p>It contains the available pedestrian model catalogs for the simulation. -For each pedestrian the physical parameters are stored here.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Within <strong>openPASS</strong>, pedestrian models are internally handled the same way as vehicle models, i.e. they behave like simplified vehicles. -<em>Meaningless</em> parameters, such as <em>number of gears</em>, are set to operational defaults.</p> -</div> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Supported Models</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>pedestrian_child</p></td> -</tr> -<tr class="row-odd"><td><p>pedestrian_adult</p></td> -</tr> -</tbody> -</table> -<p><strong>Full Example:</strong> <a class="reference download internal" download="" href="../../_downloads/e127566572084ecb8640fe52563f5060/PedestrianModelsCatalog.xosc"><code class="xref download docutils literal notranslate"><span class="pre">/../../../repo/sim/contrib/examples/Common/Vehicles/PedestrianModelsCatalog.xosc</span></code></a></p> -</section> -</section> -<section id="roadnetwork"> -<span id="scenario-roadnetwork"></span><h2>RoadNetwork<a class="headerlink" href="#roadnetwork" title="Link to this heading">ïƒ</a></h2> -<p>The <code class="docutils literal notranslate"><span class="pre">RoadNetwork</span></code> tag contains the mandatory reference to the <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> <a class="reference internal" href="scenery.html#scenery"><span class="std std-ref">Scenery</span></a>.</p> -<p><strong>Example</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><RoadNetwork></span> -<span class="w"> </span><span class="nt"><LogicFile</span><span class="w"> </span><span class="na">filepath=</span><span class="s">"SceneryConfiguration.xodr"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><SceneGraphFile</span><span class="w"> </span><span class="na">filepath=</span><span class="s">""</span><span class="nt">/></span> -<span class="nt"></RoadNetwork></span> -</pre></div> -</div> -<p>Furthermore the controllers of the traffic lights are defined in this section. -Each controller defines the phases of a set of linked traffic lights (e.g. one junction).</p> -<p><strong>Example</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><TrafficSignals></span> -<span class="w"> </span><span class="nt"><TrafficSignalController</span><span class="w"> </span><span class="na">name=</span><span class="s">""</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Phase</span><span class="w"> </span><span class="na">duration=</span><span class="s">"3"</span><span class="w"> </span><span class="na">name=</span><span class="s">"Phase1"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><TrafficSignalState</span><span class="w"> </span><span class="na">state=</span><span class="s">"green"</span><span class="w"> </span><span class="na">trafficSignalId=</span><span class="s">"1"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Phase></span> -<span class="w"> </span><span class="nt"><Phase</span><span class="w"> </span><span class="na">duration=</span><span class="s">"3"</span><span class="w"> </span><span class="na">name=</span><span class="s">"Phase2"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><TrafficSignalState</span><span class="w"> </span><span class="na">state=</span><span class="s">"yellow"</span><span class="w"> </span><span class="na">trafficSignalId=</span><span class="s">"1"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Phase></span> -<span class="w"> </span><span class="nt"><Phase</span><span class="w"> </span><span class="na">duration=</span><span class="s">"3"</span><span class="w"> </span><span class="na">name=</span><span class="s">"Phase3"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><TrafficSignalState</span><span class="w"> </span><span class="na">state=</span><span class="s">"red"</span><span class="w"> </span><span class="na">trafficSignalId=</span><span class="s">"1"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Phase></span> -<span class="w"> </span><span class="nt"><Phase</span><span class="w"> </span><span class="na">duration=</span><span class="s">"3"</span><span class="w"> </span><span class="na">name=</span><span class="s">"Phase4"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><TrafficSignalState</span><span class="w"> </span><span class="na">state=</span><span class="s">"red yellow"</span><span class="w"> </span><span class="na">trafficSignalId=</span><span class="s">"1"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Phase></span> -<span class="w"> </span><span class="nt"></TrafficSignalController></span> -<span class="nt"></TrafficSignals></span> -</pre></div> -</div> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Supported States</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>off</p></td> -</tr> -<tr class="row-odd"><td><p>red</p></td> -</tr> -<tr class="row-even"><td><p>yellow</p></td> -</tr> -<tr class="row-odd"><td><p>green</p></td> -</tr> -<tr class="row-even"><td><p>red yellow</p></td> -</tr> -<tr class="row-odd"><td><p>yellow flashing</p></td> -</tr> -</tbody> -</table> -</section> -<section id="entities"> -<span id="scenario-entities"></span><h2>Entities<a class="headerlink" href="#entities" title="Link to this heading">ïƒ</a></h2> -<p>The <code class="docutils literal notranslate"><span class="pre">Entities</span></code> tag defines all agents that are present at the start of the simulation at predefined positions. -There may be any number of these so called <strong>Scenario Agents</strong> (also zero).</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>EntitySelections are currently not supported by the OpenScenarioEngine</p> -</div> -<p>An entity consits of a <code class="docutils literal notranslate"><span class="pre">VehicleModel</span></code> (typically a reference an entry from the VehicleCatalog) and a controller. -The controller is <strong>optional</strong> and if no controller is specified, a <em>default</em> contoller will be instantiated, which strictly follows OpenSCENARIO actions as requested by the standard. -Unless requested differently through specific actions, it follows the <em>default</em> behaviors <cite>KeepVelocity</cite> and <cite>KeepLateralOffset</cite>. -To use the openPASS specific scenario controller a controller with a single parameter named <code class="docutils literal notranslate"><span class="pre">AgentProfile</span></code> needs to be specified.</p> -<div class="admonition-agentprofile-and-profilescatalog admonition"> -<p class="admonition-title">AgentProfile and ProfilesCatalog</p> -<p>The <code class="docutils literal notranslate"><span class="pre">AgentProfile</span></code> links to a profile in the mandatory <code class="docutils literal notranslate"><span class="pre">ProfilesCatalog.xml</span></code> (see <a class="reference internal" href="profilescatalog.html#profilescatalog"><span class="std std-ref">ProfilesCatalog</span></a>). -This is an extension w.r.t. the OpenSCENARIO standard, as the standard currently does not allow to specifiy a stochastic composition of entities.</p> -</div> -<p><strong>Example</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Entities></span> -<span class="w"> </span><span class="nt"><ScenarioObject</span><span class="w"> </span><span class="na">name=</span><span class="s">"Ego"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><CatalogReference</span><span class="w"> </span><span class="na">catalogName=</span><span class="s">"VehicleCatalog"</span><span class="w"> </span><span class="na">entryName=</span><span class="s">"car_mini_cooper"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><ObjectController></span> -<span class="w"> </span><span class="nt"><Controller</span><span class="w"> </span><span class="na">name=</span><span class="s">"Ego"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Properties></span> -<span class="w"> </span><span class="nt"><Property</span><span class="w"> </span><span class="na">name=</span><span class="s">"AgentProfile"</span><span class="w"> </span><span class="na">value=</span><span class="s">"MiddleClassCarAgent"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Properties></span> -<span class="w"> </span><span class="nt"></Controller></span> -<span class="w"> </span><span class="nt"></ObjectController></span> -<span class="w"> </span><span class="nt"></ScenarioObject></span> -<span class="nt"></Entities></span> -</pre></div> -</div> -<p><strong>Overriding Parameters</strong></p> -<p>Parameters defined in the VehicleCatalog can be assigned inside the CatalogReference element. -In this case the assigned parameter will overwrite the definition in the VehicleCatalog. -Otherwise the value defined in the VehicleCatalog is used. -The type of the parameter must match that in the VehicleCatalog.</p> -<p><strong>Example</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><CatalogReference</span><span class="w"> </span><span class="na">catalogName=</span><span class="s">"VehicleCatalog"</span><span class="w"> </span><span class="na">entryName=</span><span class="s">"car_mini_cooper"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ParameterAssignments></span> -<span class="w"> </span><span class="nt"><ParameterAssignment</span><span class="w"> </span><span class="na">parameterRef=</span><span class="s">"Length"</span><span class="w"> </span><span class="na">value=</span><span class="s">"4.0"</span><span class="w"> </span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ParameterAssignments></span> -<span class="nt"></CatalogReference></span> -</pre></div> -</div> -</section> -<section id="storyboard"> -<span id="scenario-storyboard"></span><h2>Storyboard<a class="headerlink" href="#storyboard" title="Link to this heading">ïƒ</a></h2> -<p>The <code class="docutils literal notranslate"><span class="pre">Storyboard</span></code> tag contains the initial setup of the scenario and manipulator actions. -These actions control the behavior of the simulation at runtime based on predefined conditions. -In short it is divided into an <code class="docutils literal notranslate"><span class="pre">Init</span></code> phase, an actual <code class="docutils literal notranslate"><span class="pre">Story</span></code>, and a <code class="docutils literal notranslate"><span class="pre">StopTrigger</span></code>.</p> -<p>For the definition of the storyboard please refert to the <a class="reference external" href="https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/">OpenSCENARIO 1.1.1 Model Definition</a>.</p> -<p>In the following sections, clarifications with respect to <strong>openPASS</strong> will be given:</p> -<section id="init"> -<span id="scenario-init"></span><h3>Init<a class="headerlink" href="#init" title="Link to this heading">ïƒ</a></h3> -<p>As desribed above, agents need to be defined in the <code class="docutils literal notranslate"><span class="pre">Entities</span></code> section. -For proper spawning they need to be parameterized within the <code class="docutils literal notranslate"><span class="pre">Init</span></code> phase:</p> -<ul class="simple"> -<li><p>A <a class="reference external" href="https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/content/TeleportAction.html">TeleportAction</a> specifies the initial position -If no TeleportAction is defined the agent will not be spawned (the TeleportAction can also happen inside the <code class="docutils literal notranslate"><span class="pre">Story</span></code>).</p></li> -<li><p>A <a class="reference external" href="https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/content/SpeedAction.html">SpeedAction</a> specifies the desired velocity. -[optional] If not defined, a spawned agent will start at standstill.</p></li> -<li><p>A <a class="reference external" href="https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/content/FollowRouteAction.html">FollowRouteAction</a> forces the agent onto a specific trajectory -[optional] If not defined, a random route will be assigned.</p></li> -</ul> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>VisiblilityAction is currently not supported by <strong>openPASS</strong></p> -</div> -<p><strong>Example: TeleportAction + SpeedAction</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Init></span> -<span class="w"> </span><span class="nt"><Actions></span> -<span class="w"> </span><span class="nt"><Private</span><span class="w"> </span><span class="na">entityRef=</span><span class="s">"Ego"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><PrivateAction></span> -<span class="w"> </span><span class="nt"><TeleportAction></span> -<span class="w"> </span><span class="nt"><Position></span> -<span class="w"> </span><span class="nt"><LanePosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"1"</span><span class="w"> </span><span class="na">laneId=</span><span class="s">"-1"</span><span class="w"> </span><span class="na">offset=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">s=</span><span class="s">"0.0"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Orientation</span><span class="w"> </span><span class="na">type=</span><span class="s">"relative"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></LanePosition></span> -<span class="w"> </span><span class="nt"></Position></span> -<span class="w"> </span><span class="nt"></TeleportAction></span> -<span class="w"> </span><span class="nt"></PrivateAction></span> -<span class="w"> </span><span class="nt"><PrivateAction></span> -<span class="w"> </span><span class="nt"><LongitudinalAction></span> -<span class="w"> </span><span class="nt"><SpeedAction></span> -<span class="w"> </span><span class="nt"><SpeedActionDynamics</span><span class="w"> </span><span class="na">dynamicsShape=</span><span class="s">"step"</span><span class="w"> </span><span class="na">value=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">dynamicsDimension=</span><span class="s">"rate"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><SpeedActionTarget></span> -<span class="w"> </span><span class="nt"><AbsoluteTargetSpeed</span><span class="w"> </span><span class="na">value=</span><span class="s">"43.5"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></SpeedActionTarget></span> -<span class="w"> </span><span class="nt"></SpeedAction></span> -<span class="w"> </span><span class="nt"></LongitudinalAction></span> -<span class="w"> </span><span class="nt"></PrivateAction></span> -<span class="w"> </span><span class="nt"><PrivateAction></span> -<span class="w"> </span><span class="nt"><ControllerAction></span> -<span class="w"> </span><span class="nt"><ActivateControllerAction</span><span class="w"> </span><span class="na">controllerRef=</span><span class="s">"Ego"</span><span class="w"> </span><span class="na">lateral=</span><span class="s">"true"</span><span class="w"> </span><span class="na">longitudinal=</span><span class="s">"true"</span><span class="w"> </span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ControllerAction></span> -<span class="w"> </span><span class="nt"></PrivateAction></span> -<span class="w"> </span><span class="nt"></Private></span> -<span class="w"> </span><span class="nt"></Actions></span> -<span class="nt"></Init></span> -</pre></div> -</div> -<p><strong>Example: TeleportAction + FollowRouteAction</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Init></span> -<span class="w"> </span><span class="nt"><Actions></span> -<span class="w"> </span><span class="nt"><Private</span><span class="w"> </span><span class="na">entityRef=</span><span class="s">"Ego"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><PrivateAction></span> -<span class="w"> </span><span class="nt"><TeleportAction></span> -<span class="w"> </span><span class="nt"><Position></span> -<span class="w"> </span><span class="nt"><LanePosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"1472558076"</span><span class="w"> </span><span class="na">laneId=</span><span class="s">"-1"</span><span class="w"> </span><span class="na">offset=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">s=</span><span class="s">"200.0"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Orientation</span><span class="w"> </span><span class="na">type=</span><span class="s">"relative"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></LanePosition></span> -<span class="w"> </span><span class="nt"></Position></span> -<span class="w"> </span><span class="nt"></TeleportAction></span> -<span class="w"> </span><span class="nt"></PrivateAction></span> -<span class="w"> </span><span class="nt"><PrivateAction></span> -<span class="w"> </span><span class="nt"><RoutingAction></span> -<span class="w"> </span><span class="nt"><AssignRouteAction></span> -<span class="w"> </span><span class="nt"><Route</span><span class="w"> </span><span class="na">closed=</span><span class="s">"false"</span><span class="w"> </span><span class="na">name=</span><span class="s">""</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Waypoint</span><span class="w"> </span><span class="na">routeStrategy=</span><span class="s">"fastest"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Position></span> -<span class="w"> </span><span class="nt"><RoadPosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"1472558076"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-1.0"</span><span class="w"> </span><span class="na">s=</span><span class="s">"230"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Position></span> -<span class="w"> </span><span class="nt"></Waypoint></span> -<span class="w"> </span><span class="nt"><Waypoint</span><span class="w"> </span><span class="na">routeStrategy=</span><span class="s">"fastest"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Position></span> -<span class="w"> </span><span class="nt"><RoadPosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"3083973"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-1.0"</span><span class="w"> </span><span class="na">s=</span><span class="s">"8.5"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Position></span> -<span class="w"> </span><span class="nt"></Waypoint></span> -<span class="w"> </span><span class="nt"><Waypoint</span><span class="w"> </span><span class="na">routeStrategy=</span><span class="s">"fastest"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Position></span> -<span class="w"> </span><span class="nt"><RoadPosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"2015840166"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-0.2"</span><span class="w"> </span><span class="na">s=</span><span class="s">"100"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Position></span> -<span class="w"> </span><span class="nt"></Waypoint></span> -<span class="w"> </span><span class="nt"></Route></span> -<span class="w"> </span><span class="nt"></AssignRouteAction></span> -<span class="w"> </span><span class="nt"></RoutingAction></span> -<span class="w"> </span><span class="nt"></PrivateAction></span> -<span class="w"> </span><span class="nt"><PrivateAction></span> -<span class="w"> </span><span class="nt"><ControllerAction></span> -<span class="w"> </span><span class="nt"><ActivateControllerAction</span><span class="w"> </span><span class="na">lateral=</span><span class="s">"true"</span><span class="w"> </span><span class="na">longitudinal=</span><span class="s">"true"</span><span class="w"> </span><span class="na">controllerRef=</span><span class="s">"Ego"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ControllerAction></span> -<span class="w"> </span><span class="nt"></PrivateAction></span> -<span class="w"> </span><span class="nt"></Private></span> -<span class="w"> </span><span class="nt"></Actions></span> -<span class="nt"></Init></span> -</pre></div> -</div> -</section> -<section id="story"> -<span id="scenario-story"></span><h3>Story<a class="headerlink" href="#story" title="Link to this heading">ïƒ</a></h3> -<p>The tag <code class="docutils literal notranslate"><span class="pre">Story</span></code> is optional and defines all conditional interventions during runtime. -Please refer to the <a class="reference external" href="https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.2.0_Model_Documentation/modelDocumentation/content/Storyboard.html">Model Documentation</a> for a general overview and the <a class="reference external" href="https://gitlab.eclipse.org/eclipse/openpass/openscenario1_engine">OpenScenarioEngine</a> for supported actions and conditions within a story.</p> -</section> -<section id="stoptrigger"> -<h3>StopTrigger<a class="headerlink" href="#stoptrigger" title="Link to this heading">ïƒ</a></h3> -<p>It is <strong>mandatory</strong> for openPASS to define a StopTrigger that will fire in any case (otherwise, the simulation will never stop). -This does not necessarily have to be a SimulationTimeCondition, but it is recommended to use it, perhaps in conjunction with another trigger.</p> -</section> -</section> -<section id="current-restrictions"> -<h2>Current Restrictions<a class="headerlink" href="#current-restrictions" title="Link to this heading">ïƒ</a></h2> -<section id="conditions"> -<h3>Conditions<a class="headerlink" href="#conditions" title="Link to this heading">ïƒ</a></h3> -<p><strong>openPASS</strong> support different kind of conditions, belonging either to <code class="docutils literal notranslate"><span class="pre">ByValueCondition</span></code> or <code class="docutils literal notranslate"><span class="pre">ByEntityCondition</span></code>. -While a <strong>by value condition</strong> triggers based on a specified value and is unrelated to any specific agent, a <strong>by entity condition</strong> is bound to an triggering agent, defined by a mandatory section <code class="docutils literal notranslate"><span class="pre">TriggeringEntities</span></code>. -Entities can be either ego or scenario agents.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Reacting on “common†cars is currently not supported.</p> -</div> -</section> -<section id="actions"> -<h3>Actions<a class="headerlink" href="#actions" title="Link to this heading">ïƒ</a></h3> -<p>The following OpenSCENARIO actions are supported:</p> -<ul class="simple"> -<li><p><a class="reference internal" href="#scenario-followrouteaction"><span class="std std-ref">FollowRouteAction</span></a></p></li> -<li><p><a class="reference internal" href="#scenario-lanechange"><span class="std std-ref">LaneChangeAction</span></a></p></li> -<li><p><a class="reference internal" href="#scenario-followtrajectory"><span class="std std-ref">FollowTrajectoryAction</span></a></p></li> -<li><p><a class="reference internal" href="#scenario-acquireposition"><span class="std std-ref">AcquirePositionAction</span></a></p></li> -<li><p><a class="reference internal" href="#scenario-teleportaction"><span class="std std-ref">TeleportAction</span></a></p></li> -<li><p><a class="reference internal" href="#scenario-speedaction"><span class="std std-ref">SpeedAction</span></a></p></li> -<li><p><a class="reference internal" href="#scenario-trafficsinkaction"><span class="std std-ref">TrafficSinkAction</span></a></p></li> -</ul> -<p>In addition, the following user defined actions are interpreted:</p> -<ul class="simple"> -<li><p><a class="reference internal" href="#scenario-componentstatechange"><span class="std std-ref">SetComponentState (UserDefinedAction)</span></a></p></li> -<li><p><a class="reference internal" href="#scenario-defaultcustomcommandaction"><span class="std std-ref">DefaultCustomCommandAction (UserDefinedAction)</span></a></p></li> -</ul> -<section id="scenario-followrouteaction"> -<span id="id3"></span><h4>FollowRouteAction<a class="headerlink" href="#scenario-followrouteaction" title="Link to this heading">ïƒ</a></h4> -<p>The FollowRouteAction is mainly used as part of the <code class="docutils literal notranslate"><span class="pre">Init</span></code> phase of the Storyboard. -It defines Waypoints, which are located by <code class="docutils literal notranslate"><span class="pre">road_id</span></code> and further with <code class="docutils literal notranslate"><span class="pre">s</span></code> and <code class="docutils literal notranslate"><span class="pre">t</span></code> coordinates. -The Agent will try to follow the specified points.</p> -<p><strong>Example</strong> <em>Right turn, by specifying three waypoints</em></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><RoutingAction></span> -<span class="w"> </span><span class="nt"><AssignRouteAction></span> -<span class="w"> </span><span class="nt"><Route</span><span class="w"> </span><span class="na">closed=</span><span class="s">"false"</span><span class="w"> </span><span class="na">name=</span><span class="s">""</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Waypoint</span><span class="w"> </span><span class="na">routeStrategy=</span><span class="s">"fastest"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Position></span> -<span class="w"> </span><span class="nt"><RoadPosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"1472558076"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-1.0"</span><span class="w"> </span><span class="na">s=</span><span class="s">"230"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Position></span> -<span class="w"> </span><span class="nt"></Waypoint></span> -<span class="w"> </span><span class="nt"><Waypoint</span><span class="w"> </span><span class="na">routeStrategy=</span><span class="s">"fastest"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Position></span> -<span class="w"> </span><span class="nt"><RoadPosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"3083973"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-1.0"</span><span class="w"> </span><span class="na">s=</span><span class="s">"8.5"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Position></span> -<span class="w"> </span><span class="nt"></Waypoint></span> -<span class="w"> </span><span class="nt"><Waypoint</span><span class="w"> </span><span class="na">routeStrategy=</span><span class="s">"fastest"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Position></span> -<span class="w"> </span><span class="nt"><RoadPosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"2015840166"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-0.2"</span><span class="w"> </span><span class="na">s=</span><span class="s">"100"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Position></span> -<span class="w"> </span><span class="nt"></Waypoint></span> -<span class="w"> </span><span class="nt"></Route></span> -<span class="w"> </span><span class="nt"></AssignRouteAction></span> -<span class="w"> </span><span class="nt"></RoutingAction></span> -</pre></div> -</div> -</section> -<section id="lanechangeaction"> -<span id="scenario-lanechange"></span><h4>LaneChangeAction<a class="headerlink" href="#lanechangeaction" title="Link to this heading">ïƒ</a></h4> -<p>If this action triggers, the actor is forced to perform a trajectory, calculated at the time of triggering. -The target lane be given either absolute or with respect to another entity. -The trajectory can either have a fixed length (in <code class="docutils literal notranslate"><span class="pre">s</span></code>) or a fixed time.</p> -<p>Currently <strong>openPASS</strong> only supports the type <code class="docutils literal notranslate"><span class="pre">sinusoidal</span></code>.</p> -<p><strong>Example</strong> <em>with absolute target and fixed length</em></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"LaneChange"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><PrivateAction></span> -<span class="w"> </span><span class="nt"><LateralAction></span> -<span class="w"> </span><span class="nt"><LaneChangeAction></span> -<span class="w"> </span><span class="nt"><LaneChangeActionDynamics</span><span class="w"> </span><span class="na">value=</span><span class="s">"2.0"</span><span class="w"> </span><span class="na">dynamicsShape=</span><span class="s">"sinusoidal"</span><span class="w"> </span><span class="na">dynamicsDimension=</span><span class="s">"time"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><LaneChangeTarget></span> -<span class="w"> </span><span class="nt"><AbsoluteTargetLane</span><span class="w"> </span><span class="na">value=</span><span class="s">"-4"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></LaneChangeTarget></span> -<span class="w"> </span><span class="nt"></LaneChangeAction></span> -<span class="w"> </span><span class="nt"></LateralAction></span> -<span class="w"> </span><span class="nt"></PrivateAction></span> -<span class="nt"></Action></span> -</pre></div> -</div> -<p><strong>Example</strong> <em>with relative target and fixed time</em></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"LaneChange"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><PrivateAction></span> -<span class="w"> </span><span class="nt"><LateralAction></span> -<span class="w"> </span><span class="nt"><LaneChangeAction></span> -<span class="w"> </span><span class="nt"><LaneChangeActionDynamics</span><span class="w"> </span><span class="na">value=</span><span class="s">"2.0"</span><span class="w"> </span><span class="na">dynamicsShape=</span><span class="s">"sinusoidal"</span><span class="w"> </span><span class="na">dynamicsDimension=</span><span class="s">"time"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><LaneChangeTarget></span> -<span class="w"> </span><span class="nt"><RelativeTargetLane</span><span class="w"> </span><span class="na">entityRef=</span><span class="s">"Ego"</span><span class="w"> </span><span class="na">value=</span><span class="s">"+1"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></LaneChangeTarget></span> -<span class="w"> </span><span class="nt"></LaneChangeAction></span> -<span class="w"> </span><span class="nt"></LateralAction></span> -<span class="w"> </span><span class="nt"></PrivateAction></span> -<span class="nt"></Action></span> -</pre></div> -</div> -</section> -<section id="followtrajectoryaction"> -<span id="scenario-followtrajectory"></span><h4>FollowTrajectoryAction<a class="headerlink" href="#followtrajectoryaction" title="Link to this heading">ïƒ</a></h4> -<p>If triggered, the defined trajectory is relayed as signal to listening components. -The trajectory can be defined either directly in the story or as separate TrajectoryCatalog. -For the points (vertices) of the trajectory only world coordinates, given as <code class="docutils literal notranslate"><span class="pre">openScenario::WorldPosition</span></code>, are supported. -Right now, the mandatory attributes <em>z</em>, <em>pitch</em> and <em>roll</em> are ignored.</p> -<p><strong>Example</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"Trajectory"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><PrivateAction></span> -<span class="w"> </span><span class="nt"><RoutingAction></span> -<span class="w"> </span><span class="nt"><FollowTrajectoryAction></span> -<span class="w"> </span><span class="nt"><TrajectoryRef></span> -<span class="w"> </span><span class="nt"><Trajectory</span><span class="w"> </span><span class="na">name=</span><span class="s">"LaneChange"</span><span class="w"> </span><span class="na">closed=</span><span class="s">"false"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Shape></span> -<span class="w"> </span><span class="nt"><Polyline></span> -<span class="w"> </span><span class="nt"><Vertex</span><span class="w"> </span><span class="na">time=</span><span class="s">"0"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Position></span> -<span class="w"> </span><span class="nt"><WorldPosition</span><span class="w"> </span><span class="na">x=</span><span class="s">"100"</span><span class="w"> </span><span class="na">y=</span><span class="s">"3"</span><span class="w"> </span><span class="na">z=</span><span class="s">"0"</span><span class="w"> </span><span class="na">h=</span><span class="s">"1.570796326"</span><span class="w"> </span><span class="na">p=</span><span class="s">"0"</span><span class="w"> </span><span class="na">r=</span><span class="s">"0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Position></span> -<span class="w"> </span><span class="nt"></Vertex></span> -<span class="w"> </span><span class="nt"><Vertex</span><span class="w"> </span><span class="na">time=</span><span class="s">"5"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Position></span> -<span class="w"> </span><span class="nt"><WorldPosition</span><span class="w"> </span><span class="na">x=</span><span class="s">"100"</span><span class="w"> </span><span class="na">y=</span><span class="s">"8"</span><span class="w"> </span><span class="na">z=</span><span class="s">"0"</span><span class="w"> </span><span class="na">h=</span><span class="s">"1.570796326"</span><span class="w"> </span><span class="na">p=</span><span class="s">"0"</span><span class="w"> </span><span class="na">r=</span><span class="s">"0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Position></span> -<span class="w"> </span><span class="nt"></Vertex></span> -<span class="w"> </span><span class="nt"></Polyline></span> -<span class="w"> </span><span class="nt"></Shape></span> -<span class="w"> </span><span class="nt"></Trajectory></span> -<span class="w"> </span><span class="nt"></TrajectoryRef></span> -<span class="w"> </span><span class="nt"><TimeReference></span> -<span class="w"> </span><span class="nt"><None/></span> -<span class="w"> </span><span class="nt"></TimeReference></span> -<span class="w"> </span><span class="nt"><TrajectoryFollowingMode</span><span class="w"> </span><span class="na">followingMode=</span><span class="s">"position"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></FollowTrajectoryAction></span> -<span class="w"> </span><span class="nt"></RoutingAction></span> -<span class="w"> </span><span class="nt"></PrivateAction></span> -<span class="nt"></Action></span> -</pre></div> -</div> -<p><strong>Example</strong> <em>using a TrajectoryCatalog</em></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"FollowTrajectory"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Private></span> -<span class="w"> </span><span class="nt"><Routing></span> -<span class="w"> </span><span class="nt"><FollowTrajectoryAction></span> -<span class="w"> </span><span class="nt"><CatalogReference</span><span class="w"> </span><span class="na">catalogName=</span><span class="s">"TrajectoryCatalog.xosc"</span><span class="w"> </span><span class="na">entryName=</span><span class="s">"TrajectoryA"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"></FollowTrajectoryAction></span> -<span class="w"> </span><span class="nt"></Routing></span> -<span class="w"> </span><span class="nt"></Private></span> -<span class="nt"></Action></span> -</pre></div> -</div> -</section> -<section id="acquirepositionaction"> -<span id="scenario-acquireposition"></span><h4>AcquirePositionAction<a class="headerlink" href="#acquirepositionaction" title="Link to this heading">ïƒ</a></h4> -<p>If triggered, the defined position is relayed as signal to listening components.</p> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>Currently, this is only supported by the component <em>FMU_Wrapper</em> for OSMP messages.</p> -</div> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>An FMU might contain routing logic not visible to the openPASS simulation core. -For that reason, an equivalent <cite>RoutingAction</cite> should be set when using <cite>AcquirePosition</cite>. -Otherwise the simulation output might contain missing data for fields depending on the localization along the route (<cite>PositionRoute</cite>, <cite>TCoordinate</cite>, <cite>AgentInFront</cite>, …).</p> -</div> -<p><strong>Example</strong> <em>(WorldPosition)</em></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"AcquirePosition"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><PrivateAction></span> -<span class="w"> </span><span class="nt"><RoutingAction></span> -<span class="w"> </span><span class="nt"><AcquirePositionAction></span> -<span class="w"> </span><span class="nt"><Position></span> -<span class="w"> </span><span class="nt"><WorldPosition</span><span class="w"> </span><span class="na">x=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">y=</span><span class="s">"2.0"</span><span class="w"> </span><span class="na">z=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">h=</span><span class="s">"3.1415"</span><span class="w"> </span><span class="na">p=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">r=</span><span class="s">"0.0"</span><span class="w"> </span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Position></span> -<span class="w"> </span><span class="nt"></AcquirePositionAction></span> -<span class="w"> </span><span class="nt"></RoutingAction></span> -<span class="w"> </span><span class="nt"></PrivateAction></span> -<span class="nt"></Action></span> -</pre></div> -</div> -<p><strong>Example</strong> <em>(RelativeObjectPosition)</em></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"AcquirePosition"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><PrivateAction></span> -<span class="w"> </span><span class="nt"><RoutingAction></span> -<span class="w"> </span><span class="nt"><AcquirePositionAction></span> -<span class="w"> </span><span class="nt"><Position></span> -<span class="w"> </span><span class="nt"><RelativeObjectPosition</span><span class="w"> </span><span class="na">dx=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">dy=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">entityRef=</span><span class="s">"S1"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Position></span> -<span class="w"> </span><span class="nt"></AcquirePositionAction></span> -<span class="w"> </span><span class="nt"></RoutingAction></span> -<span class="w"> </span><span class="nt"></PrivateAction></span> -<span class="nt"></Action></span> -</pre></div> -</div> -</section> -<section id="scenario-teleportaction"> -<span id="id4"></span><h4>TeleportAction<a class="headerlink" href="#scenario-teleportaction" title="Link to this heading">ïƒ</a></h4> -<p>The TeleportAction instantly changes the position of an entity.</p> -</section> -<section id="trafficsinkaction"> -<span id="scenario-trafficsinkaction"></span><h4>TrafficSinkAction<a class="headerlink" href="#trafficsinkaction" title="Link to this heading">ïƒ</a></h4> -<p>The TrafficSinkAction is used to remove agents when they reach a certain position.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>At spawning time, the TrafficSinkAction is executed the common traffic is initiated, which means vehicles will spawn at the first timestamp in the defined zone, but are immediately removed at the next timestep.</p> -</div> -</section> -<section id="scenario-speedaction"> -<span id="id5"></span><h4>SpeedAction<a class="headerlink" href="#scenario-speedaction" title="Link to this heading">ïƒ</a></h4> -<p>The SpeedAction adjusts the velocity of an entity based on parameters of the SpeedAction.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>If the <strong>openPASS</strong> specific controller is used, the SpeedAction might not reflect actual values used by the simulator due to physical boundaries of the simulator.</p> -</div> -<p><strong>Example</strong> <em>AbsoulteTargetSpeed</em></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"SpeedAction"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><PrivateAction></span> -<span class="w"> </span><span class="nt"><LongitudinalAction></span> -<span class="w"> </span><span class="nt"><SpeedAction></span> -<span class="w"> </span><span class="nt"><SpeedActionDynamics</span><span class="w"> </span><span class="na">dynamicsShape=</span><span class="s">"step"</span><span class="w"> </span><span class="na">value=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">dynamicsDimension=</span><span class="s">"rate"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><SpeedActionTarget></span> -<span class="w"> </span><span class="nt"><AbsoluteTargetSpeed</span><span class="w"> </span><span class="na">value=</span><span class="s">"20"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></SpeedActionTarget></span> -<span class="w"> </span><span class="nt"></SpeedAction></span> -<span class="w"> </span><span class="nt"></LongitudinalAction></span> -<span class="w"> </span><span class="nt"></PrivateAction></span> -<span class="nt"></Action></span> -</pre></div> -</div> -<p><strong>Example</strong> <em>RelativeTargetSpeed</em></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"SpeedAction"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><PrivateAction></span> -<span class="w"> </span><span class="nt"><LongitudinalAction></span> -<span class="w"> </span><span class="nt"><SpeedAction></span> -<span class="w"> </span><span class="nt"><SpeedActionDynamics</span><span class="w"> </span><span class="na">dynamicsShape=</span><span class="s">"step"</span><span class="w"> </span><span class="na">value=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">dynamicsDimension=</span><span class="s">"rate"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><SpeedActionTarget></span> -<span class="w"> </span><span class="nt"><RelativeTargetSpeed</span><span class="w"> </span><span class="na">entityRef=</span><span class="s">"ScenarioAgent"</span><span class="w"> </span><span class="na">value=</span><span class="s">"10"</span> -<span class="w"> </span><span class="na">speedTargetValueType=</span><span class="s">"delta"</span><span class="w"> </span><span class="na">continuous=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></SpeedActionTarget></span> -<span class="w"> </span><span class="nt"></SpeedAction></span> -<span class="w"> </span><span class="nt"></LongitudinalAction></span> -<span class="w"> </span><span class="nt"></PrivateAction></span> -<span class="nt"></Action></span> -</pre></div> -</div> -</section> -<section id="setcomponentstate-userdefinedaction"> -<span id="scenario-componentstatechange"></span><h4>SetComponentState (UserDefinedAction)<a class="headerlink" href="#setcomponentstate-userdefinedaction" title="Link to this heading">ïƒ</a></h4> -<p>Command Keyword: <code class="docutils literal notranslate"><span class="pre">SetComponentState</span></code></p> -<p>Influences the maximum reachable state of an agent component handled by the ComponentController, i.e. it can either activate or deactivate a component. -For more details see the description of the <a class="reference internal" href="../../advanced_topics/simulator/agent_components.html#agentcomponents-componentcontroller"><span class="std std-ref">ComponentController</span></a>.</p> -<p><strong>Example</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"ComponentStateChange"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><UserDefinedAction></span> -<span class="w"> </span><span class="nt"><CustomCommandAction></span>SetComponentState<span class="w"> </span>Dynamics_TrajectoryFollower<span class="w"> </span>Acting<span class="nt"></CustomCommandAction></span> -<span class="w"> </span><span class="nt"></UserDefinedAction></span> -<span class="nt"></Action></span> -</pre></div> -</div> -</section> -<section id="defaultcustomcommandaction-userdefinedaction"> -<span id="scenario-defaultcustomcommandaction"></span><h4>DefaultCustomCommandAction (UserDefinedAction)<a class="headerlink" href="#defaultcustomcommandaction-userdefinedaction" title="Link to this heading">ïƒ</a></h4> -<p>This is <strong>the</strong> default custom command, and is always selected, if <strong>the first WORD</strong> (Keyword) in the command string is <strong>not</strong> registered as a special custom command. -The command is universally accessible across all components via <cite>ScenarioControlInterface::GetCustomCommands()</cite>, empowering users to define personalized actions tailored to their specific needs. -Once defined, the functionality of this command is unique to the user, based on their custom implementation.</p> -<div class="admonition-fmu-wrapper-component-for-osmp-messages-only admonition"> -<p class="admonition-title">FMU_Wrapper component for OSMP messages only</p> -<p>The linked string signal is set as custom action of the TrafficCommand. For more information on OSMP FMUs see the <a class="reference internal" href="../sim_user_guide/components/vehicle.html#components-fmuwrapper"><span class="std std-ref">FMU Wrapper</span></a> documentation.</p> -</div> -<p><strong>Example</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"CustomParameters"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><UserDefinedAction></span> -<span class="w"> </span><span class="nt"><CustomCommandAction></span>Arbitrary<span class="w"> </span>String,<span class="w"> </span>e.g.<span class="w"> </span>{<span class="w"> </span>"hello":<span class="w"> </span>"world"}<span class="nt"></CustomCommandAction></span> -<span class="w"> </span><span class="nt"></UserDefinedAction></span> -<span class="nt"></Action></span> -</pre></div> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Here, “Arbitrary†is first checked, if it matches any other available Keyword for used defined actions, such as <a class="reference internal" href="#scenario-componentstatechange"><span class="std std-ref">SetComponentState (UserDefinedAction)</span></a>.</p> -</div> -</section> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="profilescatalog.html" class="btn btn-neutral float-left" title="ProfilesCatalog" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="scenario_api_support.html" class="btn btn-neutral float-right" title="Scenario API Support" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Scenario — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Scenario API Support" href="scenario_api_support.html" /> + <link rel="prev" title="ProfilesCatalog" href="profilescatalog.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="profilescatalog.html">ProfilesCatalog</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Scenario</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#overview">Overview</a></li> +<li class="toctree-l3"><a class="reference internal" href="#parameterdeclarations">ParameterDeclarations</a></li> +<li class="toctree-l3"><a class="reference internal" href="#catalogs">Catalogs</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#vehiclecatalog">VehicleCatalog</a></li> +<li class="toctree-l4"><a class="reference internal" href="#pedestriancatalog">PedestrianCatalog</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#roadnetwork">RoadNetwork</a></li> +<li class="toctree-l3"><a class="reference internal" href="#entities">Entities</a></li> +<li class="toctree-l3"><a class="reference internal" href="#storyboard">Storyboard</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#init">Init</a></li> +<li class="toctree-l4"><a class="reference internal" href="#story">Story</a></li> +<li class="toctree-l4"><a class="reference internal" href="#stoptrigger">StopTrigger</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#current-restrictions">Current Restrictions</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#conditions">Conditions</a></li> +<li class="toctree-l4"><a class="reference internal" href="#actions">Actions</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="scenario_api_support.html">Scenario API Support</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenery.html">Scenery</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulationconfig.html">SimulationConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="staticsystemconfig.html">Static SystemConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="systemconfigblueprint.html">SystemConfigBlueprint</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> + <li class="breadcrumb-item active">Scenario</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/user_guide/configs/scenario.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="scenario"> +<span id="id1"></span><h1>Scenario<a class="headerlink" href="#scenario" title="Link to this heading">ïƒ</a></h1> +<section id="overview"> +<span id="scenario-overview"></span><h2>Overview<a class="headerlink" href="#overview" title="Link to this heading">ïƒ</a></h2> +<p>The scenario configuration file (<code class="docutils literal notranslate"><span class="pre">*.xosc</span></code>) describes all dynamic configurations of a simulation run, i.e. position of various road users as well as conditional events that change the behavior of the simulation during the run. +The scenario control is carried out using the <a class="reference external" href="https://gitlab.eclipse.org/eclipse/openpass/openscenario1_engine">OpenScenarioEngine</a>, which processes scenarios according to <a class="reference external" href="https://www.asam.net/standards/detail/openscenario/">ASAM OpenSCENARIO</a>. +It is interfaced using the <a class="reference external" href="https://gitlab.eclipse.org/eclipse/openpass/mantle-api">MantleAPI</a>. +For the list of MantleAPI features supported by <strong>openPASS</strong> see <a class="reference internal" href="scenario_api_support.html#scenario-api-support"><span class="std std-ref">Scenario API Support</span></a>.</p> +<p>At the time of writing, the OpenScenarioEngine processes scenario configurations in version 1.1.1, but please refer to the corresponding documentations for possible and implemented features.</p> +<p>In the following, the most important features for openPASS are described.</p> +</section> +<section id="parameterdeclarations"> +<span id="scenario-parameterdeclaration"></span><h2>ParameterDeclarations<a class="headerlink" href="#parameterdeclarations" title="Link to this heading">ïƒ</a></h2> +<p>The tag <code class="docutils literal notranslate"><span class="pre">ParameterDeclarations</span></code> allow to define generic parameters, which can be referenced later the file by its name, prefixed with <code class="docutils literal notranslate"><span class="pre">$</span></code>.</p> +<p><strong>Example declaration</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ParameterDeclarations></span> +<span class="w"> </span><span class="nt"><ParameterDeclaration</span><span class="w"> </span><span class="na">name=</span><span class="s">"simulation_time"</span><span class="w"> </span><span class="na">parameterType=</span><span class="s">"double"</span><span class="w"> </span><span class="na">value=</span><span class="s">"123.4"</span><span class="nt">/></span> +<span class="nt"></ParameterDeclarations></span> +</pre></div> +</div> +<p><strong>Example usage</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><StopTrigger></span> +<span class="w"> </span><span class="nt"><ConditionGroup></span> +<span class="w"> </span><span class="nt"><Condition</span><span class="w"> </span><span class="na">name=</span><span class="s">"EndTime"</span><span class="w"> </span><span class="na">delay=</span><span class="s">"0"</span><span class="w"> </span><span class="na">conditionEdge=</span><span class="s">"rising"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ByValueCondition></span> +<span class="w"> </span><span class="nt"><SimulationTimeCondition</span><span class="w"> </span><span class="na">value=</span><span class="s">"$simulation_time"</span><span class="w"> </span><span class="na">rule=</span><span class="s">"greaterThan"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ByValueCondition></span> +<span class="w"> </span><span class="nt"></Condition></span> +<span class="w"> </span><span class="nt"></ConditionGroup></span> +<span class="nt"></StopTrigger></span> +</pre></div> +</div> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Supported ParameterTypes</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>string</p></td> +</tr> +<tr class="row-odd"><td><p>integer</p></td> +</tr> +<tr class="row-even"><td><p>double</p></td> +</tr> +</tbody> +</table> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Only <code class="docutils literal notranslate"><span class="pre">string</span></code> allows empty values.</p> +</div> +</section> +<section id="catalogs"> +<span id="scenario-catalogs"></span><h2>Catalogs<a class="headerlink" href="#catalogs" title="Link to this heading">ïƒ</a></h2> +<p>The <code class="docutils literal notranslate"><span class="pre">Catalogs</span></code> tag defines locations of various other files containing sub features of OpenSCENARIO for easier reusing (and written in the same format).</p> +<p>The following catalogs are the most important:</p> +<ul class="simple"> +<li><p><a class="reference internal" href="#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a></p></li> +<li><p><a class="reference internal" href="#scenario-pedestrianmodels"><span class="std std-ref">PedestrianCatalog</span></a></p></li> +<li><p>TrajectoryCatalog for the case that a <em>FollowTrajectory action</em> is defined</p></li> +</ul> +<p>The VehicleCatalog is also used by <strong>openPASS</strong> itself for spawning of Common vehicles and therefore mandatory.</p> +<p><strong>Example</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><CatalogLocations></span> +<span class="w"> </span><span class="nt"><VehicleCatalog></span> +<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">"Vehicles"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></VehicleCatalog></span> +<span class="w"> </span><span class="nt"><PedestrianCatalog></span> +<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">"Vehicles"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></PedestrianCatalog></span> +<span class="w"> </span><span class="nt"><ControllerCatalog></span> +<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">""</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ControllerCatalog></span> +<span class="w"> </span><span class="nt"><ManeuverCatalog></span> +<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">""</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ManeuverCatalog></span> +<span class="w"> </span><span class="nt"><MiscObjectCatalog></span> +<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">""</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></MiscObjectCatalog></span> +<span class="w"> </span><span class="nt"><EnvironmentCatalog></span> +<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">""</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></EnvironmentCatalog></span> +<span class="w"> </span><span class="nt"><TrajectoryCatalog></span> +<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">""</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></TrajectoryCatalog></span> +<span class="w"> </span><span class="nt"><RouteCatalog></span> +<span class="w"> </span><span class="nt"><Directory</span><span class="w"> </span><span class="na">path=</span><span class="s">""</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></RouteCatalog></span> +<span class="nt"></CatalogLocations></span> +</pre></div> +</div> +<section id="vehiclecatalog"> +<span id="scenario-vehiclemodels"></span><h3>VehicleCatalog<a class="headerlink" href="#vehiclecatalog" title="Link to this heading">ïƒ</a></h3> +<p>This path is mandatory. +It has to contain a file named “VehicleModelsCatalog.xoscâ€. +This file contains the available vehicle model catalogs for the simulation. +For each vehicle the physical parameters are stored here.</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Supported Models</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>car_bmw_i3</p></td> +</tr> +<tr class="row-odd"><td><p>car_bmw_3</p></td> +</tr> +<tr class="row-even"><td><p>car_bmw_7_1</p></td> +</tr> +<tr class="row-odd"><td><p>car_bmw_7_2</p></td> +</tr> +<tr class="row-even"><td><p>car_mini_cooper</p></td> +</tr> +<tr class="row-odd"><td><p>bus</p></td> +</tr> +<tr class="row-even"><td><p>truck</p></td> +</tr> +<tr class="row-odd"><td><p>bicycle</p></td> +</tr> +</tbody> +</table> +<p><strong>Example Catalog:</strong></p> +<p><a class="reference download internal" download="" href="../../_downloads/8789748ec2bbe8f70ec8c0763329bc98/VehicleModelsCatalog.xosc"><code class="xref download docutils literal notranslate"><span class="pre">/../../../repo/sim/contrib/examples/Common/Vehicles/VehicleModelsCatalog.xosc</span></code></a></p> +</section> +<section id="pedestriancatalog"> +<span id="scenario-pedestrianmodels"></span><h3>PedestrianCatalog<a class="headerlink" href="#pedestriancatalog" title="Link to this heading">ïƒ</a></h3> +<p>It contains the available pedestrian model catalogs for the simulation. +For each pedestrian the physical parameters are stored here.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Within <strong>openPASS</strong>, pedestrian models are internally handled the same way as vehicle models, i.e. they behave like simplified vehicles. +<em>Meaningless</em> parameters, such as <em>number of gears</em>, are set to operational defaults.</p> +</div> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Supported Models</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>pedestrian_child</p></td> +</tr> +<tr class="row-odd"><td><p>pedestrian_adult</p></td> +</tr> +</tbody> +</table> +<p><strong>Full Example:</strong> <a class="reference download internal" download="" href="../../_downloads/e127566572084ecb8640fe52563f5060/PedestrianModelsCatalog.xosc"><code class="xref download docutils literal notranslate"><span class="pre">/../../../repo/sim/contrib/examples/Common/Vehicles/PedestrianModelsCatalog.xosc</span></code></a></p> +</section> +</section> +<section id="roadnetwork"> +<span id="scenario-roadnetwork"></span><h2>RoadNetwork<a class="headerlink" href="#roadnetwork" title="Link to this heading">ïƒ</a></h2> +<p>The <code class="docutils literal notranslate"><span class="pre">RoadNetwork</span></code> tag contains the mandatory reference to the <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> <a class="reference internal" href="scenery.html#scenery"><span class="std std-ref">Scenery</span></a>.</p> +<p><strong>Example</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><RoadNetwork></span> +<span class="w"> </span><span class="nt"><LogicFile</span><span class="w"> </span><span class="na">filepath=</span><span class="s">"SceneryConfiguration.xodr"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><SceneGraphFile</span><span class="w"> </span><span class="na">filepath=</span><span class="s">""</span><span class="nt">/></span> +<span class="nt"></RoadNetwork></span> +</pre></div> +</div> +<p>Furthermore the controllers of the traffic lights are defined in this section. +Each controller defines the phases of a set of linked traffic lights (e.g. one junction).</p> +<p><strong>Example</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><TrafficSignals></span> +<span class="w"> </span><span class="nt"><TrafficSignalController</span><span class="w"> </span><span class="na">name=</span><span class="s">""</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Phase</span><span class="w"> </span><span class="na">duration=</span><span class="s">"3"</span><span class="w"> </span><span class="na">name=</span><span class="s">"Phase1"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><TrafficSignalState</span><span class="w"> </span><span class="na">state=</span><span class="s">"green"</span><span class="w"> </span><span class="na">trafficSignalId=</span><span class="s">"1"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Phase></span> +<span class="w"> </span><span class="nt"><Phase</span><span class="w"> </span><span class="na">duration=</span><span class="s">"3"</span><span class="w"> </span><span class="na">name=</span><span class="s">"Phase2"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><TrafficSignalState</span><span class="w"> </span><span class="na">state=</span><span class="s">"yellow"</span><span class="w"> </span><span class="na">trafficSignalId=</span><span class="s">"1"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Phase></span> +<span class="w"> </span><span class="nt"><Phase</span><span class="w"> </span><span class="na">duration=</span><span class="s">"3"</span><span class="w"> </span><span class="na">name=</span><span class="s">"Phase3"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><TrafficSignalState</span><span class="w"> </span><span class="na">state=</span><span class="s">"red"</span><span class="w"> </span><span class="na">trafficSignalId=</span><span class="s">"1"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Phase></span> +<span class="w"> </span><span class="nt"><Phase</span><span class="w"> </span><span class="na">duration=</span><span class="s">"3"</span><span class="w"> </span><span class="na">name=</span><span class="s">"Phase4"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><TrafficSignalState</span><span class="w"> </span><span class="na">state=</span><span class="s">"red yellow"</span><span class="w"> </span><span class="na">trafficSignalId=</span><span class="s">"1"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Phase></span> +<span class="w"> </span><span class="nt"></TrafficSignalController></span> +<span class="nt"></TrafficSignals></span> +</pre></div> +</div> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Supported States</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>off</p></td> +</tr> +<tr class="row-odd"><td><p>red</p></td> +</tr> +<tr class="row-even"><td><p>yellow</p></td> +</tr> +<tr class="row-odd"><td><p>green</p></td> +</tr> +<tr class="row-even"><td><p>red yellow</p></td> +</tr> +<tr class="row-odd"><td><p>yellow flashing</p></td> +</tr> +</tbody> +</table> +</section> +<section id="entities"> +<span id="scenario-entities"></span><h2>Entities<a class="headerlink" href="#entities" title="Link to this heading">ïƒ</a></h2> +<p>The <code class="docutils literal notranslate"><span class="pre">Entities</span></code> tag defines all agents that are present at the start of the simulation at predefined positions. +There may be any number of these so called <strong>Scenario Agents</strong> (also zero).</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>EntitySelections are currently not supported by the OpenScenarioEngine</p> +</div> +<p>An entity consits of a <code class="docutils literal notranslate"><span class="pre">VehicleModel</span></code> (typically a reference an entry from the VehicleCatalog) and a controller. +The controller is <strong>optional</strong> and if no controller is specified, a <em>default</em> contoller will be instantiated, which strictly follows OpenSCENARIO actions as requested by the standard. +Unless requested differently through specific actions, it follows the <em>default</em> behaviors <cite>KeepVelocity</cite> and <cite>KeepLateralOffset</cite>. +To use the openPASS specific scenario controller a controller with a single parameter named <code class="docutils literal notranslate"><span class="pre">AgentProfile</span></code> needs to be specified.</p> +<div class="admonition-agentprofile-and-profilescatalog admonition"> +<p class="admonition-title">AgentProfile and ProfilesCatalog</p> +<p>The <code class="docutils literal notranslate"><span class="pre">AgentProfile</span></code> links to a profile in the mandatory <code class="docutils literal notranslate"><span class="pre">ProfilesCatalog.xml</span></code> (see <a class="reference internal" href="profilescatalog.html#profilescatalog"><span class="std std-ref">ProfilesCatalog</span></a>). +This is an extension w.r.t. the OpenSCENARIO standard, as the standard currently does not allow to specifiy a stochastic composition of entities.</p> +</div> +<p><strong>Example</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Entities></span> +<span class="w"> </span><span class="nt"><ScenarioObject</span><span class="w"> </span><span class="na">name=</span><span class="s">"Ego"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><CatalogReference</span><span class="w"> </span><span class="na">catalogName=</span><span class="s">"VehicleCatalog"</span><span class="w"> </span><span class="na">entryName=</span><span class="s">"car_mini_cooper"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><ObjectController></span> +<span class="w"> </span><span class="nt"><Controller</span><span class="w"> </span><span class="na">name=</span><span class="s">"Ego"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Properties></span> +<span class="w"> </span><span class="nt"><Property</span><span class="w"> </span><span class="na">name=</span><span class="s">"AgentProfile"</span><span class="w"> </span><span class="na">value=</span><span class="s">"MiddleClassCarAgent"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Properties></span> +<span class="w"> </span><span class="nt"></Controller></span> +<span class="w"> </span><span class="nt"></ObjectController></span> +<span class="w"> </span><span class="nt"></ScenarioObject></span> +<span class="nt"></Entities></span> +</pre></div> +</div> +<p><strong>Overriding Parameters</strong></p> +<p>Parameters defined in the VehicleCatalog can be assigned inside the CatalogReference element. +In this case the assigned parameter will overwrite the definition in the VehicleCatalog. +Otherwise the value defined in the VehicleCatalog is used. +The type of the parameter must match that in the VehicleCatalog.</p> +<p><strong>Example</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><CatalogReference</span><span class="w"> </span><span class="na">catalogName=</span><span class="s">"VehicleCatalog"</span><span class="w"> </span><span class="na">entryName=</span><span class="s">"car_mini_cooper"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ParameterAssignments></span> +<span class="w"> </span><span class="nt"><ParameterAssignment</span><span class="w"> </span><span class="na">parameterRef=</span><span class="s">"Length"</span><span class="w"> </span><span class="na">value=</span><span class="s">"4.0"</span><span class="w"> </span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ParameterAssignments></span> +<span class="nt"></CatalogReference></span> +</pre></div> +</div> +</section> +<section id="storyboard"> +<span id="scenario-storyboard"></span><h2>Storyboard<a class="headerlink" href="#storyboard" title="Link to this heading">ïƒ</a></h2> +<p>The <code class="docutils literal notranslate"><span class="pre">Storyboard</span></code> tag contains the initial setup of the scenario and manipulator actions. +These actions control the behavior of the simulation at runtime based on predefined conditions. +In short it is divided into an <code class="docutils literal notranslate"><span class="pre">Init</span></code> phase, an actual <code class="docutils literal notranslate"><span class="pre">Story</span></code>, and a <code class="docutils literal notranslate"><span class="pre">StopTrigger</span></code>.</p> +<p>For the definition of the storyboard please refert to the <a class="reference external" href="https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/">OpenSCENARIO 1.1.1 Model Definition</a>.</p> +<p>In the following sections, clarifications with respect to <strong>openPASS</strong> will be given:</p> +<section id="init"> +<span id="scenario-init"></span><h3>Init<a class="headerlink" href="#init" title="Link to this heading">ïƒ</a></h3> +<p>As desribed above, agents need to be defined in the <code class="docutils literal notranslate"><span class="pre">Entities</span></code> section. +For proper spawning they need to be parameterized within the <code class="docutils literal notranslate"><span class="pre">Init</span></code> phase:</p> +<ul class="simple"> +<li><p>A <a class="reference external" href="https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/content/TeleportAction.html">TeleportAction</a> specifies the initial position +If no TeleportAction is defined the agent will not be spawned (the TeleportAction can also happen inside the <code class="docutils literal notranslate"><span class="pre">Story</span></code>).</p></li> +<li><p>A <a class="reference external" href="https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/content/SpeedAction.html">SpeedAction</a> specifies the desired velocity. +[optional] If not defined, a spawned agent will start at standstill.</p></li> +<li><p>A <a class="reference external" href="https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.1.1_Model_Documentation/modelDocumentation/content/FollowRouteAction.html">FollowRouteAction</a> forces the agent onto a specific trajectory +[optional] If not defined, a random route will be assigned.</p></li> +</ul> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>VisiblilityAction is currently not supported by <strong>openPASS</strong></p> +</div> +<p><strong>Example: TeleportAction + SpeedAction</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Init></span> +<span class="w"> </span><span class="nt"><Actions></span> +<span class="w"> </span><span class="nt"><Private</span><span class="w"> </span><span class="na">entityRef=</span><span class="s">"Ego"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><PrivateAction></span> +<span class="w"> </span><span class="nt"><TeleportAction></span> +<span class="w"> </span><span class="nt"><Position></span> +<span class="w"> </span><span class="nt"><LanePosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"1"</span><span class="w"> </span><span class="na">laneId=</span><span class="s">"-1"</span><span class="w"> </span><span class="na">offset=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">s=</span><span class="s">"0.0"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Orientation</span><span class="w"> </span><span class="na">type=</span><span class="s">"relative"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></LanePosition></span> +<span class="w"> </span><span class="nt"></Position></span> +<span class="w"> </span><span class="nt"></TeleportAction></span> +<span class="w"> </span><span class="nt"></PrivateAction></span> +<span class="w"> </span><span class="nt"><PrivateAction></span> +<span class="w"> </span><span class="nt"><LongitudinalAction></span> +<span class="w"> </span><span class="nt"><SpeedAction></span> +<span class="w"> </span><span class="nt"><SpeedActionDynamics</span><span class="w"> </span><span class="na">dynamicsShape=</span><span class="s">"step"</span><span class="w"> </span><span class="na">value=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">dynamicsDimension=</span><span class="s">"rate"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><SpeedActionTarget></span> +<span class="w"> </span><span class="nt"><AbsoluteTargetSpeed</span><span class="w"> </span><span class="na">value=</span><span class="s">"43.5"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></SpeedActionTarget></span> +<span class="w"> </span><span class="nt"></SpeedAction></span> +<span class="w"> </span><span class="nt"></LongitudinalAction></span> +<span class="w"> </span><span class="nt"></PrivateAction></span> +<span class="w"> </span><span class="nt"><PrivateAction></span> +<span class="w"> </span><span class="nt"><ControllerAction></span> +<span class="w"> </span><span class="nt"><ActivateControllerAction</span><span class="w"> </span><span class="na">controllerRef=</span><span class="s">"Ego"</span><span class="w"> </span><span class="na">lateral=</span><span class="s">"true"</span><span class="w"> </span><span class="na">longitudinal=</span><span class="s">"true"</span><span class="w"> </span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ControllerAction></span> +<span class="w"> </span><span class="nt"></PrivateAction></span> +<span class="w"> </span><span class="nt"></Private></span> +<span class="w"> </span><span class="nt"></Actions></span> +<span class="nt"></Init></span> +</pre></div> +</div> +<p><strong>Example: TeleportAction + FollowRouteAction</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Init></span> +<span class="w"> </span><span class="nt"><Actions></span> +<span class="w"> </span><span class="nt"><Private</span><span class="w"> </span><span class="na">entityRef=</span><span class="s">"Ego"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><PrivateAction></span> +<span class="w"> </span><span class="nt"><TeleportAction></span> +<span class="w"> </span><span class="nt"><Position></span> +<span class="w"> </span><span class="nt"><LanePosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"1472558076"</span><span class="w"> </span><span class="na">laneId=</span><span class="s">"-1"</span><span class="w"> </span><span class="na">offset=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">s=</span><span class="s">"200.0"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Orientation</span><span class="w"> </span><span class="na">type=</span><span class="s">"relative"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></LanePosition></span> +<span class="w"> </span><span class="nt"></Position></span> +<span class="w"> </span><span class="nt"></TeleportAction></span> +<span class="w"> </span><span class="nt"></PrivateAction></span> +<span class="w"> </span><span class="nt"><PrivateAction></span> +<span class="w"> </span><span class="nt"><RoutingAction></span> +<span class="w"> </span><span class="nt"><AssignRouteAction></span> +<span class="w"> </span><span class="nt"><Route</span><span class="w"> </span><span class="na">closed=</span><span class="s">"false"</span><span class="w"> </span><span class="na">name=</span><span class="s">""</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Waypoint</span><span class="w"> </span><span class="na">routeStrategy=</span><span class="s">"fastest"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Position></span> +<span class="w"> </span><span class="nt"><RoadPosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"1472558076"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-1.0"</span><span class="w"> </span><span class="na">s=</span><span class="s">"230"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Position></span> +<span class="w"> </span><span class="nt"></Waypoint></span> +<span class="w"> </span><span class="nt"><Waypoint</span><span class="w"> </span><span class="na">routeStrategy=</span><span class="s">"fastest"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Position></span> +<span class="w"> </span><span class="nt"><RoadPosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"3083973"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-1.0"</span><span class="w"> </span><span class="na">s=</span><span class="s">"8.5"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Position></span> +<span class="w"> </span><span class="nt"></Waypoint></span> +<span class="w"> </span><span class="nt"><Waypoint</span><span class="w"> </span><span class="na">routeStrategy=</span><span class="s">"fastest"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Position></span> +<span class="w"> </span><span class="nt"><RoadPosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"2015840166"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-0.2"</span><span class="w"> </span><span class="na">s=</span><span class="s">"100"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Position></span> +<span class="w"> </span><span class="nt"></Waypoint></span> +<span class="w"> </span><span class="nt"></Route></span> +<span class="w"> </span><span class="nt"></AssignRouteAction></span> +<span class="w"> </span><span class="nt"></RoutingAction></span> +<span class="w"> </span><span class="nt"></PrivateAction></span> +<span class="w"> </span><span class="nt"><PrivateAction></span> +<span class="w"> </span><span class="nt"><ControllerAction></span> +<span class="w"> </span><span class="nt"><ActivateControllerAction</span><span class="w"> </span><span class="na">lateral=</span><span class="s">"true"</span><span class="w"> </span><span class="na">longitudinal=</span><span class="s">"true"</span><span class="w"> </span><span class="na">controllerRef=</span><span class="s">"Ego"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ControllerAction></span> +<span class="w"> </span><span class="nt"></PrivateAction></span> +<span class="w"> </span><span class="nt"></Private></span> +<span class="w"> </span><span class="nt"></Actions></span> +<span class="nt"></Init></span> +</pre></div> +</div> +</section> +<section id="story"> +<span id="scenario-story"></span><h3>Story<a class="headerlink" href="#story" title="Link to this heading">ïƒ</a></h3> +<p>The tag <code class="docutils literal notranslate"><span class="pre">Story</span></code> is optional and defines all conditional interventions during runtime. +Please refer to the <a class="reference external" href="https://www.asam.net/static_downloads/ASAM_OpenSCENARIO_V1.2.0_Model_Documentation/modelDocumentation/content/Storyboard.html">Model Documentation</a> for a general overview and the <a class="reference external" href="https://gitlab.eclipse.org/eclipse/openpass/openscenario1_engine">OpenScenarioEngine</a> for supported actions and conditions within a story.</p> +</section> +<section id="stoptrigger"> +<h3>StopTrigger<a class="headerlink" href="#stoptrigger" title="Link to this heading">ïƒ</a></h3> +<p>It is <strong>mandatory</strong> for openPASS to define a StopTrigger that will fire in any case (otherwise, the simulation will never stop). +This does not necessarily have to be a SimulationTimeCondition, but it is recommended to use it, perhaps in conjunction with another trigger.</p> +</section> +</section> +<section id="current-restrictions"> +<h2>Current Restrictions<a class="headerlink" href="#current-restrictions" title="Link to this heading">ïƒ</a></h2> +<section id="conditions"> +<h3>Conditions<a class="headerlink" href="#conditions" title="Link to this heading">ïƒ</a></h3> +<p><strong>openPASS</strong> support different kind of conditions, belonging either to <code class="docutils literal notranslate"><span class="pre">ByValueCondition</span></code> or <code class="docutils literal notranslate"><span class="pre">ByEntityCondition</span></code>. +While a <strong>by value condition</strong> triggers based on a specified value and is unrelated to any specific agent, a <strong>by entity condition</strong> is bound to an triggering agent, defined by a mandatory section <code class="docutils literal notranslate"><span class="pre">TriggeringEntities</span></code>. +Entities can be either ego or scenario agents.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Reacting on “common†cars is currently not supported.</p> +</div> +</section> +<section id="actions"> +<h3>Actions<a class="headerlink" href="#actions" title="Link to this heading">ïƒ</a></h3> +<p>The following OpenSCENARIO actions are supported:</p> +<ul class="simple"> +<li><p><a class="reference internal" href="#scenario-followrouteaction"><span class="std std-ref">FollowRouteAction</span></a></p></li> +<li><p><a class="reference internal" href="#scenario-lanechange"><span class="std std-ref">LaneChangeAction</span></a></p></li> +<li><p><a class="reference internal" href="#scenario-followtrajectory"><span class="std std-ref">FollowTrajectoryAction</span></a></p></li> +<li><p><a class="reference internal" href="#scenario-acquireposition"><span class="std std-ref">AcquirePositionAction</span></a></p></li> +<li><p><a class="reference internal" href="#scenario-teleportaction"><span class="std std-ref">TeleportAction</span></a></p></li> +<li><p><a class="reference internal" href="#scenario-speedaction"><span class="std std-ref">SpeedAction</span></a></p></li> +<li><p><a class="reference internal" href="#scenario-trafficsinkaction"><span class="std std-ref">TrafficSinkAction</span></a></p></li> +</ul> +<p>In addition, the following user defined actions are interpreted:</p> +<ul class="simple"> +<li><p><a class="reference internal" href="#scenario-componentstatechange"><span class="std std-ref">SetComponentState (UserDefinedAction)</span></a></p></li> +<li><p><a class="reference internal" href="#scenario-defaultcustomcommandaction"><span class="std std-ref">DefaultCustomCommandAction (UserDefinedAction)</span></a></p></li> +</ul> +<section id="scenario-followrouteaction"> +<span id="id3"></span><h4>FollowRouteAction<a class="headerlink" href="#scenario-followrouteaction" title="Link to this heading">ïƒ</a></h4> +<p>The FollowRouteAction is mainly used as part of the <code class="docutils literal notranslate"><span class="pre">Init</span></code> phase of the Storyboard. +It defines Waypoints, which are located by <code class="docutils literal notranslate"><span class="pre">road_id</span></code> and further with <code class="docutils literal notranslate"><span class="pre">s</span></code> and <code class="docutils literal notranslate"><span class="pre">t</span></code> coordinates. +The Agent will try to follow the specified points.</p> +<p><strong>Example</strong> <em>Right turn, by specifying three waypoints</em></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><RoutingAction></span> +<span class="w"> </span><span class="nt"><AssignRouteAction></span> +<span class="w"> </span><span class="nt"><Route</span><span class="w"> </span><span class="na">closed=</span><span class="s">"false"</span><span class="w"> </span><span class="na">name=</span><span class="s">""</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Waypoint</span><span class="w"> </span><span class="na">routeStrategy=</span><span class="s">"fastest"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Position></span> +<span class="w"> </span><span class="nt"><RoadPosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"1472558076"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-1.0"</span><span class="w"> </span><span class="na">s=</span><span class="s">"230"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Position></span> +<span class="w"> </span><span class="nt"></Waypoint></span> +<span class="w"> </span><span class="nt"><Waypoint</span><span class="w"> </span><span class="na">routeStrategy=</span><span class="s">"fastest"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Position></span> +<span class="w"> </span><span class="nt"><RoadPosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"3083973"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-1.0"</span><span class="w"> </span><span class="na">s=</span><span class="s">"8.5"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Position></span> +<span class="w"> </span><span class="nt"></Waypoint></span> +<span class="w"> </span><span class="nt"><Waypoint</span><span class="w"> </span><span class="na">routeStrategy=</span><span class="s">"fastest"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Position></span> +<span class="w"> </span><span class="nt"><RoadPosition</span><span class="w"> </span><span class="na">roadId=</span><span class="s">"2015840166"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-0.2"</span><span class="w"> </span><span class="na">s=</span><span class="s">"100"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Position></span> +<span class="w"> </span><span class="nt"></Waypoint></span> +<span class="w"> </span><span class="nt"></Route></span> +<span class="w"> </span><span class="nt"></AssignRouteAction></span> +<span class="w"> </span><span class="nt"></RoutingAction></span> +</pre></div> +</div> +</section> +<section id="lanechangeaction"> +<span id="scenario-lanechange"></span><h4>LaneChangeAction<a class="headerlink" href="#lanechangeaction" title="Link to this heading">ïƒ</a></h4> +<p>If this action triggers, the actor is forced to perform a trajectory, calculated at the time of triggering. +The target lane be given either absolute or with respect to another entity. +The trajectory can either have a fixed length (in <code class="docutils literal notranslate"><span class="pre">s</span></code>) or a fixed time.</p> +<p>Currently <strong>openPASS</strong> only supports the type <code class="docutils literal notranslate"><span class="pre">sinusoidal</span></code>.</p> +<p><strong>Example</strong> <em>with absolute target and fixed length</em></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"LaneChange"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><PrivateAction></span> +<span class="w"> </span><span class="nt"><LateralAction></span> +<span class="w"> </span><span class="nt"><LaneChangeAction></span> +<span class="w"> </span><span class="nt"><LaneChangeActionDynamics</span><span class="w"> </span><span class="na">value=</span><span class="s">"2.0"</span><span class="w"> </span><span class="na">dynamicsShape=</span><span class="s">"sinusoidal"</span><span class="w"> </span><span class="na">dynamicsDimension=</span><span class="s">"time"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><LaneChangeTarget></span> +<span class="w"> </span><span class="nt"><AbsoluteTargetLane</span><span class="w"> </span><span class="na">value=</span><span class="s">"-4"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></LaneChangeTarget></span> +<span class="w"> </span><span class="nt"></LaneChangeAction></span> +<span class="w"> </span><span class="nt"></LateralAction></span> +<span class="w"> </span><span class="nt"></PrivateAction></span> +<span class="nt"></Action></span> +</pre></div> +</div> +<p><strong>Example</strong> <em>with relative target and fixed time</em></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"LaneChange"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><PrivateAction></span> +<span class="w"> </span><span class="nt"><LateralAction></span> +<span class="w"> </span><span class="nt"><LaneChangeAction></span> +<span class="w"> </span><span class="nt"><LaneChangeActionDynamics</span><span class="w"> </span><span class="na">value=</span><span class="s">"2.0"</span><span class="w"> </span><span class="na">dynamicsShape=</span><span class="s">"sinusoidal"</span><span class="w"> </span><span class="na">dynamicsDimension=</span><span class="s">"time"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><LaneChangeTarget></span> +<span class="w"> </span><span class="nt"><RelativeTargetLane</span><span class="w"> </span><span class="na">entityRef=</span><span class="s">"Ego"</span><span class="w"> </span><span class="na">value=</span><span class="s">"+1"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></LaneChangeTarget></span> +<span class="w"> </span><span class="nt"></LaneChangeAction></span> +<span class="w"> </span><span class="nt"></LateralAction></span> +<span class="w"> </span><span class="nt"></PrivateAction></span> +<span class="nt"></Action></span> +</pre></div> +</div> +</section> +<section id="followtrajectoryaction"> +<span id="scenario-followtrajectory"></span><h4>FollowTrajectoryAction<a class="headerlink" href="#followtrajectoryaction" title="Link to this heading">ïƒ</a></h4> +<p>If triggered, the defined trajectory is relayed as signal to listening components. +The trajectory can be defined either directly in the story or as separate TrajectoryCatalog. +For the points (vertices) of the trajectory only world coordinates, given as <code class="docutils literal notranslate"><span class="pre">openScenario::WorldPosition</span></code>, are supported. +Right now, the mandatory attributes <em>z</em>, <em>pitch</em> and <em>roll</em> are ignored.</p> +<p><strong>Example</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"Trajectory"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><PrivateAction></span> +<span class="w"> </span><span class="nt"><RoutingAction></span> +<span class="w"> </span><span class="nt"><FollowTrajectoryAction></span> +<span class="w"> </span><span class="nt"><TrajectoryRef></span> +<span class="w"> </span><span class="nt"><Trajectory</span><span class="w"> </span><span class="na">name=</span><span class="s">"LaneChange"</span><span class="w"> </span><span class="na">closed=</span><span class="s">"false"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Shape></span> +<span class="w"> </span><span class="nt"><Polyline></span> +<span class="w"> </span><span class="nt"><Vertex</span><span class="w"> </span><span class="na">time=</span><span class="s">"0"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Position></span> +<span class="w"> </span><span class="nt"><WorldPosition</span><span class="w"> </span><span class="na">x=</span><span class="s">"100"</span><span class="w"> </span><span class="na">y=</span><span class="s">"3"</span><span class="w"> </span><span class="na">z=</span><span class="s">"0"</span><span class="w"> </span><span class="na">h=</span><span class="s">"1.570796326"</span><span class="w"> </span><span class="na">p=</span><span class="s">"0"</span><span class="w"> </span><span class="na">r=</span><span class="s">"0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Position></span> +<span class="w"> </span><span class="nt"></Vertex></span> +<span class="w"> </span><span class="nt"><Vertex</span><span class="w"> </span><span class="na">time=</span><span class="s">"5"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Position></span> +<span class="w"> </span><span class="nt"><WorldPosition</span><span class="w"> </span><span class="na">x=</span><span class="s">"100"</span><span class="w"> </span><span class="na">y=</span><span class="s">"8"</span><span class="w"> </span><span class="na">z=</span><span class="s">"0"</span><span class="w"> </span><span class="na">h=</span><span class="s">"1.570796326"</span><span class="w"> </span><span class="na">p=</span><span class="s">"0"</span><span class="w"> </span><span class="na">r=</span><span class="s">"0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Position></span> +<span class="w"> </span><span class="nt"></Vertex></span> +<span class="w"> </span><span class="nt"></Polyline></span> +<span class="w"> </span><span class="nt"></Shape></span> +<span class="w"> </span><span class="nt"></Trajectory></span> +<span class="w"> </span><span class="nt"></TrajectoryRef></span> +<span class="w"> </span><span class="nt"><TimeReference></span> +<span class="w"> </span><span class="nt"><None/></span> +<span class="w"> </span><span class="nt"></TimeReference></span> +<span class="w"> </span><span class="nt"><TrajectoryFollowingMode</span><span class="w"> </span><span class="na">followingMode=</span><span class="s">"position"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></FollowTrajectoryAction></span> +<span class="w"> </span><span class="nt"></RoutingAction></span> +<span class="w"> </span><span class="nt"></PrivateAction></span> +<span class="nt"></Action></span> +</pre></div> +</div> +<p><strong>Example</strong> <em>using a TrajectoryCatalog</em></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"FollowTrajectory"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Private></span> +<span class="w"> </span><span class="nt"><Routing></span> +<span class="w"> </span><span class="nt"><FollowTrajectoryAction></span> +<span class="w"> </span><span class="nt"><CatalogReference</span><span class="w"> </span><span class="na">catalogName=</span><span class="s">"TrajectoryCatalog.xosc"</span><span class="w"> </span><span class="na">entryName=</span><span class="s">"TrajectoryA"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"></FollowTrajectoryAction></span> +<span class="w"> </span><span class="nt"></Routing></span> +<span class="w"> </span><span class="nt"></Private></span> +<span class="nt"></Action></span> +</pre></div> +</div> +</section> +<section id="acquirepositionaction"> +<span id="scenario-acquireposition"></span><h4>AcquirePositionAction<a class="headerlink" href="#acquirepositionaction" title="Link to this heading">ïƒ</a></h4> +<p>If triggered, the defined position is relayed as signal to listening components.</p> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>Currently, this is only supported by the component <em>FMU_Wrapper</em> for OSMP messages.</p> +</div> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>An FMU might contain routing logic not visible to the openPASS simulation core. +For that reason, an equivalent <cite>RoutingAction</cite> should be set when using <cite>AcquirePosition</cite>. +Otherwise the simulation output might contain missing data for fields depending on the localization along the route (<cite>PositionRoute</cite>, <cite>TCoordinate</cite>, <cite>AgentInFront</cite>, …).</p> +</div> +<p><strong>Example</strong> <em>(WorldPosition)</em></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"AcquirePosition"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><PrivateAction></span> +<span class="w"> </span><span class="nt"><RoutingAction></span> +<span class="w"> </span><span class="nt"><AcquirePositionAction></span> +<span class="w"> </span><span class="nt"><Position></span> +<span class="w"> </span><span class="nt"><WorldPosition</span><span class="w"> </span><span class="na">x=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">y=</span><span class="s">"2.0"</span><span class="w"> </span><span class="na">z=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">h=</span><span class="s">"3.1415"</span><span class="w"> </span><span class="na">p=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">r=</span><span class="s">"0.0"</span><span class="w"> </span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Position></span> +<span class="w"> </span><span class="nt"></AcquirePositionAction></span> +<span class="w"> </span><span class="nt"></RoutingAction></span> +<span class="w"> </span><span class="nt"></PrivateAction></span> +<span class="nt"></Action></span> +</pre></div> +</div> +<p><strong>Example</strong> <em>(RelativeObjectPosition)</em></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"AcquirePosition"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><PrivateAction></span> +<span class="w"> </span><span class="nt"><RoutingAction></span> +<span class="w"> </span><span class="nt"><AcquirePositionAction></span> +<span class="w"> </span><span class="nt"><Position></span> +<span class="w"> </span><span class="nt"><RelativeObjectPosition</span><span class="w"> </span><span class="na">dx=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">dy=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">entityRef=</span><span class="s">"S1"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Position></span> +<span class="w"> </span><span class="nt"></AcquirePositionAction></span> +<span class="w"> </span><span class="nt"></RoutingAction></span> +<span class="w"> </span><span class="nt"></PrivateAction></span> +<span class="nt"></Action></span> +</pre></div> +</div> +</section> +<section id="scenario-teleportaction"> +<span id="id4"></span><h4>TeleportAction<a class="headerlink" href="#scenario-teleportaction" title="Link to this heading">ïƒ</a></h4> +<p>The TeleportAction instantly changes the position of an entity.</p> +</section> +<section id="trafficsinkaction"> +<span id="scenario-trafficsinkaction"></span><h4>TrafficSinkAction<a class="headerlink" href="#trafficsinkaction" title="Link to this heading">ïƒ</a></h4> +<p>The TrafficSinkAction is used to remove agents when they reach a certain position.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>At spawning time, the TrafficSinkAction is executed the common traffic is initiated, which means vehicles will spawn at the first timestamp in the defined zone, but are immediately removed at the next timestep.</p> +</div> +</section> +<section id="scenario-speedaction"> +<span id="id5"></span><h4>SpeedAction<a class="headerlink" href="#scenario-speedaction" title="Link to this heading">ïƒ</a></h4> +<p>The SpeedAction adjusts the velocity of an entity based on parameters of the SpeedAction.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>If the <strong>openPASS</strong> specific controller is used, the SpeedAction might not reflect actual values used by the simulator due to physical boundaries of the simulator.</p> +</div> +<p><strong>Example</strong> <em>AbsoulteTargetSpeed</em></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"SpeedAction"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><PrivateAction></span> +<span class="w"> </span><span class="nt"><LongitudinalAction></span> +<span class="w"> </span><span class="nt"><SpeedAction></span> +<span class="w"> </span><span class="nt"><SpeedActionDynamics</span><span class="w"> </span><span class="na">dynamicsShape=</span><span class="s">"step"</span><span class="w"> </span><span class="na">value=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">dynamicsDimension=</span><span class="s">"rate"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><SpeedActionTarget></span> +<span class="w"> </span><span class="nt"><AbsoluteTargetSpeed</span><span class="w"> </span><span class="na">value=</span><span class="s">"20"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></SpeedActionTarget></span> +<span class="w"> </span><span class="nt"></SpeedAction></span> +<span class="w"> </span><span class="nt"></LongitudinalAction></span> +<span class="w"> </span><span class="nt"></PrivateAction></span> +<span class="nt"></Action></span> +</pre></div> +</div> +<p><strong>Example</strong> <em>RelativeTargetSpeed</em></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"SpeedAction"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><PrivateAction></span> +<span class="w"> </span><span class="nt"><LongitudinalAction></span> +<span class="w"> </span><span class="nt"><SpeedAction></span> +<span class="w"> </span><span class="nt"><SpeedActionDynamics</span><span class="w"> </span><span class="na">dynamicsShape=</span><span class="s">"step"</span><span class="w"> </span><span class="na">value=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">dynamicsDimension=</span><span class="s">"rate"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><SpeedActionTarget></span> +<span class="w"> </span><span class="nt"><RelativeTargetSpeed</span><span class="w"> </span><span class="na">entityRef=</span><span class="s">"ScenarioAgent"</span><span class="w"> </span><span class="na">value=</span><span class="s">"10"</span> +<span class="w"> </span><span class="na">speedTargetValueType=</span><span class="s">"delta"</span><span class="w"> </span><span class="na">continuous=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></SpeedActionTarget></span> +<span class="w"> </span><span class="nt"></SpeedAction></span> +<span class="w"> </span><span class="nt"></LongitudinalAction></span> +<span class="w"> </span><span class="nt"></PrivateAction></span> +<span class="nt"></Action></span> +</pre></div> +</div> +</section> +<section id="setcomponentstate-userdefinedaction"> +<span id="scenario-componentstatechange"></span><h4>SetComponentState (UserDefinedAction)<a class="headerlink" href="#setcomponentstate-userdefinedaction" title="Link to this heading">ïƒ</a></h4> +<p>Command Keyword: <code class="docutils literal notranslate"><span class="pre">SetComponentState</span></code></p> +<p>Influences the maximum reachable state of an agent component handled by the ComponentController, i.e. it can either activate or deactivate a component. +For more details see the description of the <a class="reference internal" href="../../advanced_topics/simulator/agent_components.html#agentcomponents-componentcontroller"><span class="std std-ref">ComponentController</span></a>.</p> +<p><strong>Example</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"ComponentStateChange"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><UserDefinedAction></span> +<span class="w"> </span><span class="nt"><CustomCommandAction></span>SetComponentState<span class="w"> </span>Dynamics_TrajectoryFollower<span class="w"> </span>Acting<span class="nt"></CustomCommandAction></span> +<span class="w"> </span><span class="nt"></UserDefinedAction></span> +<span class="nt"></Action></span> +</pre></div> +</div> +</section> +<section id="defaultcustomcommandaction-userdefinedaction"> +<span id="scenario-defaultcustomcommandaction"></span><h4>DefaultCustomCommandAction (UserDefinedAction)<a class="headerlink" href="#defaultcustomcommandaction-userdefinedaction" title="Link to this heading">ïƒ</a></h4> +<p>This is <strong>the</strong> default custom command, and is always selected, if <strong>the first WORD</strong> (Keyword) in the command string is <strong>not</strong> registered as a special custom command. +The command is universally accessible across all components via <cite>ScenarioControlInterface::GetCustomCommands()</cite>, empowering users to define personalized actions tailored to their specific needs. +Once defined, the functionality of this command is unique to the user, based on their custom implementation.</p> +<div class="admonition-fmu-wrapper-component-for-osmp-messages-only admonition"> +<p class="admonition-title">FMU_Wrapper component for OSMP messages only</p> +<p>The linked string signal is set as custom action of the TrafficCommand. For more information on OSMP FMUs see the <a class="reference internal" href="../sim_user_guide/components/vehicle.html#components-fmuwrapper"><span class="std std-ref">FMU Wrapper</span></a> documentation.</p> +</div> +<p><strong>Example</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Action</span><span class="w"> </span><span class="na">name=</span><span class="s">"CustomParameters"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><UserDefinedAction></span> +<span class="w"> </span><span class="nt"><CustomCommandAction></span>Arbitrary<span class="w"> </span>String,<span class="w"> </span>e.g.<span class="w"> </span>{<span class="w"> </span>"hello":<span class="w"> </span>"world"}<span class="nt"></CustomCommandAction></span> +<span class="w"> </span><span class="nt"></UserDefinedAction></span> +<span class="nt"></Action></span> +</pre></div> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Here, “Arbitrary†is first checked, if it matches any other available Keyword for used defined actions, such as <a class="reference internal" href="#scenario-componentstatechange"><span class="std std-ref">SetComponentState (UserDefinedAction)</span></a>.</p> +</div> +</section> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="profilescatalog.html" class="btn btn-neutral float-left" title="ProfilesCatalog" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="scenario_api_support.html" class="btn btn-neutral float-right" title="Scenario API Support" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/configs/scenario_api_support.html b/content/html/user_guide/configs/scenario_api_support.html index c796b13a5a3ed065718f78ddcb11c863e744a84a..a249642ff56f74e7f0aa75306eec396b221e8041 100644 --- a/content/html/user_guide/configs/scenario_api_support.html +++ b/content/html/user_guide/configs/scenario_api_support.html @@ -1,524 +1,531 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Scenario API Support — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Scenery" href="scenery.html" /> - <link rel="prev" title="Scenario" href="scenario.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="profilescatalog.html">ProfilesCatalog</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario.html">Scenario</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Scenario API Support</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#igeometryhelper">IGeometryHelper</a></li> -<li class="toctree-l3"><a class="reference internal" href="#ienvironment">IEnvironment</a></li> -<li class="toctree-l3"><a class="reference internal" href="#icoordconverter">ICoordConverter</a></li> -<li class="toctree-l3"><a class="reference internal" href="#ilanelocationqueryservice">ILaneLocationQueryService</a></li> -<li class="toctree-l3"><a class="reference internal" href="#icontrollerrepository">IControllerRepository</a></li> -<li class="toctree-l3"><a class="reference internal" href="#ientity">IEntity</a></li> -<li class="toctree-l3"><a class="reference internal" href="#ivehicle">IVehicle</a></li> -<li class="toctree-l3"><a class="reference internal" href="#ipedestrian">IPedestrian</a></li> -<li class="toctree-l3"><a class="reference internal" href="#istaticobject">IStaticObject</a></li> -<li class="toctree-l3"><a class="reference internal" href="#ientityrepository">IEntityRepository</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="scenery.html">Scenery</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulationconfig.html">SimulationConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="staticsystemconfig.html">Static SystemConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="systemconfigblueprint.html">SystemConfigBlueprint</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> - <li class="breadcrumb-item active">Scenario API Support</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/user_guide/configs/scenario_api_support.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="scenario-api-support"> -<span id="id1"></span><h1>Scenario API Support<a class="headerlink" href="#scenario-api-support" title="Link to this heading">ïƒ</a></h1> -<section id="igeometryhelper"> -<h2>IGeometryHelper<a class="headerlink" href="#igeometryhelper" title="Link to this heading">ïƒ</a></h2> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Function</p></th> -<th class="head"><p>Status</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>TranslateGlobalPositionLocally</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>TransformPolylinePointsFromWorldToLocal</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>TransformPositionFromWorldToLocal</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>—————————————</p></td> -<td><p>————–</p></td> -</tr> -</tbody> -</table> -</section> -<section id="ienvironment"> -<h2>IEnvironment<a class="headerlink" href="#ienvironment" title="Link to this heading">ïƒ</a></h2> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Function</p></th> -<th class="head"><p>Status</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>CreateMap</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>AddEntityToController</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>RemoveControllerFromEntity</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-odd"><td><p>UpdateControlStrategies</p></td> -<td><p>Currently ControlStrategies are always overwritten</p></td> -</tr> -<tr class="row-even"><td><p>HasControlStrategyGoalBeenReached</p></td> -<td><p>⌠Not yet implemented (always returns true)</p></td> -</tr> -<tr class="row-odd"><td><p>GetQueryService</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>GetConverter</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>GetGeometryHelper</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>GetEntityRepository</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>GetControllerRepository</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>SetDateTime</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-odd"><td><p>GetDateTime</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-even"><td><p>GetSimulationTime</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>SetWeather</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>SetRoadCondition</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-odd"><td><p>SetTrafficSignalState</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-even"><td><p>ExecuteCustomCommand</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>SetUserDefinedValue</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-even"><td><p>GetUserDefinedValue</p></td> -<td><p>⌠Not yet implemented (always returns nullopt)</p></td> -</tr> -<tr class="row-odd"><td><p>———————————-</p></td> -<td><p>—————————————————</p></td> -</tr> -</tbody> -</table> -</section> -<section id="icoordconverter"> -<h2>ICoordConverter<a class="headerlink" href="#icoordconverter" title="Link to this heading">ïƒ</a></h2> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Function</p></th> -<th class="head"><p>Status</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Convert</p></td> -<td><p>Implemented for OpenDrivePosition only</p></td> -</tr> -<tr class="row-odd"><td><p>———</p></td> -<td><p>—————————————</p></td> -</tr> -</tbody> -</table> -</section> -<section id="ilanelocationqueryservice"> -<h2>ILaneLocationQueryService<a class="headerlink" href="#ilanelocationqueryservice" title="Link to this heading">ïƒ</a></h2> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Function</p></th> -<th class="head"><p>Status</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>GetLaneOrientation</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>GetUpwardsShiftedLanePosition</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>IsPositionOnLane</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>GetLaneIdsAtPosition</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>FindLanePoseAtDistanceFrom</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>GetLongitudinalLaneDistanceBetweenPositions</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>FindRelativeLanePoseAtDistanceFrom</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>GetRelativeLaneId</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>——————————————–</p></td> -<td><p>————–</p></td> -</tr> -</tbody> -</table> -</section> -<section id="icontrollerrepository"> -<h2>IControllerRepository<a class="headerlink" href="#icontrollerrepository" title="Link to this heading">ïƒ</a></h2> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Function</p></th> -<th class="head"><p>Status</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Create</p></td> -<td><p>Implemented for ExternalControllerConfig (openPASS AgentProfile)</p></td> -</tr> -<tr class="row-odd"><td><p>Get</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>Contains</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>Delete</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-even"><td><p>———</p></td> -<td><p>—————————————————————–</p></td> -</tr> -</tbody> -</table> -</section> -<section id="ientity"> -<h2>IEntity<a class="headerlink" href="#ientity" title="Link to this heading">ïƒ</a></h2> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Function</p></th> -<th class="head"><p>Status</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>GetUniqueId</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>SetName</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>GetName</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>SetPosition</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>GetPosition</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>SetVelocity</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>GetVelocity</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>SetAcceleration</p></td> -<td><p>not during Init, only absolute acceleration set</p></td> -</tr> -<tr class="row-even"><td><p>GetAcceleration</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>SetOrientation</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>GetOrientation</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>SetOrientationRate</p></td> -<td><p>not during Init</p></td> -</tr> -<tr class="row-even"><td><p>GetOrientationRate</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>SetOrientationAcceleration</p></td> -<td><p>not during Init</p></td> -</tr> -<tr class="row-even"><td><p>GetOrientationAcceleration</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>SetAssignedLaneIds</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-even"><td><p>GetAssignedLaneIds</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-odd"><td><p>SetVisibility</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-even"><td><p>GetVisibility</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-odd"><td><p>—————————</p></td> -<td><p>————————————————</p></td> -</tr> -</tbody> -</table> -</section> -<section id="ivehicle"> -<h2>IVehicle<a class="headerlink" href="#ivehicle" title="Link to this heading">ïƒ</a></h2> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Function</p></th> -<th class="head"><p>Status</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>SetProperties</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-odd"><td><p>GetProperties</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>SetIndicatorState</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-odd"><td><p>GetIndicatorState</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-even"><td><p>——————</p></td> -<td><p>———————-</p></td> -</tr> -</tbody> -</table> -</section> -<section id="ipedestrian"> -<h2>IPedestrian<a class="headerlink" href="#ipedestrian" title="Link to this heading">ïƒ</a></h2> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Function</p></th> -<th class="head"><p>Status</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>SetProperties</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-odd"><td><p>GetProperties</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>——————</p></td> -<td><p>———————-</p></td> -</tr> -</tbody> -</table> -</section> -<section id="istaticobject"> -<h2>IStaticObject<a class="headerlink" href="#istaticobject" title="Link to this heading">ïƒ</a></h2> -<p>⌠Not yet implemented</p> -</section> -<section id="ientityrepository"> -<h2>IEntityRepository<a class="headerlink" href="#ientityrepository" title="Link to this heading">ïƒ</a></h2> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Function</p></th> -<th class="head"><p>Status</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Create (Vehicle)</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>Create (Pedestrian)</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>Create (StaticObject)</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-odd"><td><p>GetHost</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-even"><td><p>Get (Name)</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-odd"><td><p>Get (Id)</p></td> -<td><p>âœ”ï¸ Implemented</p></td> -</tr> -<tr class="row-even"><td><p>Contains</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-odd"><td><p>Delete (Name)</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-even"><td><p>Delete (Id)</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-odd"><td><p>GetEntities</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-even"><td><p>RegisterEntityCreatedCallback</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-odd"><td><p>RegisterEntityDeletedCallback</p></td> -<td><p>⌠Not yet implemented</p></td> -</tr> -<tr class="row-even"><td><p>——————————</p></td> -<td><p>———————-</p></td> -</tr> -</tbody> -</table> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="scenario.html" class="btn btn-neutral float-left" title="Scenario" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="scenery.html" class="btn btn-neutral float-right" title="Scenery" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Scenario API Support — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Scenery" href="scenery.html" /> + <link rel="prev" title="Scenario" href="scenario.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="profilescatalog.html">ProfilesCatalog</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario.html">Scenario</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Scenario API Support</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#igeometryhelper">IGeometryHelper</a></li> +<li class="toctree-l3"><a class="reference internal" href="#ienvironment">IEnvironment</a></li> +<li class="toctree-l3"><a class="reference internal" href="#icoordconverter">ICoordConverter</a></li> +<li class="toctree-l3"><a class="reference internal" href="#ilanelocationqueryservice">ILaneLocationQueryService</a></li> +<li class="toctree-l3"><a class="reference internal" href="#icontrollerrepository">IControllerRepository</a></li> +<li class="toctree-l3"><a class="reference internal" href="#ientity">IEntity</a></li> +<li class="toctree-l3"><a class="reference internal" href="#ivehicle">IVehicle</a></li> +<li class="toctree-l3"><a class="reference internal" href="#ipedestrian">IPedestrian</a></li> +<li class="toctree-l3"><a class="reference internal" href="#istaticobject">IStaticObject</a></li> +<li class="toctree-l3"><a class="reference internal" href="#ientityrepository">IEntityRepository</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="scenery.html">Scenery</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulationconfig.html">SimulationConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="staticsystemconfig.html">Static SystemConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="systemconfigblueprint.html">SystemConfigBlueprint</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> + <li class="breadcrumb-item active">Scenario API Support</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/user_guide/configs/scenario_api_support.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="scenario-api-support"> +<span id="id1"></span><h1>Scenario API Support<a class="headerlink" href="#scenario-api-support" title="Link to this heading">ïƒ</a></h1> +<section id="igeometryhelper"> +<h2>IGeometryHelper<a class="headerlink" href="#igeometryhelper" title="Link to this heading">ïƒ</a></h2> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Function</p></th> +<th class="head"><p>Status</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>TranslateGlobalPositionLocally</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>TransformPolylinePointsFromWorldToLocal</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>TransformPositionFromWorldToLocal</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>—————————————</p></td> +<td><p>————–</p></td> +</tr> +</tbody> +</table> +</section> +<section id="ienvironment"> +<h2>IEnvironment<a class="headerlink" href="#ienvironment" title="Link to this heading">ïƒ</a></h2> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Function</p></th> +<th class="head"><p>Status</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>CreateMap</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>AddEntityToController</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>RemoveControllerFromEntity</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-odd"><td><p>UpdateControlStrategies</p></td> +<td><p>Currently ControlStrategies are always overwritten</p></td> +</tr> +<tr class="row-even"><td><p>HasControlStrategyGoalBeenReached</p></td> +<td><p>⌠Not yet implemented (always returns true)</p></td> +</tr> +<tr class="row-odd"><td><p>GetQueryService</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>GetConverter</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>GetGeometryHelper</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>GetEntityRepository</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>GetControllerRepository</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>SetDateTime</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-odd"><td><p>GetDateTime</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-even"><td><p>GetSimulationTime</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>SetWeather</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>SetRoadCondition</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-odd"><td><p>SetTrafficSignalState</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-even"><td><p>ExecuteCustomCommand</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>SetUserDefinedValue</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-even"><td><p>GetUserDefinedValue</p></td> +<td><p>⌠Not yet implemented (always returns nullopt)</p></td> +</tr> +<tr class="row-odd"><td><p>SetVariable</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-even"><td><p>GetVariable</p></td> +<td><p>⌠Not yet implemented (always returns nullopt)</p></td> +</tr> +<tr class="row-odd"><td><p>———————————-</p></td> +<td><p>—————————————————</p></td> +</tr> +</tbody> +</table> +</section> +<section id="icoordconverter"> +<h2>ICoordConverter<a class="headerlink" href="#icoordconverter" title="Link to this heading">ïƒ</a></h2> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Function</p></th> +<th class="head"><p>Status</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Convert</p></td> +<td><p>Implemented for OpenDrivePosition only</p></td> +</tr> +<tr class="row-odd"><td><p>———</p></td> +<td><p>—————————————</p></td> +</tr> +</tbody> +</table> +</section> +<section id="ilanelocationqueryservice"> +<h2>ILaneLocationQueryService<a class="headerlink" href="#ilanelocationqueryservice" title="Link to this heading">ïƒ</a></h2> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Function</p></th> +<th class="head"><p>Status</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>GetLaneOrientation</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>GetUpwardsShiftedLanePosition</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>IsPositionOnLane</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>GetLaneIdsAtPosition</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>FindLanePoseAtDistanceFrom</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>GetLongitudinalLaneDistanceBetweenPositions</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>FindRelativeLanePoseAtDistanceFrom</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>GetRelativeLaneId</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>——————————————–</p></td> +<td><p>————–</p></td> +</tr> +</tbody> +</table> +</section> +<section id="icontrollerrepository"> +<h2>IControllerRepository<a class="headerlink" href="#icontrollerrepository" title="Link to this heading">ïƒ</a></h2> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Function</p></th> +<th class="head"><p>Status</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Create</p></td> +<td><p>Implemented for ExternalControllerConfig (openPASS AgentProfile)</p></td> +</tr> +<tr class="row-odd"><td><p>Get</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>Contains</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>Delete</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-even"><td><p>———</p></td> +<td><p>—————————————————————–</p></td> +</tr> +</tbody> +</table> +</section> +<section id="ientity"> +<h2>IEntity<a class="headerlink" href="#ientity" title="Link to this heading">ïƒ</a></h2> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Function</p></th> +<th class="head"><p>Status</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>GetUniqueId</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>SetName</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>GetName</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>SetPosition</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>GetPosition</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>SetVelocity</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>GetVelocity</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>SetAcceleration</p></td> +<td><p>not during Init, only absolute acceleration set</p></td> +</tr> +<tr class="row-even"><td><p>GetAcceleration</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>SetOrientation</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>GetOrientation</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>SetOrientationRate</p></td> +<td><p>not during Init</p></td> +</tr> +<tr class="row-even"><td><p>GetOrientationRate</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>SetOrientationAcceleration</p></td> +<td><p>not during Init</p></td> +</tr> +<tr class="row-even"><td><p>GetOrientationAcceleration</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>SetAssignedLaneIds</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-even"><td><p>GetAssignedLaneIds</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-odd"><td><p>SetVisibility</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-even"><td><p>GetVisibility</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-odd"><td><p>—————————</p></td> +<td><p>————————————————</p></td> +</tr> +</tbody> +</table> +</section> +<section id="ivehicle"> +<h2>IVehicle<a class="headerlink" href="#ivehicle" title="Link to this heading">ïƒ</a></h2> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Function</p></th> +<th class="head"><p>Status</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>SetProperties</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-odd"><td><p>GetProperties</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>SetIndicatorState</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-odd"><td><p>GetIndicatorState</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-even"><td><p>——————</p></td> +<td><p>———————-</p></td> +</tr> +</tbody> +</table> +</section> +<section id="ipedestrian"> +<h2>IPedestrian<a class="headerlink" href="#ipedestrian" title="Link to this heading">ïƒ</a></h2> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Function</p></th> +<th class="head"><p>Status</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>SetProperties</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-odd"><td><p>GetProperties</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>——————</p></td> +<td><p>———————-</p></td> +</tr> +</tbody> +</table> +</section> +<section id="istaticobject"> +<h2>IStaticObject<a class="headerlink" href="#istaticobject" title="Link to this heading">ïƒ</a></h2> +<p>⌠Not yet implemented</p> +</section> +<section id="ientityrepository"> +<h2>IEntityRepository<a class="headerlink" href="#ientityrepository" title="Link to this heading">ïƒ</a></h2> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Function</p></th> +<th class="head"><p>Status</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Create (Vehicle)</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>Create (Pedestrian)</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>Create (StaticObject)</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-odd"><td><p>GetHost</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-even"><td><p>Get (Name)</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-odd"><td><p>Get (Id)</p></td> +<td><p>âœ”ï¸ Implemented</p></td> +</tr> +<tr class="row-even"><td><p>Contains</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-odd"><td><p>Delete (Name)</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-even"><td><p>Delete (Id)</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-odd"><td><p>GetEntities</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-even"><td><p>RegisterEntityCreatedCallback</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-odd"><td><p>RegisterEntityDeletedCallback</p></td> +<td><p>⌠Not yet implemented</p></td> +</tr> +<tr class="row-even"><td><p>——————————</p></td> +<td><p>———————-</p></td> +</tr> +</tbody> +</table> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="scenario.html" class="btn btn-neutral float-left" title="Scenario" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="scenery.html" class="btn btn-neutral float-right" title="Scenery" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/configs/scenery.html b/content/html/user_guide/configs/scenery.html index 52affd81b63990069d1d835f50a58219738b7e11..3238f94e89c4fd9dfc90407bf89c2074cd5b162e 100644 --- a/content/html/user_guide/configs/scenery.html +++ b/content/html/user_guide/configs/scenery.html @@ -1,252 +1,253 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Scenery — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="SimulationConfig" href="simulationconfig.html" /> - <link rel="prev" title="Scenario API Support" href="scenario_api_support.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="profilescatalog.html">ProfilesCatalog</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario.html">Scenario</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario_api_support.html">Scenario API Support</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Scenery</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#restrictions">Restrictions</a></li> -<li class="toctree-l3"><a class="reference internal" href="#full-example">Full Example</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="simulationconfig.html">SimulationConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="staticsystemconfig.html">Static SystemConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="systemconfigblueprint.html">SystemConfigBlueprint</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> - <li class="breadcrumb-item active">Scenery</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/user_guide/configs/scenery.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="scenery"> -<span id="id1"></span><h1>Scenery<a class="headerlink" href="#scenery" title="Link to this heading">ïƒ</a></h1> -<p>This file describes the road network and all static objects of the road for the simulation run. -It is structured according to the <strong>ASAM OpenDRIVE 1.6</strong> standard.</p> -<p>The file name can be freely chosen, but needs to be properly referenced by the <a class="reference internal" href="scenario.html#scenario"><span class="std std-ref">Scenario</span></a> within the tag <a class="reference internal" href="scenario.html#scenario-roadnetwork"><span class="std std-ref">RoadNetwork</span></a>.</p> -<section id="restrictions"> -<h2>Restrictions<a class="headerlink" href="#restrictions" title="Link to this heading">ïƒ</a></h2> -<p>If object definitions does not meet the <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> or are not supported, the simulation is aborted. -On top <strong>openPASS</strong> adds some additional requirements to the attributes of objects:</p> -<ul class="simple"> -<li><p>length > 0</p></li> -<li><p>width > 0</p></li> -<li><p>radius == 0</p></li> -</ul> -<p>Objects, which do no meet these requirements are ignored.</p> -</section> -<section id="full-example"> -<h2>Full Example<a class="headerlink" href="#full-example" title="Link to this heading">ïƒ</a></h2> -<div class="literal-block-wrapper docutils container" id="id2"> -<div class="code-block-caption"><span class="caption-text">SceneryConfiguration.xodr</span><a class="headerlink" href="#id2" title="Link to this code">ïƒ</a></div> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="nt"><OpenDRIVE></span> -<span class="linenos"> 2</span><span class="w"> </span><span class="nt"><header</span><span class="w"> </span><span class="na">revMajor=</span><span class="s">"1"</span><span class="w"> </span><span class="na">revMinor=</span><span class="s">"1"</span><span class="w"> </span><span class="na">name=</span><span class="s">"Testfile"</span><span class="w"> </span><span class="na">version=</span><span class="s">"1"</span><span class="w"> </span><span class="na">date=</span><span class="s">"Thu Feb 8 14:24:06 2007"</span><span class="w"> </span><span class="na">north=</span><span class="s">"2.0000000000000000e+003"</span><span class="w"> </span><span class="na">south=</span><span class="s">"-2.0000000000000000e+003"</span><span class="w"> </span><span class="na">east=</span><span class="s">"2.0000000000000000e+003"</span><span class="w"> </span><span class="na">west=</span><span class="s">"-2.0000000000000000e+003"</span><span class="nt">/></span> -<span class="linenos"> 3</span><span class="w"> </span><span class="nt"><road</span><span class="w"> </span><span class="na">name=</span><span class="s">""</span><span class="w"> </span><span class="na">length=</span><span class="s">"5139.7188686309819"</span><span class="w"> </span><span class="na">id=</span><span class="s">"1"</span><span class="w"> </span><span class="na">junction=</span><span class="s">"-1"</span><span class="nt">></span> -<span class="linenos"> 4</span><span class="w"> </span><span class="nt"><link/></span> -<span class="linenos"> 5</span><span class="w"> </span><span class="nt"><planView></span> -<span class="linenos"> 6</span><span class="w"> </span><span class="nt"><geometry</span><span class="w"> </span><span class="na">s=</span><span class="s">"0.0000000000000000e+000"</span><span class="w"> </span><span class="na">x=</span><span class="s">"0"</span><span class="w"> </span><span class="na">y=</span><span class="s">"7.5"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"0"</span><span class="w"> </span><span class="na">length=</span><span class="s">"4000"</span><span class="nt">></span> -<span class="linenos"> 7</span><span class="w"> </span><span class="nt"><line/></span> -<span class="linenos"> 8</span><span class="w"> </span><span class="nt"></geometry></span> -<span class="linenos"> 9</span><span class="w"> </span><span class="nt"><geometry</span><span class="w"> </span><span class="na">s=</span><span class="s">"4000"</span><span class="w"> </span><span class="na">x=</span><span class="s">"4000"</span><span class="w"> </span><span class="na">y=</span><span class="s">"7.5"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"0"</span><span class="w"> </span><span class="na">length=</span><span class="s">"285"</span><span class="nt">></span> -<span class="linenos">10</span><span class="w"> </span><span class="nt"><spiral</span><span class="w"> </span><span class="na">curvStart=</span><span class="s">"0.0000000000000000e+000"</span><span class="w"> </span><span class="na">curvEnd=</span><span class="s">"-0.0028500000000000066"</span><span class="nt">/></span> -<span class="linenos">11</span><span class="w"> </span><span class="nt"></geometry></span> -<span class="linenos">12</span><span class="w"> </span><span class="nt"><geometry</span><span class="w"> </span><span class="na">s=</span><span class="s">"4285"</span><span class="w"> </span><span class="na">x=</span><span class="s">"4280.3350391612494"</span><span class="w"> </span><span class="na">y=</span><span class="s">"-30.629710830536482"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"-0.40612500000000096"</span><span class="w"> </span><span class="na">length=</span><span class="s">"183.7188686309816"</span><span class="nt">></span> -<span class="linenos">13</span><span class="w"> </span><span class="nt"><arc</span><span class="w"> </span><span class="na">curvature=</span><span class="s">"-0.0028500000000000066"</span><span class="nt">/></span> -<span class="linenos">14</span><span class="w"> </span><span class="nt"></geometry></span> -<span class="linenos">15</span><span class="w"> </span><span class="nt"><geometry</span><span class="w"> </span><span class="na">s=</span><span class="s">"4468.7188686309819"</span><span class="w"> </span><span class="na">x=</span><span class="s">"4422.9323279193268"</span><span class="w"> </span><span class="na">y=</span><span class="s">"-143.12204699500415"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"-0.92972377559829977"</span><span class="w"> </span><span class="na">length=</span><span class="s">"571"</span><span class="nt">></span> -<span class="linenos">16</span><span class="w"> </span><span class="nt"><spiral</span><span class="w"> </span><span class="na">curvStart=</span><span class="s">"-0.0028500000000000066"</span><span class="w"> </span><span class="na">curvEnd=</span><span class="s">"0.0000000000000000e+000"</span><span class="nt">/></span> -<span class="linenos">17</span><span class="w"> </span><span class="nt"></geometry></span> -<span class="linenos">18</span><span class="w"> </span><span class="nt"><geometry</span><span class="w"> </span><span class="na">s=</span><span class="s">"5039.7188686309819"</span><span class="w"> </span><span class="na">x=</span><span class="s">"4476.6651848689908"</span><span class="w"> </span><span class="na">y=</span><span class="s">"-694.88624436808436"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"-1.7453292519943295"</span><span class="w"> </span><span class="na">length=</span><span class="s">"100"</span><span class="nt">></span> -<span class="linenos">19</span><span class="w"> </span><span class="nt"><line/></span> -<span class="linenos">20</span><span class="w"> </span><span class="nt"></geometry></span> -<span class="linenos">21</span><span class="w"> </span><span class="nt"></planView></span> -<span class="linenos">22</span><span class="w"> </span><span class="nt"><elevationProfile/></span> -<span class="linenos">23</span><span class="w"> </span><span class="nt"><lateralProfile/></span> -<span class="linenos">24</span><span class="w"> </span><span class="nt"><lanes></span> -<span class="linenos">25</span><span class="w"> </span><span class="nt"><laneSection</span><span class="w"> </span><span class="na">s=</span><span class="s">"0.0000000000000000e+000"</span><span class="nt">></span> -<span class="linenos">26</span><span class="w"> </span><span class="nt"><left/></span> -<span class="linenos">27</span><span class="w"> </span><span class="nt"><center></span> -<span class="linenos">28</span><span class="w"> </span><span class="nt"><lane</span><span class="w"> </span><span class="na">id=</span><span class="s">"0"</span><span class="w"> </span><span class="na">type=</span><span class="s">"border"</span><span class="w"> </span><span class="na">level=</span><span class="s">"true"</span><span class="nt">></span> -<span class="linenos">29</span><span class="w"> </span><span class="nt"><link></span> -<span class="linenos">30</span><span class="w"> </span><span class="nt"><successor</span><span class="w"> </span><span class="na">id=</span><span class="s">"0"</span><span class="nt">/></span> -<span class="linenos">31</span><span class="w"> </span><span class="nt"></link></span> -<span class="linenos">32</span><span class="w"> </span><span class="nt"><roadMark</span><span class="w"> </span><span class="na">weight=</span><span class="s">"standard"</span><span class="w"> </span><span class="na">sOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">type=</span><span class="s">"solid"</span><span class="w"> </span><span class="na">color=</span><span class="s">"standard"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">laneChange=</span><span class="s">"both"</span><span class="nt">/></span> -<span class="linenos">33</span><span class="w"> </span><span class="nt"></lane></span> -<span class="linenos">34</span><span class="w"> </span><span class="nt"></center></span> -<span class="linenos">35</span><span class="w"> </span><span class="nt"><right></span> -<span class="linenos">36</span><span class="w"> </span><span class="nt"><lane</span><span class="w"> </span><span class="na">id=</span><span class="s">"-1"</span><span class="w"> </span><span class="na">type=</span><span class="s">"driving"</span><span class="w"> </span><span class="na">level=</span><span class="s">"true"</span><span class="nt">></span> -<span class="linenos">37</span><span class="w"> </span><span class="nt"><link></span> -<span class="linenos">38</span><span class="w"> </span><span class="nt"><successor</span><span class="w"> </span><span class="na">id=</span><span class="s">"-1"</span><span class="nt">/></span> -<span class="linenos">39</span><span class="w"> </span><span class="nt"></link></span> -<span class="linenos">40</span><span class="w"> </span><span class="nt"><width</span><span class="w"> </span><span class="na">sOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">a=</span><span class="s">"3.75"</span><span class="w"> </span><span class="na">b=</span><span class="s">"0"</span><span class="w"> </span><span class="na">c=</span><span class="s">"0"</span><span class="w"> </span><span class="na">d=</span><span class="s">"0"</span><span class="nt">/></span> -<span class="linenos">41</span><span class="w"> </span><span class="nt"><roadMark</span><span class="w"> </span><span class="na">weight=</span><span class="s">"standard"</span><span class="w"> </span><span class="na">sOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">type=</span><span class="s">"broken"</span><span class="w"> </span><span class="na">color=</span><span class="s">"standard"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">laneChange=</span><span class="s">"both"</span><span class="nt">/></span> -<span class="linenos">42</span><span class="w"> </span><span class="nt"></lane></span> -<span class="linenos">43</span><span class="w"> </span><span class="nt"><lane</span><span class="w"> </span><span class="na">id=</span><span class="s">"-2"</span><span class="w"> </span><span class="na">type=</span><span class="s">"driving"</span><span class="w"> </span><span class="na">level=</span><span class="s">"true"</span><span class="nt">></span> -<span class="linenos">44</span><span class="w"> </span><span class="nt"><link></span> -<span class="linenos">45</span><span class="w"> </span><span class="nt"><successor</span><span class="w"> </span><span class="na">id=</span><span class="s">"-2"</span><span class="nt">/></span> -<span class="linenos">46</span><span class="w"> </span><span class="nt"></link></span> -<span class="linenos">47</span><span class="w"> </span><span class="nt"><width</span><span class="w"> </span><span class="na">sOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">a=</span><span class="s">"3.75"</span><span class="w"> </span><span class="na">b=</span><span class="s">"0"</span><span class="w"> </span><span class="na">c=</span><span class="s">"0"</span><span class="w"> </span><span class="na">d=</span><span class="s">"0"</span><span class="nt">/></span> -<span class="linenos">48</span><span class="w"> </span><span class="nt"><roadMark</span><span class="w"> </span><span class="na">weight=</span><span class="s">"standard"</span><span class="w"> </span><span class="na">sOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">type=</span><span class="s">"solid"</span><span class="w"> </span><span class="na">color=</span><span class="s">"standard"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">laneChange=</span><span class="s">"both"</span><span class="nt">/></span> -<span class="linenos">49</span><span class="w"> </span><span class="nt"></lane></span> -<span class="linenos">50</span><span class="w"> </span><span class="nt"></right></span> -<span class="linenos">51</span><span class="w"> </span><span class="nt"></laneSection></span> -<span class="linenos">52</span><span class="w"> </span><span class="nt"></lanes></span> -<span class="linenos">53</span><span class="w"> </span><span class="nt"><objects></span> -<span class="linenos">54</span><span class="w"> </span><span class="nt"><object</span><span class="w"> </span><span class="na">type=</span><span class="s">"roadMark"</span><span class="w"> </span><span class="na">name=</span><span class="s">"RoadSideMarkerPost"</span><span class="w"> </span><span class="na">id=</span><span class="s">""</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">t=</span><span class="s">"1"</span><span class="w"> </span><span class="na">zOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">validLength=</span><span class="s">"0"</span><span class="w"> </span><span class="na">orientation=</span><span class="s">"+"</span><span class="w"> </span><span class="na">length=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">height=</span><span class="s">"1.2"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"0"</span><span class="w"> </span><span class="na">pitch=</span><span class="s">"0"</span><span class="w"> </span><span class="na">roll=</span><span class="s">"0"</span><span class="nt">></span> -<span class="linenos">55</span><span class="w"> </span><span class="nt"><repeat</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">distance=</span><span class="s">"50"</span><span class="w"> </span><span class="na">length=</span><span class="s">"5139.7188686309819"</span><span class="nt">/></span> -<span class="linenos">56</span><span class="w"> </span><span class="nt"></object></span> -<span class="linenos">57</span><span class="w"> </span><span class="nt"><object</span><span class="w"> </span><span class="na">type=</span><span class="s">"roadMark"</span><span class="w"> </span><span class="na">name=</span><span class="s">"RoadSideMarkerPost"</span><span class="w"> </span><span class="na">id=</span><span class="s">""</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-8.5"</span><span class="w"> </span><span class="na">zOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">validLength=</span><span class="s">"0"</span><span class="w"> </span><span class="na">orientation=</span><span class="s">"-"</span><span class="w"> </span><span class="na">length=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">height=</span><span class="s">"1.2"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"0"</span><span class="w"> </span><span class="na">pitch=</span><span class="s">"0"</span><span class="w"> </span><span class="na">roll=</span><span class="s">"0"</span><span class="nt">></span> -<span class="linenos">58</span><span class="w"> </span><span class="nt"><repeat</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">distance=</span><span class="s">"50"</span><span class="w"> </span><span class="na">length=</span><span class="s">"5139.7188686309819"</span><span class="nt">/></span> -<span class="linenos">59</span><span class="w"> </span><span class="nt"></object></span> -<span class="linenos">60</span><span class="w"> </span><span class="nt"><object</span><span class="w"> </span><span class="na">type=</span><span class="s">"railing"</span><span class="w"> </span><span class="na">name=</span><span class="s">"GuardRail"</span><span class="w"> </span><span class="na">id=</span><span class="s">""</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">t=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">zOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">validLength=</span><span class="s">"0"</span><span class="w"> </span><span class="na">orientation=</span><span class="s">"+"</span><span class="w"> </span><span class="na">length=</span><span class="s">"3.0"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.25"</span><span class="w"> </span><span class="na">height=</span><span class="s">"0.9"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"0"</span><span class="w"> </span><span class="na">pitch=</span><span class="s">"0"</span><span class="w"> </span><span class="na">roll=</span><span class="s">"0"</span><span class="nt">></span> -<span class="linenos">61</span><span class="w"> </span><span class="nt"><repeat</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">distance=</span><span class="s">"0"</span><span class="w"> </span><span class="na">length=</span><span class="s">"5139.7188686309819"</span><span class="nt">/></span> -<span class="linenos">62</span><span class="w"> </span><span class="nt"></object></span> -<span class="linenos">63</span><span class="w"> </span><span class="nt"><object</span><span class="w"> </span><span class="na">type=</span><span class="s">"railing"</span><span class="w"> </span><span class="na">name=</span><span class="s">"GuardRail"</span><span class="w"> </span><span class="na">id=</span><span class="s">""</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-8"</span><span class="w"> </span><span class="na">zOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">validLength=</span><span class="s">"0"</span><span class="w"> </span><span class="na">orientation=</span><span class="s">"-"</span><span class="w"> </span><span class="na">length=</span><span class="s">"3.0"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.25"</span><span class="w"> </span><span class="na">height=</span><span class="s">"0.9"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"0"</span><span class="w"> </span><span class="na">pitch=</span><span class="s">"0"</span><span class="w"> </span><span class="na">roll=</span><span class="s">"0"</span><span class="nt">></span> -<span class="linenos">64</span><span class="w"> </span><span class="nt"><repeat</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">distance=</span><span class="s">"0"</span><span class="w"> </span><span class="na">length=</span><span class="s">"5139.7188686309819"</span><span class="nt">/></span> -<span class="linenos">65</span><span class="w"> </span><span class="nt"></object></span> -<span class="linenos">66</span><span class="w"> </span><span class="nt"></objects></span> -<span class="linenos">67</span><span class="w"> </span><span class="nt"><signals/></span> -<span class="linenos">68</span><span class="w"> </span><span class="nt"></road></span> -<span class="linenos">69</span><span class="nt"></OpenDRIVE></span> -</pre></div> -</div> -</div> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="scenario_api_support.html" class="btn btn-neutral float-left" title="Scenario API Support" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="simulationconfig.html" class="btn btn-neutral float-right" title="SimulationConfig" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Scenery — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="SimulationConfig" href="simulationconfig.html" /> + <link rel="prev" title="Scenario API Support" href="scenario_api_support.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="profilescatalog.html">ProfilesCatalog</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario.html">Scenario</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario_api_support.html">Scenario API Support</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Scenery</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#restrictions">Restrictions</a></li> +<li class="toctree-l3"><a class="reference internal" href="#full-example">Full Example</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="simulationconfig.html">SimulationConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="staticsystemconfig.html">Static SystemConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="systemconfigblueprint.html">SystemConfigBlueprint</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> + <li class="breadcrumb-item active">Scenery</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/user_guide/configs/scenery.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="scenery"> +<span id="id1"></span><h1>Scenery<a class="headerlink" href="#scenery" title="Link to this heading">ïƒ</a></h1> +<p>This file describes the road network and all static objects of the road for the simulation run. +It is structured according to the <strong>ASAM OpenDRIVE 1.6</strong> standard.</p> +<p>The file name can be freely chosen, but needs to be properly referenced by the <a class="reference internal" href="scenario.html#scenario"><span class="std std-ref">Scenario</span></a> within the tag <a class="reference internal" href="scenario.html#scenario-roadnetwork"><span class="std std-ref">RoadNetwork</span></a>.</p> +<section id="restrictions"> +<h2>Restrictions<a class="headerlink" href="#restrictions" title="Link to this heading">ïƒ</a></h2> +<p>If object definitions does not meet the <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> or are not supported, the simulation is aborted. +On top <strong>openPASS</strong> adds some additional requirements to the attributes of objects:</p> +<ul class="simple"> +<li><p>length > 0</p></li> +<li><p>width > 0</p></li> +<li><p>radius == 0</p></li> +</ul> +<p>Objects, which do no meet these requirements are ignored.</p> +</section> +<section id="full-example"> +<h2>Full Example<a class="headerlink" href="#full-example" title="Link to this heading">ïƒ</a></h2> +<div class="literal-block-wrapper docutils container" id="id2"> +<div class="code-block-caption"><span class="caption-text">SceneryConfiguration.xodr</span><a class="headerlink" href="#id2" title="Link to this code">ïƒ</a></div> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="nt"><OpenDRIVE></span> +<span class="linenos"> 2</span><span class="w"> </span><span class="nt"><header</span><span class="w"> </span><span class="na">revMajor=</span><span class="s">"1"</span><span class="w"> </span><span class="na">revMinor=</span><span class="s">"1"</span><span class="w"> </span><span class="na">name=</span><span class="s">"Testfile"</span><span class="w"> </span><span class="na">version=</span><span class="s">"1"</span><span class="w"> </span><span class="na">date=</span><span class="s">"Thu Feb 8 14:24:06 2007"</span><span class="w"> </span><span class="na">north=</span><span class="s">"2.0000000000000000e+003"</span><span class="w"> </span><span class="na">south=</span><span class="s">"-2.0000000000000000e+003"</span><span class="w"> </span><span class="na">east=</span><span class="s">"2.0000000000000000e+003"</span><span class="w"> </span><span class="na">west=</span><span class="s">"-2.0000000000000000e+003"</span><span class="nt">/></span> +<span class="linenos"> 3</span><span class="w"> </span><span class="nt"><road</span><span class="w"> </span><span class="na">name=</span><span class="s">""</span><span class="w"> </span><span class="na">length=</span><span class="s">"5139.7188686309819"</span><span class="w"> </span><span class="na">id=</span><span class="s">"1"</span><span class="w"> </span><span class="na">junction=</span><span class="s">"-1"</span><span class="nt">></span> +<span class="linenos"> 4</span><span class="w"> </span><span class="nt"><link/></span> +<span class="linenos"> 5</span><span class="w"> </span><span class="nt"><planView></span> +<span class="linenos"> 6</span><span class="w"> </span><span class="nt"><geometry</span><span class="w"> </span><span class="na">s=</span><span class="s">"0.0000000000000000e+000"</span><span class="w"> </span><span class="na">x=</span><span class="s">"0"</span><span class="w"> </span><span class="na">y=</span><span class="s">"7.5"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"0"</span><span class="w"> </span><span class="na">length=</span><span class="s">"4000"</span><span class="nt">></span> +<span class="linenos"> 7</span><span class="w"> </span><span class="nt"><line/></span> +<span class="linenos"> 8</span><span class="w"> </span><span class="nt"></geometry></span> +<span class="linenos"> 9</span><span class="w"> </span><span class="nt"><geometry</span><span class="w"> </span><span class="na">s=</span><span class="s">"4000"</span><span class="w"> </span><span class="na">x=</span><span class="s">"4000"</span><span class="w"> </span><span class="na">y=</span><span class="s">"7.5"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"0"</span><span class="w"> </span><span class="na">length=</span><span class="s">"285"</span><span class="nt">></span> +<span class="linenos">10</span><span class="w"> </span><span class="nt"><spiral</span><span class="w"> </span><span class="na">curvStart=</span><span class="s">"0.0000000000000000e+000"</span><span class="w"> </span><span class="na">curvEnd=</span><span class="s">"-0.0028500000000000066"</span><span class="nt">/></span> +<span class="linenos">11</span><span class="w"> </span><span class="nt"></geometry></span> +<span class="linenos">12</span><span class="w"> </span><span class="nt"><geometry</span><span class="w"> </span><span class="na">s=</span><span class="s">"4285"</span><span class="w"> </span><span class="na">x=</span><span class="s">"4280.3350391612494"</span><span class="w"> </span><span class="na">y=</span><span class="s">"-30.629710830536482"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"-0.40612500000000096"</span><span class="w"> </span><span class="na">length=</span><span class="s">"183.7188686309816"</span><span class="nt">></span> +<span class="linenos">13</span><span class="w"> </span><span class="nt"><arc</span><span class="w"> </span><span class="na">curvature=</span><span class="s">"-0.0028500000000000066"</span><span class="nt">/></span> +<span class="linenos">14</span><span class="w"> </span><span class="nt"></geometry></span> +<span class="linenos">15</span><span class="w"> </span><span class="nt"><geometry</span><span class="w"> </span><span class="na">s=</span><span class="s">"4468.7188686309819"</span><span class="w"> </span><span class="na">x=</span><span class="s">"4422.9323279193268"</span><span class="w"> </span><span class="na">y=</span><span class="s">"-143.12204699500415"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"-0.92972377559829977"</span><span class="w"> </span><span class="na">length=</span><span class="s">"571"</span><span class="nt">></span> +<span class="linenos">16</span><span class="w"> </span><span class="nt"><spiral</span><span class="w"> </span><span class="na">curvStart=</span><span class="s">"-0.0028500000000000066"</span><span class="w"> </span><span class="na">curvEnd=</span><span class="s">"0.0000000000000000e+000"</span><span class="nt">/></span> +<span class="linenos">17</span><span class="w"> </span><span class="nt"></geometry></span> +<span class="linenos">18</span><span class="w"> </span><span class="nt"><geometry</span><span class="w"> </span><span class="na">s=</span><span class="s">"5039.7188686309819"</span><span class="w"> </span><span class="na">x=</span><span class="s">"4476.6651848689908"</span><span class="w"> </span><span class="na">y=</span><span class="s">"-694.88624436808436"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"-1.7453292519943295"</span><span class="w"> </span><span class="na">length=</span><span class="s">"100"</span><span class="nt">></span> +<span class="linenos">19</span><span class="w"> </span><span class="nt"><line/></span> +<span class="linenos">20</span><span class="w"> </span><span class="nt"></geometry></span> +<span class="linenos">21</span><span class="w"> </span><span class="nt"></planView></span> +<span class="linenos">22</span><span class="w"> </span><span class="nt"><elevationProfile/></span> +<span class="linenos">23</span><span class="w"> </span><span class="nt"><lateralProfile/></span> +<span class="linenos">24</span><span class="w"> </span><span class="nt"><lanes></span> +<span class="linenos">25</span><span class="w"> </span><span class="nt"><laneSection</span><span class="w"> </span><span class="na">s=</span><span class="s">"0.0000000000000000e+000"</span><span class="nt">></span> +<span class="linenos">26</span><span class="w"> </span><span class="nt"><left/></span> +<span class="linenos">27</span><span class="w"> </span><span class="nt"><center></span> +<span class="linenos">28</span><span class="w"> </span><span class="nt"><lane</span><span class="w"> </span><span class="na">id=</span><span class="s">"0"</span><span class="w"> </span><span class="na">type=</span><span class="s">"border"</span><span class="w"> </span><span class="na">level=</span><span class="s">"true"</span><span class="nt">></span> +<span class="linenos">29</span><span class="w"> </span><span class="nt"><link></span> +<span class="linenos">30</span><span class="w"> </span><span class="nt"><successor</span><span class="w"> </span><span class="na">id=</span><span class="s">"0"</span><span class="nt">/></span> +<span class="linenos">31</span><span class="w"> </span><span class="nt"></link></span> +<span class="linenos">32</span><span class="w"> </span><span class="nt"><roadMark</span><span class="w"> </span><span class="na">weight=</span><span class="s">"standard"</span><span class="w"> </span><span class="na">sOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">type=</span><span class="s">"solid"</span><span class="w"> </span><span class="na">color=</span><span class="s">"standard"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">laneChange=</span><span class="s">"both"</span><span class="nt">/></span> +<span class="linenos">33</span><span class="w"> </span><span class="nt"></lane></span> +<span class="linenos">34</span><span class="w"> </span><span class="nt"></center></span> +<span class="linenos">35</span><span class="w"> </span><span class="nt"><right></span> +<span class="linenos">36</span><span class="w"> </span><span class="nt"><lane</span><span class="w"> </span><span class="na">id=</span><span class="s">"-1"</span><span class="w"> </span><span class="na">type=</span><span class="s">"driving"</span><span class="w"> </span><span class="na">level=</span><span class="s">"true"</span><span class="nt">></span> +<span class="linenos">37</span><span class="w"> </span><span class="nt"><link></span> +<span class="linenos">38</span><span class="w"> </span><span class="nt"><successor</span><span class="w"> </span><span class="na">id=</span><span class="s">"-1"</span><span class="nt">/></span> +<span class="linenos">39</span><span class="w"> </span><span class="nt"></link></span> +<span class="linenos">40</span><span class="w"> </span><span class="nt"><width</span><span class="w"> </span><span class="na">sOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">a=</span><span class="s">"3.75"</span><span class="w"> </span><span class="na">b=</span><span class="s">"0"</span><span class="w"> </span><span class="na">c=</span><span class="s">"0"</span><span class="w"> </span><span class="na">d=</span><span class="s">"0"</span><span class="nt">/></span> +<span class="linenos">41</span><span class="w"> </span><span class="nt"><roadMark</span><span class="w"> </span><span class="na">weight=</span><span class="s">"standard"</span><span class="w"> </span><span class="na">sOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">type=</span><span class="s">"broken"</span><span class="w"> </span><span class="na">color=</span><span class="s">"standard"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">laneChange=</span><span class="s">"both"</span><span class="nt">/></span> +<span class="linenos">42</span><span class="w"> </span><span class="nt"></lane></span> +<span class="linenos">43</span><span class="w"> </span><span class="nt"><lane</span><span class="w"> </span><span class="na">id=</span><span class="s">"-2"</span><span class="w"> </span><span class="na">type=</span><span class="s">"driving"</span><span class="w"> </span><span class="na">level=</span><span class="s">"true"</span><span class="nt">></span> +<span class="linenos">44</span><span class="w"> </span><span class="nt"><link></span> +<span class="linenos">45</span><span class="w"> </span><span class="nt"><successor</span><span class="w"> </span><span class="na">id=</span><span class="s">"-2"</span><span class="nt">/></span> +<span class="linenos">46</span><span class="w"> </span><span class="nt"></link></span> +<span class="linenos">47</span><span class="w"> </span><span class="nt"><width</span><span class="w"> </span><span class="na">sOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">a=</span><span class="s">"3.75"</span><span class="w"> </span><span class="na">b=</span><span class="s">"0"</span><span class="w"> </span><span class="na">c=</span><span class="s">"0"</span><span class="w"> </span><span class="na">d=</span><span class="s">"0"</span><span class="nt">/></span> +<span class="linenos">48</span><span class="w"> </span><span class="nt"><roadMark</span><span class="w"> </span><span class="na">weight=</span><span class="s">"standard"</span><span class="w"> </span><span class="na">sOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">type=</span><span class="s">"solid"</span><span class="w"> </span><span class="na">color=</span><span class="s">"standard"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">laneChange=</span><span class="s">"both"</span><span class="nt">/></span> +<span class="linenos">49</span><span class="w"> </span><span class="nt"></lane></span> +<span class="linenos">50</span><span class="w"> </span><span class="nt"></right></span> +<span class="linenos">51</span><span class="w"> </span><span class="nt"></laneSection></span> +<span class="linenos">52</span><span class="w"> </span><span class="nt"></lanes></span> +<span class="linenos">53</span><span class="w"> </span><span class="nt"><objects></span> +<span class="linenos">54</span><span class="w"> </span><span class="nt"><object</span><span class="w"> </span><span class="na">type=</span><span class="s">"roadMark"</span><span class="w"> </span><span class="na">name=</span><span class="s">"RoadSideMarkerPost"</span><span class="w"> </span><span class="na">id=</span><span class="s">""</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">t=</span><span class="s">"1"</span><span class="w"> </span><span class="na">zOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">validLength=</span><span class="s">"0"</span><span class="w"> </span><span class="na">orientation=</span><span class="s">"+"</span><span class="w"> </span><span class="na">length=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">height=</span><span class="s">"1.2"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"0"</span><span class="w"> </span><span class="na">pitch=</span><span class="s">"0"</span><span class="w"> </span><span class="na">roll=</span><span class="s">"0"</span><span class="nt">></span> +<span class="linenos">55</span><span class="w"> </span><span class="nt"><repeat</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">distance=</span><span class="s">"50"</span><span class="w"> </span><span class="na">length=</span><span class="s">"5139.7188686309819"</span><span class="nt">/></span> +<span class="linenos">56</span><span class="w"> </span><span class="nt"></object></span> +<span class="linenos">57</span><span class="w"> </span><span class="nt"><object</span><span class="w"> </span><span class="na">type=</span><span class="s">"roadMark"</span><span class="w"> </span><span class="na">name=</span><span class="s">"RoadSideMarkerPost"</span><span class="w"> </span><span class="na">id=</span><span class="s">""</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-8.5"</span><span class="w"> </span><span class="na">zOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">validLength=</span><span class="s">"0"</span><span class="w"> </span><span class="na">orientation=</span><span class="s">"-"</span><span class="w"> </span><span class="na">length=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.12"</span><span class="w"> </span><span class="na">height=</span><span class="s">"1.2"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"0"</span><span class="w"> </span><span class="na">pitch=</span><span class="s">"0"</span><span class="w"> </span><span class="na">roll=</span><span class="s">"0"</span><span class="nt">></span> +<span class="linenos">58</span><span class="w"> </span><span class="nt"><repeat</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">distance=</span><span class="s">"50"</span><span class="w"> </span><span class="na">length=</span><span class="s">"5139.7188686309819"</span><span class="nt">/></span> +<span class="linenos">59</span><span class="w"> </span><span class="nt"></object></span> +<span class="linenos">60</span><span class="w"> </span><span class="nt"><object</span><span class="w"> </span><span class="na">type=</span><span class="s">"railing"</span><span class="w"> </span><span class="na">name=</span><span class="s">"GuardRail"</span><span class="w"> </span><span class="na">id=</span><span class="s">""</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">t=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">zOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">validLength=</span><span class="s">"0"</span><span class="w"> </span><span class="na">orientation=</span><span class="s">"+"</span><span class="w"> </span><span class="na">length=</span><span class="s">"3.0"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.25"</span><span class="w"> </span><span class="na">height=</span><span class="s">"0.9"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"0"</span><span class="w"> </span><span class="na">pitch=</span><span class="s">"0"</span><span class="w"> </span><span class="na">roll=</span><span class="s">"0"</span><span class="nt">></span> +<span class="linenos">61</span><span class="w"> </span><span class="nt"><repeat</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">distance=</span><span class="s">"0"</span><span class="w"> </span><span class="na">length=</span><span class="s">"5139.7188686309819"</span><span class="nt">/></span> +<span class="linenos">62</span><span class="w"> </span><span class="nt"></object></span> +<span class="linenos">63</span><span class="w"> </span><span class="nt"><object</span><span class="w"> </span><span class="na">type=</span><span class="s">"railing"</span><span class="w"> </span><span class="na">name=</span><span class="s">"GuardRail"</span><span class="w"> </span><span class="na">id=</span><span class="s">""</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">t=</span><span class="s">"-8"</span><span class="w"> </span><span class="na">zOffset=</span><span class="s">"0"</span><span class="w"> </span><span class="na">validLength=</span><span class="s">"0"</span><span class="w"> </span><span class="na">orientation=</span><span class="s">"-"</span><span class="w"> </span><span class="na">length=</span><span class="s">"3.0"</span><span class="w"> </span><span class="na">width=</span><span class="s">"0.25"</span><span class="w"> </span><span class="na">height=</span><span class="s">"0.9"</span><span class="w"> </span><span class="na">hdg=</span><span class="s">"0"</span><span class="w"> </span><span class="na">pitch=</span><span class="s">"0"</span><span class="w"> </span><span class="na">roll=</span><span class="s">"0"</span><span class="nt">></span> +<span class="linenos">64</span><span class="w"> </span><span class="nt"><repeat</span><span class="w"> </span><span class="na">s=</span><span class="s">"0"</span><span class="w"> </span><span class="na">distance=</span><span class="s">"0"</span><span class="w"> </span><span class="na">length=</span><span class="s">"5139.7188686309819"</span><span class="nt">/></span> +<span class="linenos">65</span><span class="w"> </span><span class="nt"></object></span> +<span class="linenos">66</span><span class="w"> </span><span class="nt"></objects></span> +<span class="linenos">67</span><span class="w"> </span><span class="nt"><signals/></span> +<span class="linenos">68</span><span class="w"> </span><span class="nt"></road></span> +<span class="linenos">69</span><span class="nt"></OpenDRIVE></span> +</pre></div> +</div> +</div> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="scenario_api_support.html" class="btn btn-neutral float-left" title="Scenario API Support" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="simulationconfig.html" class="btn btn-neutral float-right" title="SimulationConfig" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/configs/simulationconfig.html b/content/html/user_guide/configs/simulationconfig.html index 6e33489b539e758d92923be9ea5e1ab3218c3bff..b1f5381c22da05d020c2426e2735be0126060d26 100644 --- a/content/html/user_guide/configs/simulationconfig.html +++ b/content/html/user_guide/configs/simulationconfig.html @@ -1,498 +1,499 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>SimulationConfig — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Observation_Log" href="../outputs/observation_log.html" /> - <link rel="prev" title="Scenery" href="scenery.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="profilescatalog.html">ProfilesCatalog</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario.html">Scenario</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario_api_support.html">Scenario API Support</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenery.html">Scenery</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">SimulationConfig</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#profilescatalog">ProfilesCatalog</a></li> -<li class="toctree-l3"><a class="reference internal" href="#experiment">Experiment</a></li> -<li class="toctree-l3"><a class="reference internal" href="#scenario">Scenario</a></li> -<li class="toctree-l3"><a class="reference internal" href="#environment">Environment</a></li> -<li class="toctree-l3"><a class="reference internal" href="#observations">Observations</a><ul> -<li class="toctree-l4"><a class="reference internal" href="../outputs/observation_log.html">Observation_Log</a></li> -<li class="toctree-l4"><a class="reference internal" href="../outputs/observation_repository.html">Observation_EntityRepository</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#spawners">Spawners</a></li> -<li class="toctree-l3"><a class="reference internal" href="#full-example">Full Example</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="staticsystemconfig.html">Static SystemConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="systemconfigblueprint.html">SystemConfigBlueprint</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> - <li class="breadcrumb-item active">SimulationConfig</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/user_guide/configs/simulationconfig.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="simulationconfig"> -<span id="id1"></span><h1>SimulationConfig<a class="headerlink" href="#simulationconfig" title="Link to this heading">ïƒ</a></h1> -<p>This file describes the high level parameters of a simulation invocation (i.e. an experiment). -It contains the basic experiment settings like number of runs and random seed, the environment definition, -the parametrization of the output (more precisely the observation modules) and the definition of the spawners. -The path to the SimulationConfig is given as command line argument (or defaulted) and all other configs are directly -or indirectly refered to in the SimulationConfig. -Several parameters depend on probabilities. -Each invocation then rolls for said probabilities. -All probabilities need to add up to 1.0.</p> -<p>The simulationConfig.xml consists of the following sections:</p> -<ul class="simple"> -<li><p><a class="reference internal" href="#simulationconfig-profilescatalog"><span class="std std-ref">ProfilesCatalog</span></a></p></li> -<li><p><a class="reference internal" href="#simulationconfig-experiment"><span class="std std-ref">Experiment</span></a></p></li> -<li><p><a class="reference internal" href="#simulationconfig-scenario"><span class="std std-ref">Scenario</span></a></p></li> -<li><p><a class="reference internal" href="#simulationconfig-environment"><span class="std std-ref">Environment</span></a></p></li> -<li><p><a class="reference internal" href="#simulationconfig-observations"><span class="std std-ref">Observations</span></a></p></li> -<li><p><a class="reference internal" href="#simulationconfig-spawners"><span class="std std-ref">Spawners</span></a></p></li> -</ul> -<section id="profilescatalog"> -<span id="simulationconfig-profilescatalog"></span><h2>ProfilesCatalog<a class="headerlink" href="#profilescatalog" title="Link to this heading">ïƒ</a></h2> -<p>Specifies the <a class="reference internal" href="profilescatalog.html#profilescatalog"><span class="std std-ref">ProfilesCatalog</span></a> for the experiment.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><ProfilesCatalog></span>ProfilesCatalog.xml<span class="nt"></ProfilesCatalog></span> -</pre></div> -</div> -</section> -<section id="experiment"> -<span id="simulationconfig-experiment"></span><h2>Experiment<a class="headerlink" href="#experiment" title="Link to this heading">ïƒ</a></h2> -<p>Specifies the general experiment setup, not specific to a single invocation.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Tag</p></th> -<th class="head"><p>Description</p></th> -<th class="head"><p>Mandatory</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>ExperimentId</p></td> -<td><p>Id of the experiment</p></td> -<td><p>yes</p></td> -</tr> -<tr class="row-odd"><td><p>NumberOfInvocations</p></td> -<td><p>Number of invocation in the experiment. -For each invocation probabilities are rerolled.</p></td> -<td><p>yes</p></td> -</tr> -<tr class="row-even"><td><p>RandomSeed</p></td> -<td><p>Random seed for the entire experiment. -Must be within the bounds of an unsigned integer.</p></td> -<td><p>yes</p></td> -</tr> -<tr class="row-odd"><td><p>Libraries</p></td> -<td><p>Name of the core module Libraries to use. -If not specified the default name is assumed.</p></td> -<td><p>yes</p></td> -</tr> -</tbody> -</table> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><Experiment></span> -<span class="w"> </span><span class="nt"><ExperimentID></span>123<span class="nt"></ExperimentID></span> -<span class="w"> </span><span class="nt"><NumberOfInvocations></span>1<span class="nt"></NumberOfInvocations></span> -<span class="w"> </span><span class="nt"><RandomSeed></span>532725206<span class="nt"></RandomSeed></span> -<span class="w"> </span><span class="nt"><Libraries></span> -<span class="w"> </span><span class="nt"><WorldLibrary></span>World_OSI<span class="nt"></WorldLibrary></span> -<span class="w"> </span><span class="nt"></Libraries></span> -<span class="w"> </span><span class="nt"></Experiment></span> -</pre></div> -</div> -</section> -<section id="scenario"> -<span id="simulationconfig-scenario"></span><h2>Scenario<a class="headerlink" href="#scenario" title="Link to this heading">ïƒ</a></h2> -<p>This section contains information about the scenario setup for the experiment. This information does not change between invocations.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Tag</p></th> -<th class="head"><p>Description</p></th> -<th class="head"><p>Mandatory</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OpenScenarioFile</p></td> -<td><p>Name of the scenario file</p></td> -<td><p>yes</p></td> -</tr> -</tbody> -</table> -<p><strong>Example</strong></p> -<p>This experiment uses the “HighwayScenario.xosc†scenario file.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><Scenario></span> -<span class="w"> </span><span class="nt"><OpenScenarioFile></span>Scenario.xosc<span class="nt"></OpenScenarioFile></span> -<span class="w"> </span><span class="nt"></Scenario></span> -</pre></div> -</div> -</section> -<section id="environment"> -<span id="simulationconfig-environment"></span><h2>Environment<a class="headerlink" href="#environment" title="Link to this heading">ïƒ</a></h2> -<p>This section contains information about the world and the general environment inside the simulation. Every invocation re-rolls the environment probabilities. -All probabilities need to add up to 1.0.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Tag</p></th> -<th class="head"><p>Description</p></th> -<th class="head"><p>Mandatory</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>TimeOfDay</p></td> -<td><p><strong>Currently unused.</strong> Time of day ranging from 1-24 [h].</p></td> -<td><p>1+ entry</p></td> -</tr> -<tr class="row-odd"><td><p>VisibilityDistance</p></td> -<td><p>Defines how far a human driver can see [m].</p></td> -<td><p>1+ entry</p></td> -</tr> -<tr class="row-even"><td><p>Friction</p></td> -<td><p>Friction on the road. Used by DynamicsRegularDriving and LimiterAccelerationVehicleComponents.</p></td> -<td><p>1+ entry</p></td> -</tr> -<tr class="row-odd"><td><p>Weather</p></td> -<td><p><strong>Currently unused.</strong> Weather as string</p></td> -<td><p>1+ entry</p></td> -</tr> -<tr class="row-even"><td><p>TrafficRules</p></td> -<td><p>Defines which set of TrafficRules to use from the ProfilesCatalog</p></td> -<td><p>yes</p></td> -</tr> -<tr class="row-odd"><td><p>TurningRates</p></td> -<td><p>Defines the turning rates for random route generation</p></td> -<td><p>no</p></td> -</tr> -</tbody> -</table> -<p><strong>Example</strong></p> -<p>Every invocation has the time set to 15:00. -In 70% of all invocation drivers can see 125 meter and for the other 30% of invocations the drivers can see 250 meter. -Every invocation has a friction of 0.3. -Every invocation has sunny weather.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><Environment></span> -<span class="w"> </span><span class="nt"><TimeOfDays></span> -<span class="w"> </span><span class="nt"><TimeOfDay</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.4"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"15"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><TimeOfDay</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.6"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"18"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></TimeOfDays></span> -<span class="w"> </span><span class="nt"><VisibilityDistances></span> -<span class="w"> </span><span class="nt"><VisibilityDistance</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.7"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"300"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><VisibilityDistance</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.3"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"400"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></VisibilityDistances></span> -<span class="w"> </span><span class="nt"><Frictions></span> -<span class="w"> </span><span class="nt"><Friction</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Frictions></span> -<span class="w"> </span><span class="nt"><Weathers></span> -<span class="w"> </span><span class="nt"><Weather</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Rainy"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Weather</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Snowy"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Weathers></span> -<span class="w"> </span><span class="nt"><TrafficRules></span>DE<span class="nt"></TrafficRules></span> -<span class="w"> </span><span class="nt"></Environment></span> -</pre></div> -</div> -<p><strong>TurningRates</strong></p> -<p>If routes are not defined in the Scenario, they are randomly generated. -Starting at the current agent position at each junction a random connector is chosen based on the weights given in the TurningRates element, until the route terminates at a road without successors or a maximum depth is reached. -If for a pair of incoming road / connector no weight is given, it is defaulted to 1. -At the below example an agent coming from road “R1†has a 1/3 chance of selecting “R1-2†and a 2/3 chance of selecting “R1-3â€.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Incoming</p></td> -<td><p>Id of the incoming road</p></td> -</tr> -<tr class="row-odd"><td><p>Outgoing</p></td> -<td><p>Id of the connector</p></td> -</tr> -<tr class="row-even"><td><p>Weight</p></td> -<td><p>Weight for this pair</p></td> -</tr> -</tbody> -</table> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><TurningRates></span> -<span class="w"> </span><span class="nt"><TurningRate</span><span class="w"> </span><span class="na">Incoming=</span><span class="s">"R1"</span><span class="w"> </span><span class="na">Outgoing=</span><span class="s">"R1-2"</span><span class="w"> </span><span class="na">Weight=</span><span class="s">"1.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><TurningRate</span><span class="w"> </span><span class="na">Incoming=</span><span class="s">"R1"</span><span class="w"> </span><span class="na">Outgoing=</span><span class="s">"R1-3"</span><span class="w"> </span><span class="na">Weight=</span><span class="s">"2.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><TurningRate</span><span class="w"> </span><span class="na">Incoming=</span><span class="s">"R2"</span><span class="w"> </span><span class="na">Outgoing=</span><span class="s">"R2-1"</span><span class="w"> </span><span class="na">Weight=</span><span class="s">"1.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><TurningRate</span><span class="w"> </span><span class="na">Incoming=</span><span class="s">"R2"</span><span class="w"> </span><span class="na">Outgoing=</span><span class="s">"R2-3"</span><span class="w"> </span><span class="na">Weight=</span><span class="s">"1.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><TurningRate</span><span class="w"> </span><span class="na">Incoming=</span><span class="s">"R3"</span><span class="w"> </span><span class="na">Outgoing=</span><span class="s">"R3-1"</span><span class="w"> </span><span class="na">Weight=</span><span class="s">"2.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><TurningRate</span><span class="w"> </span><span class="na">Incoming=</span><span class="s">"R3"</span><span class="w"> </span><span class="na">Outgoing=</span><span class="s">"R3-2"</span><span class="w"> </span><span class="na">Weight=</span><span class="s">"1.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></TurningRates></span> -</pre></div> -</div> -</section> -<section id="observations"> -<span id="simulationconfig-observations"></span><h2>Observations<a class="headerlink" href="#observations" title="Link to this heading">ïƒ</a></h2> -<p>In this section all observation libraries are defined with their parameters. -A specific library is loaded by adding an entry to the <cite>Observations</cite> tag:</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Observations></span> -<span class="w"> </span><span class="cm"><!-- first observer --></span> -<span class="w"> </span><span class="nt"><Observation></span> -<span class="w"> </span><span class="nt"><Library></span>THE_OBSERVATION_LIBRARY<span class="nt"></Library></span> -<span class="w"> </span><span class="cm"><!-- observer specific parameter --></span> -<span class="w"> </span><span class="nt"><Parameters></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"THE_KEY"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"THE_VALUE"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"ANOTHER_KEY"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="w"> </span>... -<span class="w"> </span><span class="nt"></Parameters></span> -<span class="w"> </span><span class="nt"></Observation></span> -<span class="w"> </span><span class="cm"><!-- second observer --></span> -<span class="w"> </span><span class="nt"><Observation></span> -<span class="w"> </span>... -<span class="w"> </span><span class="nt"></Observation></span> -<span class="nt"></Observations></span> -</pre></div> -</div> -<p>Here, the <code class="docutils literal notranslate"><span class="pre">Library</span></code> tag contains the name of the library, and <code class="docutils literal notranslate"><span class="pre">Parameters</span></code> contain an optional list of key/value pairs, specific for each observer.</p> -<p>Please refer to the documentation of the individual observers for available parameters:</p> -<div class="toctree-wrapper compound"> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../outputs/observation_log.html">Observation_Log</a></li> -<li class="toctree-l1"><a class="reference internal" href="../outputs/observation_repository.html">Observation_EntityRepository</a></li> -</ul> -</div> -</section> -<section id="spawners"> -<span id="simulationconfig-spawners"></span><h2>Spawners<a class="headerlink" href="#spawners" title="Link to this heading">ïƒ</a></h2> -<p>In this section the spawners are defined with their Profile (defined in the ProfilesCatalog). -The same library can be loaded multiple times with different profiles. -A spawner is either of type “PreRunâ€, meaning it is triggered only once at the start of the simulation, or “Runtimeâ€, meaning it is triggered in every timestep. -If different spawners are to be triggered at the same time the spawner with the highest priority is triggered first.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><Spawners></span> -<span class="w"> </span><span class="nt"><Spawner></span> -<span class="w"> </span><span class="nt"><Library></span>SpawnerPreRunCommon<span class="nt"></Library></span> -<span class="w"> </span><span class="nt"><Type></span>PreRun<span class="nt"></Type></span> -<span class="w"> </span><span class="nt"><Priority></span>0<span class="nt"></Priority></span> -<span class="w"> </span><span class="nt"><Profile></span>DefaultPreRunCommon<span class="nt"></Profile></span> -<span class="w"> </span><span class="nt"></Spawner></span> -<span class="w"> </span><span class="nt"><Spawner></span> -<span class="w"> </span><span class="nt"><Library></span>SpawnerRuntimeCommon<span class="nt"></Library></span> -<span class="w"> </span><span class="nt"><Type></span>Runtime<span class="nt"></Type></span> -<span class="w"> </span><span class="nt"><Priority></span>0<span class="nt"></Priority></span> -<span class="w"> </span><span class="nt"><Profile></span>DefaultRuntimeCommon<span class="nt"></Profile></span> -<span class="w"> </span><span class="nt"></Spawner></span> -<span class="w"> </span><span class="nt"></Spawners></span> -</pre></div> -</div> -</section> -<section id="full-example"> -<h2>Full Example<a class="headerlink" href="#full-example" title="Link to this heading">ïƒ</a></h2> -<div class="literal-block-wrapper docutils container" id="id2"> -<div class="code-block-caption"><span class="caption-text">simulationConfig.xml</span><a class="headerlink" href="#id2" title="Link to this code">ïƒ</a></div> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="cp"><?xml version='1.0' encoding='UTF-8'?></span> -<span class="linenos"> 2</span><span class="nt"><simulationConfig</span><span class="w"> </span><span class="na">SchemaVersion=</span><span class="s">"0.8.2"</span><span class="nt">></span> -<span class="linenos"> 3</span><span class="w"> </span><span class="nt"><ProfilesCatalog></span>ProfilesCatalog.xml<span class="nt"></ProfilesCatalog></span> -<span class="linenos"> 4</span><span class="w"> </span><span class="nt"><Experiment></span> -<span class="linenos"> 5</span><span class="w"> </span><span class="nt"><ExperimentID></span>123<span class="nt"></ExperimentID></span> -<span class="linenos"> 6</span><span class="w"> </span><span class="nt"><NumberOfInvocations></span>1<span class="nt"></NumberOfInvocations></span> -<span class="linenos"> 7</span><span class="w"> </span><span class="nt"><RandomSeed></span>532725206<span class="nt"></RandomSeed></span> -<span class="linenos"> 8</span><span class="w"> </span><span class="nt"><Libraries></span> -<span class="linenos"> 9</span><span class="w"> </span><span class="nt"><WorldLibrary></span>World_OSI<span class="nt"></WorldLibrary></span> -<span class="linenos">10</span><span class="w"> </span><span class="nt"></Libraries></span> -<span class="linenos">11</span><span class="w"> </span><span class="nt"></Experiment></span> -<span class="linenos">12</span><span class="w"> </span><span class="nt"><Scenario></span> -<span class="linenos">13</span><span class="w"> </span><span class="nt"><OpenScenarioFile></span>Scenario.xosc<span class="nt"></OpenScenarioFile></span> -<span class="linenos">14</span><span class="w"> </span><span class="nt"></Scenario></span> -<span class="linenos">15</span><span class="w"> </span><span class="nt"><Environment></span> -<span class="linenos">16</span><span class="w"> </span><span class="nt"><TimeOfDays></span> -<span class="linenos">17</span><span class="w"> </span><span class="nt"><TimeOfDay</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.4"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"15"</span><span class="nt">/></span> -<span class="linenos">18</span><span class="w"> </span><span class="nt"><TimeOfDay</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.6"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"18"</span><span class="nt">/></span> -<span class="linenos">19</span><span class="w"> </span><span class="nt"></TimeOfDays></span> -<span class="linenos">20</span><span class="w"> </span><span class="nt"><VisibilityDistances></span> -<span class="linenos">21</span><span class="w"> </span><span class="nt"><VisibilityDistance</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.7"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"300"</span><span class="nt">/></span> -<span class="linenos">22</span><span class="w"> </span><span class="nt"><VisibilityDistance</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.3"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"400"</span><span class="nt">/></span> -<span class="linenos">23</span><span class="w"> </span><span class="nt"></VisibilityDistances></span> -<span class="linenos">24</span><span class="w"> </span><span class="nt"><Frictions></span> -<span class="linenos">25</span><span class="w"> </span><span class="nt"><Friction</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1.0"</span><span class="nt">/></span> -<span class="linenos">26</span><span class="w"> </span><span class="nt"></Frictions></span> -<span class="linenos">27</span><span class="w"> </span><span class="nt"><Weathers></span> -<span class="linenos">28</span><span class="w"> </span><span class="nt"><Weather</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Rainy"</span><span class="nt">/></span> -<span class="linenos">29</span><span class="w"> </span><span class="nt"><Weather</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Snowy"</span><span class="nt">/></span> -<span class="linenos">30</span><span class="w"> </span><span class="nt"></Weathers></span> -<span class="linenos">31</span><span class="w"> </span><span class="nt"><TrafficRules></span>DE<span class="nt"></TrafficRules></span> -<span class="linenos">32</span><span class="w"> </span><span class="nt"></Environment></span> -<span class="linenos">33</span><span class="w"> </span><span class="nt"><Observations></span> -<span class="linenos">34</span><span class="w"> </span><span class="nt"><Observation></span> -<span class="linenos">35</span><span class="w"> </span><span class="nt"><Library></span>Observation_Log<span class="nt"></Library></span> -<span class="linenos">36</span><span class="w"> </span><span class="nt"><Parameters></span> -<span class="linenos">37</span><span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OutputFilename"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"simulationOutput.xml"</span><span class="nt">/></span> -<span class="linenos">38</span><span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingCyclicsToCsv"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="linenos">39</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Trace"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"XPosition,YPosition,YawAngle"</span><span class="nt">/></span> -<span class="linenos">40</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_RoadPosition"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AgentInFront,Lane,PositionRoute,Road,TCoordinate"</span><span class="nt">/></span> -<span class="linenos">41</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_RoadPositionExtended"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"SecondaryLanes"</span><span class="nt">/></span> -<span class="linenos">42</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Sensor"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Sensor*_DetectedAgents,Sensor*_VisibleAgents"</span><span class="nt">/></span> -<span class="linenos">43</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Vehicle"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AccelerationPedalPosition,BrakePedalPosition,EngineMoment,Gear,SteeringAngle,TotalDistanceTraveled,YawRate"</span><span class="nt">/></span> -<span class="linenos">44</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Visualization"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AccelerationEgo,BrakeLight,IndicatorState,LightStatus,VelocityEgo"</span><span class="nt">/></span> -<span class="linenos">45</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroups"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Trace,Visualization,RoadPosition,Sensor"</span><span class="nt">/></span> -<span class="linenos">46</span><span class="w"> </span><span class="nt"></Parameters></span> -<span class="linenos">47</span><span class="w"> </span><span class="nt"></Observation></span> -<span class="linenos">48</span><span class="w"> </span><span class="nt"><Observation></span> -<span class="linenos">49</span><span class="w"> </span><span class="nt"><Library></span>Observation_EntityRepository<span class="nt"></Library></span> -<span class="linenos">50</span><span class="w"> </span><span class="nt"><Parameters></span> -<span class="linenos">51</span><span class="w"> </span><span class="cm"><!-- If "FilenamePrefix" is skipped, defaults to Value="Repository" --></span> -<span class="linenos">52</span><span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FilenamePrefix"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Repository"</span><span class="nt">/></span> -<span class="linenos">53</span><span class="w"> </span><span class="cm"><!-- If "WritePersistentEntities" is skipped, defaults to Value="Consolidated"</span> -<span class="linenos">54</span><span class="cm"> Options: </span> -<span class="linenos">55</span><span class="cm"> - Consolidated: Concatenate with {FilenamePrefix}_Run_###.csv for each run</span> -<span class="linenos">56</span><span class="cm"> - Separate: Write to {FilenamePrefix}_Persistent.csv</span> -<span class="linenos">57</span><span class="cm"> - Skip: No output for persistent entities</span> -<span class="linenos">58</span><span class="cm"> --></span> -<span class="linenos">59</span><span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"WritePersistentEntities"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Consolidated"</span><span class="nt">/></span> -<span class="linenos">60</span><span class="w"> </span><span class="nt"></Parameters></span> -<span class="linenos">61</span><span class="w"> </span><span class="nt"></Observation></span> -<span class="linenos">62</span><span class="w"> </span><span class="nt"></Observations></span> -<span class="linenos">63</span><span class="w"> </span><span class="nt"><Spawners></span> -<span class="linenos">64</span><span class="w"> </span><span class="nt"><Spawner></span> -<span class="linenos">65</span><span class="w"> </span><span class="nt"><Library></span>SpawnerPreRunCommon<span class="nt"></Library></span> -<span class="linenos">66</span><span class="w"> </span><span class="nt"><Type></span>PreRun<span class="nt"></Type></span> -<span class="linenos">67</span><span class="w"> </span><span class="nt"><Priority></span>0<span class="nt"></Priority></span> -<span class="linenos">68</span><span class="w"> </span><span class="nt"><Profile></span>DefaultPreRunCommon<span class="nt"></Profile></span> -<span class="linenos">69</span><span class="w"> </span><span class="nt"></Spawner></span> -<span class="linenos">70</span><span class="w"> </span><span class="nt"><Spawner></span> -<span class="linenos">71</span><span class="w"> </span><span class="nt"><Library></span>SpawnerRuntimeCommon<span class="nt"></Library></span> -<span class="linenos">72</span><span class="w"> </span><span class="nt"><Type></span>Runtime<span class="nt"></Type></span> -<span class="linenos">73</span><span class="w"> </span><span class="nt"><Priority></span>0<span class="nt"></Priority></span> -<span class="linenos">74</span><span class="w"> </span><span class="nt"><Profile></span>DefaultRuntimeCommon<span class="nt"></Profile></span> -<span class="linenos">75</span><span class="w"> </span><span class="nt"></Spawner></span> -<span class="linenos">76</span><span class="w"> </span><span class="nt"></Spawners></span> -<span class="linenos">77</span><span class="nt"></simulationConfig></span> -</pre></div> -</div> -</div> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="scenery.html" class="btn btn-neutral float-left" title="Scenery" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="../outputs/observation_log.html" class="btn btn-neutral float-right" title="Observation_Log" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>SimulationConfig — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Observation_Log" href="../outputs/observation_log.html" /> + <link rel="prev" title="Scenery" href="scenery.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="profilescatalog.html">ProfilesCatalog</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario.html">Scenario</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario_api_support.html">Scenario API Support</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenery.html">Scenery</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">SimulationConfig</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#profilescatalog">ProfilesCatalog</a></li> +<li class="toctree-l3"><a class="reference internal" href="#experiment">Experiment</a></li> +<li class="toctree-l3"><a class="reference internal" href="#scenario">Scenario</a></li> +<li class="toctree-l3"><a class="reference internal" href="#environment">Environment</a></li> +<li class="toctree-l3"><a class="reference internal" href="#observations">Observations</a><ul> +<li class="toctree-l4"><a class="reference internal" href="../outputs/observation_log.html">Observation_Log</a></li> +<li class="toctree-l4"><a class="reference internal" href="../outputs/observation_repository.html">Observation_EntityRepository</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#spawners">Spawners</a></li> +<li class="toctree-l3"><a class="reference internal" href="#full-example">Full Example</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="staticsystemconfig.html">Static SystemConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="systemconfigblueprint.html">SystemConfigBlueprint</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> + <li class="breadcrumb-item active">SimulationConfig</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/user_guide/configs/simulationconfig.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="simulationconfig"> +<span id="id1"></span><h1>SimulationConfig<a class="headerlink" href="#simulationconfig" title="Link to this heading">ïƒ</a></h1> +<p>This file describes the high level parameters of a simulation invocation (i.e. an experiment). +It contains the basic experiment settings like number of runs and random seed, the environment definition, +the parametrization of the output (more precisely the observation modules) and the definition of the spawners. +The path to the SimulationConfig is given as command line argument (or defaulted) and all other configs are directly +or indirectly refered to in the SimulationConfig. +Several parameters depend on probabilities. +Each invocation then rolls for said probabilities. +All probabilities need to add up to 1.0.</p> +<p>The simulationConfig.xml consists of the following sections:</p> +<ul class="simple"> +<li><p><a class="reference internal" href="#simulationconfig-profilescatalog"><span class="std std-ref">ProfilesCatalog</span></a></p></li> +<li><p><a class="reference internal" href="#simulationconfig-experiment"><span class="std std-ref">Experiment</span></a></p></li> +<li><p><a class="reference internal" href="#simulationconfig-scenario"><span class="std std-ref">Scenario</span></a></p></li> +<li><p><a class="reference internal" href="#simulationconfig-environment"><span class="std std-ref">Environment</span></a></p></li> +<li><p><a class="reference internal" href="#simulationconfig-observations"><span class="std std-ref">Observations</span></a></p></li> +<li><p><a class="reference internal" href="#simulationconfig-spawners"><span class="std std-ref">Spawners</span></a></p></li> +</ul> +<section id="profilescatalog"> +<span id="simulationconfig-profilescatalog"></span><h2>ProfilesCatalog<a class="headerlink" href="#profilescatalog" title="Link to this heading">ïƒ</a></h2> +<p>Specifies the <a class="reference internal" href="profilescatalog.html#profilescatalog"><span class="std std-ref">ProfilesCatalog</span></a> for the experiment.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><ProfilesCatalog></span>ProfilesCatalog.xml<span class="nt"></ProfilesCatalog></span> +</pre></div> +</div> +</section> +<section id="experiment"> +<span id="simulationconfig-experiment"></span><h2>Experiment<a class="headerlink" href="#experiment" title="Link to this heading">ïƒ</a></h2> +<p>Specifies the general experiment setup, not specific to a single invocation.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Tag</p></th> +<th class="head"><p>Description</p></th> +<th class="head"><p>Mandatory</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>ExperimentId</p></td> +<td><p>Id of the experiment</p></td> +<td><p>yes</p></td> +</tr> +<tr class="row-odd"><td><p>NumberOfInvocations</p></td> +<td><p>Number of invocation in the experiment. +For each invocation probabilities are rerolled.</p></td> +<td><p>yes</p></td> +</tr> +<tr class="row-even"><td><p>RandomSeed</p></td> +<td><p>Random seed for the entire experiment. +Must be within the bounds of an unsigned integer.</p></td> +<td><p>yes</p></td> +</tr> +<tr class="row-odd"><td><p>Libraries</p></td> +<td><p>Name of the core module Libraries to use. +If not specified the default name is assumed.</p></td> +<td><p>yes</p></td> +</tr> +</tbody> +</table> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><Experiment></span> +<span class="w"> </span><span class="nt"><ExperimentID></span>123<span class="nt"></ExperimentID></span> +<span class="w"> </span><span class="nt"><NumberOfInvocations></span>1<span class="nt"></NumberOfInvocations></span> +<span class="w"> </span><span class="nt"><RandomSeed></span>532725206<span class="nt"></RandomSeed></span> +<span class="w"> </span><span class="nt"><Libraries></span> +<span class="w"> </span><span class="nt"><WorldLibrary></span>World_OSI<span class="nt"></WorldLibrary></span> +<span class="w"> </span><span class="nt"></Libraries></span> +<span class="w"> </span><span class="nt"></Experiment></span> +</pre></div> +</div> +</section> +<section id="scenario"> +<span id="simulationconfig-scenario"></span><h2>Scenario<a class="headerlink" href="#scenario" title="Link to this heading">ïƒ</a></h2> +<p>This section contains information about the scenario setup for the experiment. This information does not change between invocations.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Tag</p></th> +<th class="head"><p>Description</p></th> +<th class="head"><p>Mandatory</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OpenScenarioFile</p></td> +<td><p>Name of the scenario file</p></td> +<td><p>yes</p></td> +</tr> +</tbody> +</table> +<p><strong>Example</strong></p> +<p>This experiment uses the “HighwayScenario.xosc†scenario file.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><Scenario></span> +<span class="w"> </span><span class="nt"><OpenScenarioFile></span>Scenario.xosc<span class="nt"></OpenScenarioFile></span> +<span class="w"> </span><span class="nt"></Scenario></span> +</pre></div> +</div> +</section> +<section id="environment"> +<span id="simulationconfig-environment"></span><h2>Environment<a class="headerlink" href="#environment" title="Link to this heading">ïƒ</a></h2> +<p>This section contains information about the world and the general environment inside the simulation. Every invocation re-rolls the environment probabilities. +All probabilities need to add up to 1.0.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Tag</p></th> +<th class="head"><p>Description</p></th> +<th class="head"><p>Mandatory</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>TimeOfDay</p></td> +<td><p><strong>Currently unused.</strong> Time of day ranging from 1-24 [h].</p></td> +<td><p>1+ entry</p></td> +</tr> +<tr class="row-odd"><td><p>VisibilityDistance</p></td> +<td><p>Defines how far a human driver can see [m].</p></td> +<td><p>1+ entry</p></td> +</tr> +<tr class="row-even"><td><p>Friction</p></td> +<td><p>Friction on the road. Used by DynamicsRegularDriving and LimiterAccelerationVehicleComponents.</p></td> +<td><p>1+ entry</p></td> +</tr> +<tr class="row-odd"><td><p>Weather</p></td> +<td><p><strong>Currently unused.</strong> Weather as string</p></td> +<td><p>1+ entry</p></td> +</tr> +<tr class="row-even"><td><p>TrafficRules</p></td> +<td><p>Defines which set of TrafficRules to use from the ProfilesCatalog</p></td> +<td><p>yes</p></td> +</tr> +<tr class="row-odd"><td><p>TurningRates</p></td> +<td><p>Defines the turning rates for random route generation</p></td> +<td><p>no</p></td> +</tr> +</tbody> +</table> +<p><strong>Example</strong></p> +<p>Every invocation has the time set to 15:00. +In 70% of all invocation drivers can see 125 meter and for the other 30% of invocations the drivers can see 250 meter. +Every invocation has a friction of 0.3. +Every invocation has sunny weather.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><Environment></span> +<span class="w"> </span><span class="nt"><TimeOfDays></span> +<span class="w"> </span><span class="nt"><TimeOfDay</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.4"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"15"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><TimeOfDay</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.6"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"18"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></TimeOfDays></span> +<span class="w"> </span><span class="nt"><VisibilityDistances></span> +<span class="w"> </span><span class="nt"><VisibilityDistance</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.7"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"300"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><VisibilityDistance</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.3"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"400"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></VisibilityDistances></span> +<span class="w"> </span><span class="nt"><Frictions></span> +<span class="w"> </span><span class="nt"><Friction</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Frictions></span> +<span class="w"> </span><span class="nt"><Weathers></span> +<span class="w"> </span><span class="nt"><Weather</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Rainy"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Weather</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Snowy"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Weathers></span> +<span class="w"> </span><span class="nt"><TrafficRules></span>DE<span class="nt"></TrafficRules></span> +<span class="w"> </span><span class="nt"></Environment></span> +</pre></div> +</div> +<p><strong>TurningRates</strong></p> +<p>If routes are not defined in the Scenario, they are randomly generated. +Starting at the current agent position at each junction a random connector is chosen based on the weights given in the TurningRates element, until the route terminates at a road without successors or a maximum depth is reached. +If for a pair of incoming road / connector no weight is given, it is defaulted to 1. +At the below example an agent coming from road “R1†has a 1/3 chance of selecting “R1-2†and a 2/3 chance of selecting “R1-3â€.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Incoming</p></td> +<td><p>Id of the incoming road</p></td> +</tr> +<tr class="row-odd"><td><p>Outgoing</p></td> +<td><p>Id of the connector</p></td> +</tr> +<tr class="row-even"><td><p>Weight</p></td> +<td><p>Weight for this pair</p></td> +</tr> +</tbody> +</table> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><TurningRates></span> +<span class="w"> </span><span class="nt"><TurningRate</span><span class="w"> </span><span class="na">Incoming=</span><span class="s">"R1"</span><span class="w"> </span><span class="na">Outgoing=</span><span class="s">"R1-2"</span><span class="w"> </span><span class="na">Weight=</span><span class="s">"1.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><TurningRate</span><span class="w"> </span><span class="na">Incoming=</span><span class="s">"R1"</span><span class="w"> </span><span class="na">Outgoing=</span><span class="s">"R1-3"</span><span class="w"> </span><span class="na">Weight=</span><span class="s">"2.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><TurningRate</span><span class="w"> </span><span class="na">Incoming=</span><span class="s">"R2"</span><span class="w"> </span><span class="na">Outgoing=</span><span class="s">"R2-1"</span><span class="w"> </span><span class="na">Weight=</span><span class="s">"1.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><TurningRate</span><span class="w"> </span><span class="na">Incoming=</span><span class="s">"R2"</span><span class="w"> </span><span class="na">Outgoing=</span><span class="s">"R2-3"</span><span class="w"> </span><span class="na">Weight=</span><span class="s">"1.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><TurningRate</span><span class="w"> </span><span class="na">Incoming=</span><span class="s">"R3"</span><span class="w"> </span><span class="na">Outgoing=</span><span class="s">"R3-1"</span><span class="w"> </span><span class="na">Weight=</span><span class="s">"2.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><TurningRate</span><span class="w"> </span><span class="na">Incoming=</span><span class="s">"R3"</span><span class="w"> </span><span class="na">Outgoing=</span><span class="s">"R3-2"</span><span class="w"> </span><span class="na">Weight=</span><span class="s">"1.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></TurningRates></span> +</pre></div> +</div> +</section> +<section id="observations"> +<span id="simulationconfig-observations"></span><h2>Observations<a class="headerlink" href="#observations" title="Link to this heading">ïƒ</a></h2> +<p>In this section all observation libraries are defined with their parameters. +A specific library is loaded by adding an entry to the <cite>Observations</cite> tag:</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Observations></span> +<span class="w"> </span><span class="cm"><!-- first observer --></span> +<span class="w"> </span><span class="nt"><Observation></span> +<span class="w"> </span><span class="nt"><Library></span>THE_OBSERVATION_LIBRARY<span class="nt"></Library></span> +<span class="w"> </span><span class="cm"><!-- observer specific parameter --></span> +<span class="w"> </span><span class="nt"><Parameters></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"THE_KEY"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"THE_VALUE"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"ANOTHER_KEY"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="w"> </span>... +<span class="w"> </span><span class="nt"></Parameters></span> +<span class="w"> </span><span class="nt"></Observation></span> +<span class="w"> </span><span class="cm"><!-- second observer --></span> +<span class="w"> </span><span class="nt"><Observation></span> +<span class="w"> </span>... +<span class="w"> </span><span class="nt"></Observation></span> +<span class="nt"></Observations></span> +</pre></div> +</div> +<p>Here, the <code class="docutils literal notranslate"><span class="pre">Library</span></code> tag contains the name of the library, and <code class="docutils literal notranslate"><span class="pre">Parameters</span></code> contain an optional list of key/value pairs, specific for each observer.</p> +<p>Please refer to the documentation of the individual observers for available parameters:</p> +<div class="toctree-wrapper compound"> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../outputs/observation_log.html">Observation_Log</a></li> +<li class="toctree-l1"><a class="reference internal" href="../outputs/observation_repository.html">Observation_EntityRepository</a></li> +</ul> +</div> +</section> +<section id="spawners"> +<span id="simulationconfig-spawners"></span><h2>Spawners<a class="headerlink" href="#spawners" title="Link to this heading">ïƒ</a></h2> +<p>In this section the spawners are defined with their Profile (defined in the ProfilesCatalog). +The same library can be loaded multiple times with different profiles. +A spawner is either of type “PreRunâ€, meaning it is triggered only once at the start of the simulation, or “Runtimeâ€, meaning it is triggered in every timestep. +If different spawners are to be triggered at the same time the spawner with the highest priority is triggered first.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><Spawners></span> +<span class="w"> </span><span class="nt"><Spawner></span> +<span class="w"> </span><span class="nt"><Library></span>SpawnerPreRunCommon<span class="nt"></Library></span> +<span class="w"> </span><span class="nt"><Type></span>PreRun<span class="nt"></Type></span> +<span class="w"> </span><span class="nt"><Priority></span>0<span class="nt"></Priority></span> +<span class="w"> </span><span class="nt"><Profile></span>DefaultPreRunCommon<span class="nt"></Profile></span> +<span class="w"> </span><span class="nt"></Spawner></span> +<span class="w"> </span><span class="nt"><Spawner></span> +<span class="w"> </span><span class="nt"><Library></span>SpawnerRuntimeCommon<span class="nt"></Library></span> +<span class="w"> </span><span class="nt"><Type></span>Runtime<span class="nt"></Type></span> +<span class="w"> </span><span class="nt"><Priority></span>0<span class="nt"></Priority></span> +<span class="w"> </span><span class="nt"><Profile></span>DefaultRuntimeCommon<span class="nt"></Profile></span> +<span class="w"> </span><span class="nt"></Spawner></span> +<span class="w"> </span><span class="nt"></Spawners></span> +</pre></div> +</div> +</section> +<section id="full-example"> +<h2>Full Example<a class="headerlink" href="#full-example" title="Link to this heading">ïƒ</a></h2> +<div class="literal-block-wrapper docutils container" id="id2"> +<div class="code-block-caption"><span class="caption-text">simulationConfig.xml</span><a class="headerlink" href="#id2" title="Link to this code">ïƒ</a></div> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="cp"><?xml version='1.0' encoding='UTF-8'?></span> +<span class="linenos"> 2</span><span class="nt"><simulationConfig</span><span class="w"> </span><span class="na">SchemaVersion=</span><span class="s">"0.8.2"</span><span class="nt">></span> +<span class="linenos"> 3</span><span class="w"> </span><span class="nt"><ProfilesCatalog></span>ProfilesCatalog.xml<span class="nt"></ProfilesCatalog></span> +<span class="linenos"> 4</span><span class="w"> </span><span class="nt"><Experiment></span> +<span class="linenos"> 5</span><span class="w"> </span><span class="nt"><ExperimentID></span>123<span class="nt"></ExperimentID></span> +<span class="linenos"> 6</span><span class="w"> </span><span class="nt"><NumberOfInvocations></span>1<span class="nt"></NumberOfInvocations></span> +<span class="linenos"> 7</span><span class="w"> </span><span class="nt"><RandomSeed></span>532725206<span class="nt"></RandomSeed></span> +<span class="linenos"> 8</span><span class="w"> </span><span class="nt"><Libraries></span> +<span class="linenos"> 9</span><span class="w"> </span><span class="nt"><WorldLibrary></span>World_OSI<span class="nt"></WorldLibrary></span> +<span class="linenos">10</span><span class="w"> </span><span class="nt"></Libraries></span> +<span class="linenos">11</span><span class="w"> </span><span class="nt"></Experiment></span> +<span class="linenos">12</span><span class="w"> </span><span class="nt"><Scenario></span> +<span class="linenos">13</span><span class="w"> </span><span class="nt"><OpenScenarioFile></span>Scenario.xosc<span class="nt"></OpenScenarioFile></span> +<span class="linenos">14</span><span class="w"> </span><span class="nt"></Scenario></span> +<span class="linenos">15</span><span class="w"> </span><span class="nt"><Environment></span> +<span class="linenos">16</span><span class="w"> </span><span class="nt"><TimeOfDays></span> +<span class="linenos">17</span><span class="w"> </span><span class="nt"><TimeOfDay</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.4"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"15"</span><span class="nt">/></span> +<span class="linenos">18</span><span class="w"> </span><span class="nt"><TimeOfDay</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.6"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"18"</span><span class="nt">/></span> +<span class="linenos">19</span><span class="w"> </span><span class="nt"></TimeOfDays></span> +<span class="linenos">20</span><span class="w"> </span><span class="nt"><VisibilityDistances></span> +<span class="linenos">21</span><span class="w"> </span><span class="nt"><VisibilityDistance</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.7"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"300"</span><span class="nt">/></span> +<span class="linenos">22</span><span class="w"> </span><span class="nt"><VisibilityDistance</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.3"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"400"</span><span class="nt">/></span> +<span class="linenos">23</span><span class="w"> </span><span class="nt"></VisibilityDistances></span> +<span class="linenos">24</span><span class="w"> </span><span class="nt"><Frictions></span> +<span class="linenos">25</span><span class="w"> </span><span class="nt"><Friction</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"1.0"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1.0"</span><span class="nt">/></span> +<span class="linenos">26</span><span class="w"> </span><span class="nt"></Frictions></span> +<span class="linenos">27</span><span class="w"> </span><span class="nt"><Weathers></span> +<span class="linenos">28</span><span class="w"> </span><span class="nt"><Weather</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Rainy"</span><span class="nt">/></span> +<span class="linenos">29</span><span class="w"> </span><span class="nt"><Weather</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Snowy"</span><span class="nt">/></span> +<span class="linenos">30</span><span class="w"> </span><span class="nt"></Weathers></span> +<span class="linenos">31</span><span class="w"> </span><span class="nt"><TrafficRules></span>DE<span class="nt"></TrafficRules></span> +<span class="linenos">32</span><span class="w"> </span><span class="nt"></Environment></span> +<span class="linenos">33</span><span class="w"> </span><span class="nt"><Observations></span> +<span class="linenos">34</span><span class="w"> </span><span class="nt"><Observation></span> +<span class="linenos">35</span><span class="w"> </span><span class="nt"><Library></span>Observation_Log<span class="nt"></Library></span> +<span class="linenos">36</span><span class="w"> </span><span class="nt"><Parameters></span> +<span class="linenos">37</span><span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OutputFilename"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"simulationOutput.xml"</span><span class="nt">/></span> +<span class="linenos">38</span><span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingCyclicsToCsv"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="linenos">39</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Trace"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"XPosition,YPosition,YawAngle"</span><span class="nt">/></span> +<span class="linenos">40</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_RoadPosition"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AgentInFront,Lane,PositionRoute,Road,TCoordinate"</span><span class="nt">/></span> +<span class="linenos">41</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_RoadPositionExtended"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"SecondaryLanes"</span><span class="nt">/></span> +<span class="linenos">42</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Sensor"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Sensor*_DetectedAgents,Sensor*_VisibleAgents"</span><span class="nt">/></span> +<span class="linenos">43</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Vehicle"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AccelerationPedalPosition,BrakePedalPosition,EngineMoment,Gear,SteeringAngle,TotalDistanceTraveled,YawRate"</span><span class="nt">/></span> +<span class="linenos">44</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Visualization"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AccelerationEgo,BrakeLight,IndicatorState,LightStatus,VelocityEgo"</span><span class="nt">/></span> +<span class="linenos">45</span><span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroups"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Trace,Visualization,RoadPosition,Sensor"</span><span class="nt">/></span> +<span class="linenos">46</span><span class="w"> </span><span class="nt"></Parameters></span> +<span class="linenos">47</span><span class="w"> </span><span class="nt"></Observation></span> +<span class="linenos">48</span><span class="w"> </span><span class="nt"><Observation></span> +<span class="linenos">49</span><span class="w"> </span><span class="nt"><Library></span>Observation_EntityRepository<span class="nt"></Library></span> +<span class="linenos">50</span><span class="w"> </span><span class="nt"><Parameters></span> +<span class="linenos">51</span><span class="w"> </span><span class="cm"><!-- If "FilenamePrefix" is skipped, defaults to Value="Repository" --></span> +<span class="linenos">52</span><span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FilenamePrefix"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Repository"</span><span class="nt">/></span> +<span class="linenos">53</span><span class="w"> </span><span class="cm"><!-- If "WritePersistentEntities" is skipped, defaults to Value="Consolidated"</span> +<span class="linenos">54</span><span class="cm"> Options: </span> +<span class="linenos">55</span><span class="cm"> - Consolidated: Concatenate with {FilenamePrefix}_Run_###.csv for each run</span> +<span class="linenos">56</span><span class="cm"> - Separate: Write to {FilenamePrefix}_Persistent.csv</span> +<span class="linenos">57</span><span class="cm"> - Skip: No output for persistent entities</span> +<span class="linenos">58</span><span class="cm"> --></span> +<span class="linenos">59</span><span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"WritePersistentEntities"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Consolidated"</span><span class="nt">/></span> +<span class="linenos">60</span><span class="w"> </span><span class="nt"></Parameters></span> +<span class="linenos">61</span><span class="w"> </span><span class="nt"></Observation></span> +<span class="linenos">62</span><span class="w"> </span><span class="nt"></Observations></span> +<span class="linenos">63</span><span class="w"> </span><span class="nt"><Spawners></span> +<span class="linenos">64</span><span class="w"> </span><span class="nt"><Spawner></span> +<span class="linenos">65</span><span class="w"> </span><span class="nt"><Library></span>SpawnerPreRunCommon<span class="nt"></Library></span> +<span class="linenos">66</span><span class="w"> </span><span class="nt"><Type></span>PreRun<span class="nt"></Type></span> +<span class="linenos">67</span><span class="w"> </span><span class="nt"><Priority></span>0<span class="nt"></Priority></span> +<span class="linenos">68</span><span class="w"> </span><span class="nt"><Profile></span>DefaultPreRunCommon<span class="nt"></Profile></span> +<span class="linenos">69</span><span class="w"> </span><span class="nt"></Spawner></span> +<span class="linenos">70</span><span class="w"> </span><span class="nt"><Spawner></span> +<span class="linenos">71</span><span class="w"> </span><span class="nt"><Library></span>SpawnerRuntimeCommon<span class="nt"></Library></span> +<span class="linenos">72</span><span class="w"> </span><span class="nt"><Type></span>Runtime<span class="nt"></Type></span> +<span class="linenos">73</span><span class="w"> </span><span class="nt"><Priority></span>0<span class="nt"></Priority></span> +<span class="linenos">74</span><span class="w"> </span><span class="nt"><Profile></span>DefaultRuntimeCommon<span class="nt"></Profile></span> +<span class="linenos">75</span><span class="w"> </span><span class="nt"></Spawner></span> +<span class="linenos">76</span><span class="w"> </span><span class="nt"></Spawners></span> +<span class="linenos">77</span><span class="nt"></simulationConfig></span> +</pre></div> +</div> +</div> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="scenery.html" class="btn btn-neutral float-left" title="Scenery" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../outputs/observation_log.html" class="btn btn-neutral float-right" title="Observation_Log" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/configs/staticsystemconfig.html b/content/html/user_guide/configs/staticsystemconfig.html index c5f88c694fe9344d5c559421d43021ab413f4b64..301ecf91a86940a6c4602f58b1ebe4385667bd12 100644 --- a/content/html/user_guide/configs/staticsystemconfig.html +++ b/content/html/user_guide/configs/staticsystemconfig.html @@ -1,271 +1,272 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Static SystemConfig — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="SystemConfigBlueprint" href="systemconfigblueprint.html" /> - <link rel="prev" title="Observation_EntityRepository" href="../outputs/observation_repository.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="profilescatalog.html">ProfilesCatalog</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario.html">Scenario</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario_api_support.html">Scenario API Support</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenery.html">Scenery</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulationconfig.html">SimulationConfig</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Static SystemConfig</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#ssp">SSP</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#example">Example</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="#connecting-ssp-with-openpass">Connecting SSP with OpenPass</a><ul> -<li class="toctree-l4"><a class="reference internal" href="#id1">Example</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="systemconfigblueprint.html">SystemConfigBlueprint</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> - <li class="breadcrumb-item active">Static SystemConfig</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/user_guide/configs/staticsystemconfig.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="static-systemconfig"> -<span id="staticsystemconfig"></span><h1>Static SystemConfig<a class="headerlink" href="#static-systemconfig" title="Link to this heading">ïƒ</a></h1> -<p>SystemConfig files are optional. -They describe static configurations of agents and are therefore an alternative to the dynamic sampling of an agent during runtime. -The schema is the same as for the <a class="reference internal" href="systemconfigblueprint.html#systemconfigblueprint"><span class="std std-ref">SystemConfigBlueprint</span></a>.</p> -<section id="ssp"> -<h2>SSP<a class="headerlink" href="#ssp" title="Link to this heading">ïƒ</a></h2> -<p>One usecase for the static SystemConfig is <a class="reference internal" href="../../advanced_topics/simulator/system_structure_and_parameterization_%28SSP%29.html#ssp"><span class="std std-ref">System Structure and Parameterization (SSP)</span></a>. -We use SSP to chain multiple FMUs together, which transfer data between them during one time step. -SSP is added to the SystemConfig like any other Component. It requires the following parameters:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Tag</p></th> -<th class="head"><p>Description</p></th> -<th class="head"><p>Mandatory</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>id</p></td> -<td><p>Id should be set to “SspPathâ€</p></td> -<td><p>yes</p></td> -</tr> -<tr class="row-odd"><td><p>type</p></td> -<td><p>type should be string</p></td> -<td><p>yes</p></td> -</tr> -<tr class="row-even"><td><p>unit</p></td> -<td><p>not used</p></td> -<td><p>no</p></td> -</tr> -<tr class="row-odd"><td><p>value</p></td> -<td><p>relative path to the ssp file -relative to the configuration path</p></td> -<td><p>yes</p></td> -</tr> -</tbody> -</table> -<section id="example"> -<h3>Example<a class="headerlink" href="#example" title="Link to this heading">ïƒ</a></h3> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><component</span><span class="w"> </span><span class="na">doc=</span><span class="s">"SSP"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><id></span>SSP1<span class="nt"></id></span> -<span class="w"> </span><span class="nt"><schedule></span> -<span class="w"> </span><span class="nt"><priority></span>50<span class="nt"></priority></span> -<span class="w"> </span><span class="nt"><offset></span>0<span class="nt"></offset></span> -<span class="w"> </span><span class="nt"><cycle></span>100<span class="nt"></cycle></span> -<span class="w"> </span><span class="nt"><response></span>0<span class="nt"></response></span> -<span class="w"> </span><span class="nt"></schedule></span> -<span class="w"> </span><span class="nt"><library></span>Algorithm_SspWrapper<span class="nt"></library></span> -<span class="w"> </span><span class="nt"><parameters></span> -<span class="w"> </span><span class="nt"><parameter></span> -<span class="w"> </span><span class="nt"><id></span>SspPath<span class="nt"></id></span> -<span class="w"> </span><span class="nt"><type></span>string<span class="nt"></type></span> -<span class="w"> </span><span class="nt"><unit/></span> -<span class="w"> </span><span class="nt"><value></span>ConnectionTest.ssp<span class="nt"></value></span> -<span class="w"> </span><span class="nt"></parameter></span> -<span class="w"> </span><span class="nt"></parameters></span> -<span class="w"> </span><span class="nt"></component></span> -</pre></div> -</div> -</section> -</section> -<section id="connecting-ssp-with-openpass"> -<h2>Connecting SSP with OpenPass<a class="headerlink" href="#connecting-ssp-with-openpass" title="Link to this heading">ïƒ</a></h2> -<p>During OpenPass Simulation, information is communicated via osi messages between the Simulation Core and SSP. -Like any other component communication, these connections need to be explicitly declared as connections in the SystemConfig. -One connection is defined with the following attributes:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Tag</p></th> -<th class="head"><p>Description</p></th> -<th class="head"><p>Mandatory</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>id</p></td> -<td><p>unique identifier for connection</p></td> -<td><p>yes</p></td> -</tr> -<tr class="row-odd"><td><p>source</p></td> -<td><p>pair of sending agent component and local link id</p></td> -<td><p>yes</p></td> -</tr> -<tr class="row-even"><td><p>target</p></td> -<td><p>pair of receiving agent component -and local link id</p></td> -<td><p>yes</p></td> -</tr> -</tbody> -</table> -<section id="id1"> -<h3>Example<a class="headerlink" href="#id1" title="Link to this heading">ïƒ</a></h3> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><connection</span><span class="w"> </span><span class="na">doc=</span><span class="s">"SSP"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><id></span>502<span class="nt"></id></span> -<span class="w"> </span><span class="nt"><source></span> -<span class="w"> </span><span class="nt"><component></span>SSP1<span class="nt"></component></span> -<span class="w"> </span><span class="nt"><output></span>0<span class="nt"></output></span> -<span class="w"> </span><span class="nt"></source></span> -<span class="w"> </span><span class="nt"><target></span> -<span class="w"> </span><span class="nt"><component></span>PrioritizerDynamics<span class="nt"></component></span> -<span class="w"> </span><span class="nt"><input></span>1<span class="nt"></input></span> -<span class="w"> </span><span class="nt"></target></span> -<span class="w"> </span><span class="nt"></connection></span> -</pre></div> -</div> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../outputs/observation_repository.html" class="btn btn-neutral float-left" title="Observation_EntityRepository" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="systemconfigblueprint.html" class="btn btn-neutral float-right" title="SystemConfigBlueprint" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Static SystemConfig — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="SystemConfigBlueprint" href="systemconfigblueprint.html" /> + <link rel="prev" title="Observation_EntityRepository" href="../outputs/observation_repository.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="profilescatalog.html">ProfilesCatalog</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario.html">Scenario</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario_api_support.html">Scenario API Support</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenery.html">Scenery</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulationconfig.html">SimulationConfig</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Static SystemConfig</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#ssp">SSP</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#example">Example</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="#connecting-ssp-with-openpass">Connecting SSP with OpenPass</a><ul> +<li class="toctree-l4"><a class="reference internal" href="#id1">Example</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="systemconfigblueprint.html">SystemConfigBlueprint</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> + <li class="breadcrumb-item active">Static SystemConfig</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/user_guide/configs/staticsystemconfig.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="static-systemconfig"> +<span id="staticsystemconfig"></span><h1>Static SystemConfig<a class="headerlink" href="#static-systemconfig" title="Link to this heading">ïƒ</a></h1> +<p>SystemConfig files are optional. +They describe static configurations of agents and are therefore an alternative to the dynamic sampling of an agent during runtime. +The schema is the same as for the <a class="reference internal" href="systemconfigblueprint.html#systemconfigblueprint"><span class="std std-ref">SystemConfigBlueprint</span></a>.</p> +<section id="ssp"> +<h2>SSP<a class="headerlink" href="#ssp" title="Link to this heading">ïƒ</a></h2> +<p>One usecase for the static SystemConfig is <a class="reference internal" href="../../advanced_topics/simulator/system_structure_and_parameterization_%28SSP%29.html#ssp"><span class="std std-ref">System Structure and Parameterization (SSP)</span></a>. +We use SSP to chain multiple FMUs together, which transfer data between them during one time step. +SSP is added to the SystemConfig like any other Component. It requires the following parameters:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Tag</p></th> +<th class="head"><p>Description</p></th> +<th class="head"><p>Mandatory</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>id</p></td> +<td><p>Id should be set to “SspPathâ€</p></td> +<td><p>yes</p></td> +</tr> +<tr class="row-odd"><td><p>type</p></td> +<td><p>type should be string</p></td> +<td><p>yes</p></td> +</tr> +<tr class="row-even"><td><p>unit</p></td> +<td><p>not used</p></td> +<td><p>no</p></td> +</tr> +<tr class="row-odd"><td><p>value</p></td> +<td><p>relative path to the ssp file +relative to the configuration path</p></td> +<td><p>yes</p></td> +</tr> +</tbody> +</table> +<section id="example"> +<h3>Example<a class="headerlink" href="#example" title="Link to this heading">ïƒ</a></h3> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><component</span><span class="w"> </span><span class="na">doc=</span><span class="s">"SSP"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><id></span>SSP1<span class="nt"></id></span> +<span class="w"> </span><span class="nt"><schedule></span> +<span class="w"> </span><span class="nt"><priority></span>50<span class="nt"></priority></span> +<span class="w"> </span><span class="nt"><offset></span>0<span class="nt"></offset></span> +<span class="w"> </span><span class="nt"><cycle></span>100<span class="nt"></cycle></span> +<span class="w"> </span><span class="nt"><response></span>0<span class="nt"></response></span> +<span class="w"> </span><span class="nt"></schedule></span> +<span class="w"> </span><span class="nt"><library></span>Algorithm_SspWrapper<span class="nt"></library></span> +<span class="w"> </span><span class="nt"><parameters></span> +<span class="w"> </span><span class="nt"><parameter></span> +<span class="w"> </span><span class="nt"><id></span>SspPath<span class="nt"></id></span> +<span class="w"> </span><span class="nt"><type></span>string<span class="nt"></type></span> +<span class="w"> </span><span class="nt"><unit/></span> +<span class="w"> </span><span class="nt"><value></span>ConnectionTest.ssp<span class="nt"></value></span> +<span class="w"> </span><span class="nt"></parameter></span> +<span class="w"> </span><span class="nt"></parameters></span> +<span class="w"> </span><span class="nt"></component></span> +</pre></div> +</div> +</section> +</section> +<section id="connecting-ssp-with-openpass"> +<h2>Connecting SSP with OpenPass<a class="headerlink" href="#connecting-ssp-with-openpass" title="Link to this heading">ïƒ</a></h2> +<p>During OpenPass Simulation, information is communicated via osi messages between the Simulation Core and SSP. +Like any other component communication, these connections need to be explicitly declared as connections in the SystemConfig. +One connection is defined with the following attributes:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Tag</p></th> +<th class="head"><p>Description</p></th> +<th class="head"><p>Mandatory</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>id</p></td> +<td><p>unique identifier for connection</p></td> +<td><p>yes</p></td> +</tr> +<tr class="row-odd"><td><p>source</p></td> +<td><p>pair of sending agent component and local link id</p></td> +<td><p>yes</p></td> +</tr> +<tr class="row-even"><td><p>target</p></td> +<td><p>pair of receiving agent component +and local link id</p></td> +<td><p>yes</p></td> +</tr> +</tbody> +</table> +<section id="id1"> +<h3>Example<a class="headerlink" href="#id1" title="Link to this heading">ïƒ</a></h3> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><connection</span><span class="w"> </span><span class="na">doc=</span><span class="s">"SSP"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><id></span>502<span class="nt"></id></span> +<span class="w"> </span><span class="nt"><source></span> +<span class="w"> </span><span class="nt"><component></span>SSP1<span class="nt"></component></span> +<span class="w"> </span><span class="nt"><output></span>0<span class="nt"></output></span> +<span class="w"> </span><span class="nt"></source></span> +<span class="w"> </span><span class="nt"><target></span> +<span class="w"> </span><span class="nt"><component></span>PrioritizerDynamics<span class="nt"></component></span> +<span class="w"> </span><span class="nt"><input></span>1<span class="nt"></input></span> +<span class="w"> </span><span class="nt"></target></span> +<span class="w"> </span><span class="nt"></connection></span> +</pre></div> +</div> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../outputs/observation_repository.html" class="btn btn-neutral float-left" title="Observation_EntityRepository" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="systemconfigblueprint.html" class="btn btn-neutral float-right" title="SystemConfigBlueprint" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/configs/systemconfigblueprint.html b/content/html/user_guide/configs/systemconfigblueprint.html index ec0f520aa3b5c11325c057a3ed428d7d83504697..efc9305bade0c8264ecdc7cffb0e603396f59561 100644 --- a/content/html/user_guide/configs/systemconfigblueprint.html +++ b/content/html/user_guide/configs/systemconfigblueprint.html @@ -1,763 +1,764 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>SystemConfigBlueprint — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Outputs in Depth" href="../40_outputs_in_depth.html" /> - <link rel="prev" title="Static SystemConfig" href="staticsystemconfig.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="profilescatalog.html">ProfilesCatalog</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario.html">Scenario</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenario_api_support.html">Scenario API Support</a></li> -<li class="toctree-l2"><a class="reference internal" href="scenery.html">Scenery</a></li> -<li class="toctree-l2"><a class="reference internal" href="simulationconfig.html">SimulationConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="staticsystemconfig.html">Static SystemConfig</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">SystemConfigBlueprint</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#agentcomponents">AgentComponents</a></li> -<li class="toctree-l3"><a class="reference internal" href="#priorities">Priorities</a></li> -<li class="toctree-l3"><a class="reference internal" href="#channel-ids">Channel-Ids</a></li> -<li class="toctree-l3"><a class="reference internal" href="#parameters">Parameters</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> - <li class="breadcrumb-item active">SystemConfigBlueprint</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/user_guide/configs/systemconfigblueprint.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="systemconfigblueprint"> -<span id="id1"></span><h1>SystemConfigBlueprint<a class="headerlink" href="#systemconfigblueprint" title="Link to this heading">ïƒ</a></h1> -<p>This file contains the possible agent modules and channels of a dynamically generated agent. The content of this file should only be adjusted by experienced users with knowledge of the simulation architecture. The SystemConfigBlueprint is a special SystemConfig and has the same schema. Only the system with id 0 is used for generating dynamic agents. -If the simulation uses only statically configured agents (AgentProfile Type attribute is “Staticâ€), this file isn’t required.</p> -<section id="agentcomponents"> -<span id="systemconfigblueprint-agentcomponents"></span><h2>AgentComponents<a class="headerlink" href="#agentcomponents" title="Link to this heading">ïƒ</a></h2> -<p>All components are listed here. An agent consists of a subset of this components.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Id</p></td> -<td><p>Used as key by the simulation to find the component</p></td> -</tr> -<tr class="row-odd"><td><p>Priority</p></td> -<td><p>The module with the highest priority value gets executed first by the scheduler</p></td> -</tr> -<tr class="row-even"><td><p>Offset</p></td> -<td><p>Delay for the trigger method of each component in ms</p></td> -</tr> -<tr class="row-odd"><td><p>Cycle</p></td> -<td><p>Interval in which the component gets triggered by the scheduler in ms</p></td> -</tr> -<tr class="row-even"><td><p>Response</p></td> -<td><p>Delay for the UpdateOutput method of each component in ms</p></td> -</tr> -<tr class="row-odd"><td><p>Library</p></td> -<td><p>Library name of this component</p></td> -</tr> -<tr class="row-even"><td><p>Parameters</p></td> -<td><p>Parameters used by the component</p></td> -</tr> -</tbody> -</table> -<p>Example: -This example describes the Sensor_Driver module.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><component></span> -<span class="w"> </span><span class="nt"><id></span>SenderCar2X<span class="nt"></id></span> -<span class="w"> </span><span class="nt"><schedule></span> -<span class="w"> </span><span class="nt"><priority></span>399<span class="nt"></priority></span> -<span class="w"> </span><span class="nt"><offset></span>0<span class="nt"></offset></span> -<span class="w"> </span><span class="nt"><cycle></span>100<span class="nt"></cycle></span> -<span class="w"> </span><span class="nt"><response></span>0<span class="nt"></response></span> -<span class="w"> </span><span class="nt"></schedule></span> -<span class="w"> </span><span class="nt"><library></span>AlgorithmCar2XSender<span class="nt"></library></span> -<span class="w"> </span><span class="nt"><parameters/></span> -<span class="nt"></component></span> -</pre></div> -</div> -</section> -<section id="priorities"> -<span id="systemconfigblueprint-priorities"></span><h2>Priorities<a class="headerlink" href="#priorities" title="Link to this heading">ïƒ</a></h2> -<p>Please refer to the <a class="reference internal" href="../../advanced_topics/simulator/agent_components.html#component-channel-communication"><span class="std std-ref">Components and channel communication diagram</span></a> for assignment of a proper priority. -Based on the signal flow, input relevant components like sensors need to be executed first. They provide data for consuming components (algorithms) like ADAS and drivers. -Data is then handled by algorithms like Algorithm_Lateral. -Output-relevant modules like dynamics and actions are executed last.</p> -<p>Prioritizer can be applied on different levels depending on the modules/data they need to handle levels as following can be defined:</p> -<ul class="simple"> -<li><p>Level 1 describes data produced by ADAS and drivers</p></li> -<li><p>Level 2 describes data output by vehicle dynamic controllers</p></li> -<li><p>Level 3 describes data delivered by dynamics</p></li> -</ul> -<p>Priorities can be grouped (coarse) as following: -Highest number indicates highest priority.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Scope</p></th> -<th class="head"><p>Range</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Parameters</p></td> -<td><p>500</p></td> -</tr> -<tr class="row-odd"><td><p>OpenScenarioActions</p></td> -<td><p>400</p></td> -</tr> -<tr class="row-even"><td><p>Sensor</p></td> -<td><p>350…399</p></td> -</tr> -<tr class="row-odd"><td><p>Event</p></td> -<td><p>330</p></td> -</tr> -<tr class="row-even"><td><p>DriverMode</p></td> -<td><p>310</p></td> -</tr> -<tr class="row-odd"><td><p>ADAS</p></td> -<td><p>250…299</p></td> -</tr> -<tr class="row-even"><td><p>ComponentController</p></td> -<td><p>200</p></td> -</tr> -<tr class="row-odd"><td><p>Prioritizer (Lvl. 1)</p></td> -<td><p>150…199</p></td> -</tr> -<tr class="row-even"><td><p>VehicleDynamicsControllers</p></td> -<td><p>100…149</p></td> -</tr> -<tr class="row-odd"><td><p>Prioritizer (Lvl. 2)</p></td> -<td><p>75…99</p></td> -</tr> -<tr class="row-even"><td><p>Dynamics</p></td> -<td><p>50…74</p></td> -</tr> -<tr class="row-odd"><td><p>Prioritizer (Lvl. 3)</p></td> -<td><p>25…49</p></td> -</tr> -<tr class="row-even"><td><p>Updater</p></td> -<td><p>0…24</p></td> -</tr> -</tbody> -</table> -<p>The table below can be used as orientation when a new module is introduced.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Name</p></th> -<th class="head"><p>Library</p></th> -<th class="head"><p>Priority</p></th> -<th class="head"><p>Scope</p></th> -<th class="head"><p>Note</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>ParametersAgentModules</p></td> -<td><p>ParametersAgent</p></td> -<td><p>500</p></td> -<td><p>Parameters</p></td> -<td><p>Sets all init-data and is updated cyclically</p></td> -</tr> -<tr class="row-odd"><td><p>OpenScenarioActions</p></td> -<td><p>OpenScenarioActions</p></td> -<td><p>400</p></td> -<td><p>ADAS</p></td> -<td><p>Reads events from OpenSCENARIO Actions and forwards them to other components</p></td> -</tr> -<tr class="row-even"><td><p>SensorObjectDetector</p></td> -<td><p>Sensor_OSI</p></td> -<td><p>398</p></td> -<td><p>Sensor</p></td> -<td><p>Gets instantiated multiple times (one time per sensor)</p></td> -</tr> -<tr class="row-odd"><td><p>SensorAggregation</p></td> -<td><p>SensorAggregation_OSI</p></td> -<td><p>351</p></td> -<td><p>Sensor</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>SensorFusionErrorless</p></td> -<td><p>SensorFusionErrorless_OSI</p></td> -<td><p>350</p></td> -<td><p>Sensor</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>AlgorithmAgentFollowingDriverModel</p></td> -<td><p>AlgorithmAgentFollowingDriverModel</p></td> -<td><p>310</p></td> -<td><p>DriverModels</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>AEB</p></td> -<td><p>AlgorithmAutonomousEmergencyBraking</p></td> -<td><p>250</p></td> -<td><p>ADAS</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>FMU1</p></td> -<td><p>AlgorithmFmuWrapper</p></td> -<td><p>250</p></td> -<td><p>ADAS</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>FMU2</p></td> -<td><p>AlgorithmFmuWrapper</p></td> -<td><p>250</p></td> -<td><p>ADAS</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>FMU3</p></td> -<td><p>AlgorithmFmuWrapper</p></td> -<td><p>250</p></td> -<td><p>ADAS</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>SSP1</p></td> -<td><p>AlgorithmSspWrapper</p></td> -<td><p>250</p></td> -<td><p>ADAS</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>ComponentController</p></td> -<td><p>ComponentController</p></td> -<td><p>200</p></td> -<td><p>ADAS</p></td> -<td><p>Manages vehicle component states with regard to other vehicle component states and conditions and in response to events.</p></td> -</tr> -<tr class="row-even"><td><p>PrioritizerLaterDriver</p></td> -<td><p>SignalPrioritizer</p></td> -<td><p>150</p></td> -<td><p>Prioritizer</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>PrioritizerAccelerationDriver</p></td> -<td><p>SignalPrioritizer</p></td> -<td><p>150</p></td> -<td><p>Prioritizer</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>PrioritizerTurningIndicator</p></td> -<td><p>SignalPrioritizer</p></td> -<td><p>150</p></td> -<td><p>Prioritizer</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>PrioritizerSteeringVehicleComponents</p></td> -<td><p>SignalPrioritizer</p></td> -<td><p>150</p></td> -<td><p>Prioritizer</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>PrioritizerAccelerationVehicleComponents</p></td> -<td><p>SignalPrioritizer</p></td> -<td><p>150</p></td> -<td><p>Prioritizer</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>LimiterAccelerationVehicleComponents</p></td> -<td><p>LimiterAccelerationVehicleComponents</p></td> -<td><p>120</p></td> -<td><p>VehicleDynamicsControllers</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>AlgorithmLateralDriver</p></td> -<td><p>AlgorithmLateralDriver</p></td> -<td><p>100</p></td> -<td><p>VehicleDynamicsControllers</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>AlgorithmLongitudinalVehicleComponents</p></td> -<td><p>AlgorithmLongitudinalVehicleComponents</p></td> -<td><p>100</p></td> -<td><p>VehicleDynamicsControllers</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>AlgorithmLongitudinalDriver</p></td> -<td><p>AlgorithmLongitudinalDriver</p></td> -<td><p>100</p></td> -<td><p>VehicleDynamicsControllers</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>PrioritizerSteering</p></td> -<td><p>SignalPrioritizer</p></td> -<td><p>75</p></td> -<td><p>Prioritizer</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>PrioritizerLongitudinal</p></td> -<td><p>SignalPrioritizer</p></td> -<td><p>75</p></td> -<td><p>Prioritizer</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>DynamicsCollision</p></td> -<td><p>DynamicsCollision</p></td> -<td><p>50</p></td> -<td><p>Dynamics</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>DynamicsRegularDriving</p></td> -<td><p>DynamicsRegularDriving</p></td> -<td><p>50</p></td> -<td><p>Dynamics</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>DynamicsTrajectoryFollower</p></td> -<td><p>DynamicsTrajectoryFollower</p></td> -<td><p>50</p></td> -<td><p>Dynamics</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>PrioritizerDynamics</p></td> -<td><p>SignalPrioritizer</p></td> -<td><p>25</p></td> -<td><p>Prioritizer</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>ActionLongitudinalDriverModules</p></td> -<td><p>ActionLongitudinalDriver</p></td> -<td><p>3</p></td> -<td><p>Updater</p></td> -<td><p>Will be expanded to ActionPrimary DriverTasks</p></td> -</tr> -<tr class="row-even"><td><p>ActionSecondaryDriverTasksModules</p></td> -<td><p>ActionSecondaryDriverTasks</p></td> -<td><p>3</p></td> -<td><p>Updater</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>AgentUpdater</p></td> -<td><p>AgentUpdater</p></td> -<td><p>1</p></td> -<td><p>Updater</p></td> -<td></td> -</tr> -</tbody> -</table> -</section> -<section id="channel-ids"> -<span id="systemconfigblueprint-channelids"></span><h2>Channel-Ids<a class="headerlink" href="#channel-ids" title="Link to this heading">ïƒ</a></h2> -<p>Channels allow components to communicate with each other. -The signal flow is set explicitly via a channel-Id of 4 digits (see also <a class="reference internal" href="../../advanced_topics/simulator/agent_components.html#component-channel-communication"><span class="std std-ref">Components and channels communication diagram</span></a>).</p> -<p>The first two numbers define the sending module (XX 00). -The other two digits define the type of signal that is sent (00 XX).</p> -<p>Signals as well as modules can be grouped to allow explicit numbering (see tables below).</p> -<p>Channel-Ids between Sensor and SensorFusion are an exception to this rule. For sensor/sensor fusion communication channel-ids are 9900 + x (incremented for every new sensor)</p> -<p>Example: -PrioritizerAccelerationDriver -> AlgorithmLongitudinalDriver with signal of type AccelerationSignal: 1813.</p> -<p><strong>Ids for Modules (first two digits)</strong></p> -<p>Index range for module groups:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Group</p></th> -<th class="head"><p>Id</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Dynamics</p></td> -<td><p>1…10</p></td> -</tr> -<tr class="row-odd"><td><p>Algorithm</p></td> -<td><p>11…30</p></td> -</tr> -<tr class="row-even"><td><p>DriverTasks</p></td> -<td><p>31…40</p></td> -</tr> -<tr class="row-odd"><td><p>Driver</p></td> -<td><p>41…50</p></td> -</tr> -<tr class="row-even"><td><p>VehicleComponent</p></td> -<td><p>51…70</p></td> -</tr> -<tr class="row-odd"><td><p>Special</p></td> -<td><p>81…89</p></td> -</tr> -<tr class="row-even"><td><p>Sensor</p></td> -<td><p>91…99</p></td> -</tr> -</tbody> -</table> -<p>With corresponding defined indices:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Module</p></th> -<th class="head"><p>Group</p></th> -<th class="head"><p>Id</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>AgentUpdater</p></td> -<td><p>Dynamics</p></td> -<td><p>1</p></td> -</tr> -<tr class="row-odd"><td><p>Dynamics_TrajectoryFollower</p></td> -<td><p>Dynamics</p></td> -<td><p>2</p></td> -</tr> -<tr class="row-even"><td><p>Dynamics_RegularDriving</p></td> -<td><p>Dynamics</p></td> -<td><p>3</p></td> -</tr> -<tr class="row-odd"><td><p>Dynamics_Collision</p></td> -<td><p>Dynamics</p></td> -<td><p>4</p></td> -</tr> -<tr class="row-even"><td><p>PrioritizerDynamics</p></td> -<td><p>Dynamics</p></td> -<td><p>5</p></td> -</tr> -<tr class="row-odd"><td><p>Dynamics_Scenario</p></td> -<td><p>Dynamics</p></td> -<td><p>6</p></td> -</tr> -<tr class="row-even"><td><p>ControllerSwitch</p></td> -<td><p>Dynamics</p></td> -<td><p>7</p></td> -</tr> -<tr class="row-odd"><td><p>Algorithm_LongitudinalVehicleComponent</p></td> -<td><p>Algorithm</p></td> -<td><p>11</p></td> -</tr> -<tr class="row-even"><td><p>Algorithm_LongitudinalAfdm</p></td> -<td><p>Algorithm</p></td> -<td><p>12</p></td> -</tr> -<tr class="row-odd"><td><p>Algorithm_SteeringVehicleComponent</p></td> -<td><p>Algorithm</p></td> -<td><p>14</p></td> -</tr> -<tr class="row-even"><td><p>Algorithm_LateralVehicleAfdm</p></td> -<td><p>Algorithm</p></td> -<td><p>15</p></td> -</tr> -<tr class="row-odd"><td><p>LimiterAccelerationVehicleComponents</p></td> -<td><p>Algorithm</p></td> -<td><p>17</p></td> -</tr> -<tr class="row-even"><td><p>PrioritizerLongitudinal</p></td> -<td><p>Algorithm</p></td> -<td><p>21</p></td> -</tr> -<tr class="row-odd"><td><p>PrioritizerSteering</p></td> -<td><p>Algorithm</p></td> -<td><p>22</p></td> -</tr> -<tr class="row-even"><td><p>PrioritizerAccelerationVehicleComponents</p></td> -<td><p>Algorithm</p></td> -<td><p>23</p></td> -</tr> -<tr class="row-odd"><td><p>PrioritizerSteeringVehicleComponents</p></td> -<td><p>Algorithm</p></td> -<td><p>24</p></td> -</tr> -<tr class="row-even"><td><p>Action_LongitudinalDriver</p></td> -<td><p>DriverTasks</p></td> -<td><p>31</p></td> -</tr> -<tr class="row-odd"><td><p>Action_SecondaryDriverTasks</p></td> -<td><p>DriverTasks</p></td> -<td><p>32</p></td> -</tr> -<tr class="row-even"><td><p>PrioritizerTurningIndicator</p></td> -<td><p>DriverTasks</p></td> -<td><p>33</p></td> -</tr> -<tr class="row-odd"><td><p>AlgorithmAgentFollowingDriverModel</p></td> -<td><p>Driver</p></td> -<td><p>41</p></td> -</tr> -<tr class="row-even"><td><p>AEB</p></td> -<td><p>VehicleComponent</p></td> -<td><p>52</p></td> -</tr> -<tr class="row-odd"><td><p>FMU1</p></td> -<td><p>VehicleComponent</p></td> -<td><p>71</p></td> -</tr> -<tr class="row-even"><td><p>FMU2</p></td> -<td><p>VehicleComponent</p></td> -<td><p>72</p></td> -</tr> -<tr class="row-odd"><td><p>FMU3</p></td> -<td><p>VehicleComponent</p></td> -<td><p>73</p></td> -</tr> -<tr class="row-even"><td><p>ComponentController</p></td> -<td><p>Special</p></td> -<td><p>83</p></td> -</tr> -<tr class="row-odd"><td><p>OpenScenarioActions</p></td> -<td><p>Special</p></td> -<td><p>84</p></td> -</tr> -<tr class="row-even"><td><p>Parameter_Vehicle</p></td> -<td><p>Sensor</p></td> -<td><p>92</p></td> -</tr> -<tr class="row-odd"><td><p>SensorAggregation</p></td> -<td><p>Sensor</p></td> -<td><p>93</p></td> -</tr> -<tr class="row-even"><td><p>SensorFusionErrorless</p></td> -<td><p>Sensor</p></td> -<td><p>94</p></td> -</tr> -<tr class="row-odd"><td><p>Sensor_Driver</p></td> -<td><p>Sensor</p></td> -<td><p>95</p></td> -</tr> -<tr class="row-even"><td><p>SensorObjectDetector</p></td> -<td><p>Sensor</p></td> -<td><p>98</p></td> -</tr> -</tbody> -</table> -<p><strong>Ids for Signals (last two digits)</strong></p> -<p>Index range for signal groups:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Group</p></th> -<th class="head"><p>Id</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Dynamics</p></td> -<td><p>1…10</p></td> -</tr> -<tr class="row-odd"><td><p>Algorithm</p></td> -<td><p>11…30</p></td> -</tr> -<tr class="row-even"><td><p>OpenScenarioActions</p></td> -<td><p>61…70</p></td> -</tr> -<tr class="row-odd"><td><p>Special</p></td> -<td><p>71…80</p></td> -</tr> -<tr class="row-even"><td><p>Sensor</p></td> -<td><p>81…90</p></td> -</tr> -<tr class="row-odd"><td><p>Parameters</p></td> -<td><p>91…99</p></td> -</tr> -</tbody> -</table> -<p>With corresponding defined indices:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Signal</p></th> -<th class="head"><p>Group</p></th> -<th class="head"><p>Id</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Dynamics</p></td> -<td><p>Dynamics</p></td> -<td><p>01</p></td> -</tr> -<tr class="row-odd"><td><p>Longitudinal</p></td> -<td><p>Algorithm</p></td> -<td><p>11</p></td> -</tr> -<tr class="row-even"><td><p>Steering</p></td> -<td><p>Algorithm</p></td> -<td><p>12</p></td> -</tr> -<tr class="row-odd"><td><p>Acceleration</p></td> -<td><p>Algorithm</p></td> -<td><p>13</p></td> -</tr> -<tr class="row-even"><td><p>Lateral</p></td> -<td><p>Algorithm</p></td> -<td><p>14</p></td> -</tr> -<tr class="row-odd"><td><p>SecondaryDriverTasks</p></td> -<td><p>Algorithm</p></td> -<td><p>19</p></td> -</tr> -<tr class="row-even"><td><p>Trajectory</p></td> -<td><p>OpenScenarioActions</p></td> -<td><p>71</p></td> -</tr> -<tr class="row-odd"><td><p>AcquireGlobalPosition</p></td> -<td><p>OpenScenarioActions</p></td> -<td><p>62</p></td> -</tr> -<tr class="row-even"><td><p>CustomParameters (CustomCommandAction)</p></td> -<td><p>OpenScenarioActions</p></td> -<td><p>63</p></td> -</tr> -<tr class="row-odd"><td><p>SensorDriver</p></td> -<td><p>Sensor</p></td> -<td><p>81</p></td> -</tr> -<tr class="row-even"><td><p>SensorData</p></td> -<td><p>Sensor</p></td> -<td><p>90</p></td> -</tr> -<tr class="row-odd"><td><p>ParametersVehicle</p></td> -<td><p>Parameters</p></td> -<td><p>92</p></td> -</tr> -</tbody> -</table> -</section> -<section id="parameters"> -<span id="systemconfigblueprint-parameters"></span><h2>Parameters<a class="headerlink" href="#parameters" title="Link to this heading">ïƒ</a></h2> -<p>For more information on the type of parameters (especially stochastic distributions), please refer to the <a class="reference internal" href="profilescatalog.html#profilescatalog-profilegroups"><span class="std std-ref">ProfilesGroup section</span></a>.</p> -<p><strong>Important Note:</strong> The syntax for defining parameters in the SystemConfigBlueprint file differs from the ProfilesCatalog syntax. -See the following example:</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><parameters></span> -<span class="w"> </span><span class="nt"><parameter></span> -<span class="w"> </span><span class="nt"><id></span>StringParameter<span class="nt"></id></span> -<span class="w"> </span><span class="nt"><type></span>string<span class="nt"></type></span> -<span class="w"> </span><span class="nt"><unit/></span> -<span class="w"> </span><span class="nt"><value></span>Lorem<span class="w"> </span>ipsum<span class="nt"></value></span> -<span class="w"> </span><span class="nt"></parameter></span> -<span class="w"> </span><span class="nt"><parameter></span> -<span class="w"> </span><span class="nt"><id></span>RandomParameter<span class="nt"></id></span> -<span class="w"> </span><span class="nt"><type></span>normalDistribution<span class="nt"></type></span> -<span class="w"> </span><span class="nt"><unit/></span> -<span class="w"> </span><span class="nt"><value></span> -<span class="w"> </span><span class="nt"><mean></span>15.0<span class="nt"></mean></span> -<span class="w"> </span><span class="nt"><sd></span>2.5<span class="nt"></sd></span> -<span class="w"> </span><span class="nt"><min></span>10.0<span class="nt"></min></span> -<span class="w"> </span><span class="nt"><max></span>20.0<span class="nt"></max></span> -<span class="w"> </span><span class="nt"></value></span> -<span class="w"> </span><span class="nt"></parameter></span> -<span class="nt"></parameters></span> -</pre></div> -</div> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="staticsystemconfig.html" class="btn btn-neutral float-left" title="Static SystemConfig" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="../40_outputs_in_depth.html" class="btn btn-neutral float-right" title="Outputs in Depth" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>SystemConfigBlueprint — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Outputs in Depth" href="../40_outputs_in_depth.html" /> + <link rel="prev" title="Static SystemConfig" href="staticsystemconfig.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="profilescatalog.html">ProfilesCatalog</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario.html">Scenario</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenario_api_support.html">Scenario API Support</a></li> +<li class="toctree-l2"><a class="reference internal" href="scenery.html">Scenery</a></li> +<li class="toctree-l2"><a class="reference internal" href="simulationconfig.html">SimulationConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="staticsystemconfig.html">Static SystemConfig</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">SystemConfigBlueprint</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#agentcomponents">AgentComponents</a></li> +<li class="toctree-l3"><a class="reference internal" href="#priorities">Priorities</a></li> +<li class="toctree-l3"><a class="reference internal" href="#channel-ids">Channel-Ids</a></li> +<li class="toctree-l3"><a class="reference internal" href="#parameters">Parameters</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> + <li class="breadcrumb-item active">SystemConfigBlueprint</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/user_guide/configs/systemconfigblueprint.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="systemconfigblueprint"> +<span id="id1"></span><h1>SystemConfigBlueprint<a class="headerlink" href="#systemconfigblueprint" title="Link to this heading">ïƒ</a></h1> +<p>This file contains the possible agent modules and channels of a dynamically generated agent. The content of this file should only be adjusted by experienced users with knowledge of the simulation architecture. The SystemConfigBlueprint is a special SystemConfig and has the same schema. Only the system with id 0 is used for generating dynamic agents. +If the simulation uses only statically configured agents (AgentProfile Type attribute is “Staticâ€), this file isn’t required.</p> +<section id="agentcomponents"> +<span id="systemconfigblueprint-agentcomponents"></span><h2>AgentComponents<a class="headerlink" href="#agentcomponents" title="Link to this heading">ïƒ</a></h2> +<p>All components are listed here. An agent consists of a subset of this components.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Id</p></td> +<td><p>Used as key by the simulation to find the component</p></td> +</tr> +<tr class="row-odd"><td><p>Priority</p></td> +<td><p>The module with the highest priority value gets executed first by the scheduler</p></td> +</tr> +<tr class="row-even"><td><p>Offset</p></td> +<td><p>Delay for the trigger method of each component in ms</p></td> +</tr> +<tr class="row-odd"><td><p>Cycle</p></td> +<td><p>Interval in which the component gets triggered by the scheduler in ms</p></td> +</tr> +<tr class="row-even"><td><p>Response</p></td> +<td><p>Delay for the UpdateOutput method of each component in ms</p></td> +</tr> +<tr class="row-odd"><td><p>Library</p></td> +<td><p>Library name of this component</p></td> +</tr> +<tr class="row-even"><td><p>Parameters</p></td> +<td><p>Parameters used by the component</p></td> +</tr> +</tbody> +</table> +<p>Example: +This example describes the Sensor_Driver module.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><component></span> +<span class="w"> </span><span class="nt"><id></span>SenderCar2X<span class="nt"></id></span> +<span class="w"> </span><span class="nt"><schedule></span> +<span class="w"> </span><span class="nt"><priority></span>399<span class="nt"></priority></span> +<span class="w"> </span><span class="nt"><offset></span>0<span class="nt"></offset></span> +<span class="w"> </span><span class="nt"><cycle></span>100<span class="nt"></cycle></span> +<span class="w"> </span><span class="nt"><response></span>0<span class="nt"></response></span> +<span class="w"> </span><span class="nt"></schedule></span> +<span class="w"> </span><span class="nt"><library></span>AlgorithmCar2XSender<span class="nt"></library></span> +<span class="w"> </span><span class="nt"><parameters/></span> +<span class="nt"></component></span> +</pre></div> +</div> +</section> +<section id="priorities"> +<span id="systemconfigblueprint-priorities"></span><h2>Priorities<a class="headerlink" href="#priorities" title="Link to this heading">ïƒ</a></h2> +<p>Please refer to the <a class="reference internal" href="../../advanced_topics/simulator/agent_components.html#component-channel-communication"><span class="std std-ref">Components and channel communication diagram</span></a> for assignment of a proper priority. +Based on the signal flow, input relevant components like sensors need to be executed first. They provide data for consuming components (algorithms) like ADAS and drivers. +Data is then handled by algorithms like Algorithm_Lateral. +Output-relevant modules like dynamics and actions are executed last.</p> +<p>Prioritizer can be applied on different levels depending on the modules/data they need to handle levels as following can be defined:</p> +<ul class="simple"> +<li><p>Level 1 describes data produced by ADAS and drivers</p></li> +<li><p>Level 2 describes data output by vehicle dynamic controllers</p></li> +<li><p>Level 3 describes data delivered by dynamics</p></li> +</ul> +<p>Priorities can be grouped (coarse) as following: +Highest number indicates highest priority.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Scope</p></th> +<th class="head"><p>Range</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Parameters</p></td> +<td><p>500</p></td> +</tr> +<tr class="row-odd"><td><p>OpenScenarioActions</p></td> +<td><p>400</p></td> +</tr> +<tr class="row-even"><td><p>Sensor</p></td> +<td><p>350…399</p></td> +</tr> +<tr class="row-odd"><td><p>Event</p></td> +<td><p>330</p></td> +</tr> +<tr class="row-even"><td><p>DriverMode</p></td> +<td><p>310</p></td> +</tr> +<tr class="row-odd"><td><p>ADAS</p></td> +<td><p>250…299</p></td> +</tr> +<tr class="row-even"><td><p>ComponentController</p></td> +<td><p>200</p></td> +</tr> +<tr class="row-odd"><td><p>Prioritizer (Lvl. 1)</p></td> +<td><p>150…199</p></td> +</tr> +<tr class="row-even"><td><p>VehicleDynamicsControllers</p></td> +<td><p>100…149</p></td> +</tr> +<tr class="row-odd"><td><p>Prioritizer (Lvl. 2)</p></td> +<td><p>75…99</p></td> +</tr> +<tr class="row-even"><td><p>Dynamics</p></td> +<td><p>50…74</p></td> +</tr> +<tr class="row-odd"><td><p>Prioritizer (Lvl. 3)</p></td> +<td><p>25…49</p></td> +</tr> +<tr class="row-even"><td><p>Updater</p></td> +<td><p>0…24</p></td> +</tr> +</tbody> +</table> +<p>The table below can be used as orientation when a new module is introduced.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Name</p></th> +<th class="head"><p>Library</p></th> +<th class="head"><p>Priority</p></th> +<th class="head"><p>Scope</p></th> +<th class="head"><p>Note</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>ParametersAgentModules</p></td> +<td><p>ParametersAgent</p></td> +<td><p>500</p></td> +<td><p>Parameters</p></td> +<td><p>Sets all init-data and is updated cyclically</p></td> +</tr> +<tr class="row-odd"><td><p>OpenScenarioActions</p></td> +<td><p>OpenScenarioActions</p></td> +<td><p>400</p></td> +<td><p>ADAS</p></td> +<td><p>Reads events from OpenSCENARIO Actions and forwards them to other components</p></td> +</tr> +<tr class="row-even"><td><p>SensorObjectDetector</p></td> +<td><p>Sensor_OSI</p></td> +<td><p>398</p></td> +<td><p>Sensor</p></td> +<td><p>Gets instantiated multiple times (one time per sensor)</p></td> +</tr> +<tr class="row-odd"><td><p>SensorAggregation</p></td> +<td><p>SensorAggregation_OSI</p></td> +<td><p>351</p></td> +<td><p>Sensor</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>SensorFusionErrorless</p></td> +<td><p>SensorFusionErrorless_OSI</p></td> +<td><p>350</p></td> +<td><p>Sensor</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>AlgorithmAgentFollowingDriverModel</p></td> +<td><p>AlgorithmAgentFollowingDriverModel</p></td> +<td><p>310</p></td> +<td><p>DriverModels</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>AEB</p></td> +<td><p>AlgorithmAutonomousEmergencyBraking</p></td> +<td><p>250</p></td> +<td><p>ADAS</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>FMU1</p></td> +<td><p>AlgorithmFmuWrapper</p></td> +<td><p>250</p></td> +<td><p>ADAS</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>FMU2</p></td> +<td><p>AlgorithmFmuWrapper</p></td> +<td><p>250</p></td> +<td><p>ADAS</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>FMU3</p></td> +<td><p>AlgorithmFmuWrapper</p></td> +<td><p>250</p></td> +<td><p>ADAS</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>SSP1</p></td> +<td><p>AlgorithmSspWrapper</p></td> +<td><p>250</p></td> +<td><p>ADAS</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>ComponentController</p></td> +<td><p>ComponentController</p></td> +<td><p>200</p></td> +<td><p>ADAS</p></td> +<td><p>Manages vehicle component states with regard to other vehicle component states and conditions and in response to events.</p></td> +</tr> +<tr class="row-even"><td><p>PrioritizerLaterDriver</p></td> +<td><p>SignalPrioritizer</p></td> +<td><p>150</p></td> +<td><p>Prioritizer</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>PrioritizerAccelerationDriver</p></td> +<td><p>SignalPrioritizer</p></td> +<td><p>150</p></td> +<td><p>Prioritizer</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>PrioritizerTurningIndicator</p></td> +<td><p>SignalPrioritizer</p></td> +<td><p>150</p></td> +<td><p>Prioritizer</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>PrioritizerSteeringVehicleComponents</p></td> +<td><p>SignalPrioritizer</p></td> +<td><p>150</p></td> +<td><p>Prioritizer</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>PrioritizerAccelerationVehicleComponents</p></td> +<td><p>SignalPrioritizer</p></td> +<td><p>150</p></td> +<td><p>Prioritizer</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>LimiterAccelerationVehicleComponents</p></td> +<td><p>LimiterAccelerationVehicleComponents</p></td> +<td><p>120</p></td> +<td><p>VehicleDynamicsControllers</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>AlgorithmLateralDriver</p></td> +<td><p>AlgorithmLateralDriver</p></td> +<td><p>100</p></td> +<td><p>VehicleDynamicsControllers</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>AlgorithmLongitudinalVehicleComponents</p></td> +<td><p>AlgorithmLongitudinalVehicleComponents</p></td> +<td><p>100</p></td> +<td><p>VehicleDynamicsControllers</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>AlgorithmLongitudinalDriver</p></td> +<td><p>AlgorithmLongitudinalDriver</p></td> +<td><p>100</p></td> +<td><p>VehicleDynamicsControllers</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>PrioritizerSteering</p></td> +<td><p>SignalPrioritizer</p></td> +<td><p>75</p></td> +<td><p>Prioritizer</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>PrioritizerLongitudinal</p></td> +<td><p>SignalPrioritizer</p></td> +<td><p>75</p></td> +<td><p>Prioritizer</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>DynamicsCollision</p></td> +<td><p>DynamicsCollision</p></td> +<td><p>50</p></td> +<td><p>Dynamics</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>DynamicsRegularDriving</p></td> +<td><p>DynamicsRegularDriving</p></td> +<td><p>50</p></td> +<td><p>Dynamics</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>DynamicsTrajectoryFollower</p></td> +<td><p>DynamicsTrajectoryFollower</p></td> +<td><p>50</p></td> +<td><p>Dynamics</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>PrioritizerDynamics</p></td> +<td><p>SignalPrioritizer</p></td> +<td><p>25</p></td> +<td><p>Prioritizer</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>ActionLongitudinalDriverModules</p></td> +<td><p>ActionLongitudinalDriver</p></td> +<td><p>3</p></td> +<td><p>Updater</p></td> +<td><p>Will be expanded to ActionPrimary DriverTasks</p></td> +</tr> +<tr class="row-even"><td><p>ActionSecondaryDriverTasksModules</p></td> +<td><p>ActionSecondaryDriverTasks</p></td> +<td><p>3</p></td> +<td><p>Updater</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>AgentUpdater</p></td> +<td><p>AgentUpdater</p></td> +<td><p>1</p></td> +<td><p>Updater</p></td> +<td></td> +</tr> +</tbody> +</table> +</section> +<section id="channel-ids"> +<span id="systemconfigblueprint-channelids"></span><h2>Channel-Ids<a class="headerlink" href="#channel-ids" title="Link to this heading">ïƒ</a></h2> +<p>Channels allow components to communicate with each other. +The signal flow is set explicitly via a channel-Id of 4 digits (see also <a class="reference internal" href="../../advanced_topics/simulator/agent_components.html#component-channel-communication"><span class="std std-ref">Components and channels communication diagram</span></a>).</p> +<p>The first two numbers define the sending module (XX 00). +The other two digits define the type of signal that is sent (00 XX).</p> +<p>Signals as well as modules can be grouped to allow explicit numbering (see tables below).</p> +<p>Channel-Ids between Sensor and SensorFusion are an exception to this rule. For sensor/sensor fusion communication channel-ids are 9900 + x (incremented for every new sensor)</p> +<p>Example: +PrioritizerAccelerationDriver -> AlgorithmLongitudinalDriver with signal of type AccelerationSignal: 1813.</p> +<p><strong>Ids for Modules (first two digits)</strong></p> +<p>Index range for module groups:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Group</p></th> +<th class="head"><p>Id</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Dynamics</p></td> +<td><p>1…10</p></td> +</tr> +<tr class="row-odd"><td><p>Algorithm</p></td> +<td><p>11…30</p></td> +</tr> +<tr class="row-even"><td><p>DriverTasks</p></td> +<td><p>31…40</p></td> +</tr> +<tr class="row-odd"><td><p>Driver</p></td> +<td><p>41…50</p></td> +</tr> +<tr class="row-even"><td><p>VehicleComponent</p></td> +<td><p>51…70</p></td> +</tr> +<tr class="row-odd"><td><p>Special</p></td> +<td><p>81…89</p></td> +</tr> +<tr class="row-even"><td><p>Sensor</p></td> +<td><p>91…99</p></td> +</tr> +</tbody> +</table> +<p>With corresponding defined indices:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Module</p></th> +<th class="head"><p>Group</p></th> +<th class="head"><p>Id</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>AgentUpdater</p></td> +<td><p>Dynamics</p></td> +<td><p>1</p></td> +</tr> +<tr class="row-odd"><td><p>Dynamics_TrajectoryFollower</p></td> +<td><p>Dynamics</p></td> +<td><p>2</p></td> +</tr> +<tr class="row-even"><td><p>Dynamics_RegularDriving</p></td> +<td><p>Dynamics</p></td> +<td><p>3</p></td> +</tr> +<tr class="row-odd"><td><p>Dynamics_Collision</p></td> +<td><p>Dynamics</p></td> +<td><p>4</p></td> +</tr> +<tr class="row-even"><td><p>PrioritizerDynamics</p></td> +<td><p>Dynamics</p></td> +<td><p>5</p></td> +</tr> +<tr class="row-odd"><td><p>Dynamics_Scenario</p></td> +<td><p>Dynamics</p></td> +<td><p>6</p></td> +</tr> +<tr class="row-even"><td><p>ControllerSwitch</p></td> +<td><p>Dynamics</p></td> +<td><p>7</p></td> +</tr> +<tr class="row-odd"><td><p>Algorithm_LongitudinalVehicleComponent</p></td> +<td><p>Algorithm</p></td> +<td><p>11</p></td> +</tr> +<tr class="row-even"><td><p>Algorithm_LongitudinalAfdm</p></td> +<td><p>Algorithm</p></td> +<td><p>12</p></td> +</tr> +<tr class="row-odd"><td><p>Algorithm_SteeringVehicleComponent</p></td> +<td><p>Algorithm</p></td> +<td><p>14</p></td> +</tr> +<tr class="row-even"><td><p>Algorithm_LateralVehicleAfdm</p></td> +<td><p>Algorithm</p></td> +<td><p>15</p></td> +</tr> +<tr class="row-odd"><td><p>LimiterAccelerationVehicleComponents</p></td> +<td><p>Algorithm</p></td> +<td><p>17</p></td> +</tr> +<tr class="row-even"><td><p>PrioritizerLongitudinal</p></td> +<td><p>Algorithm</p></td> +<td><p>21</p></td> +</tr> +<tr class="row-odd"><td><p>PrioritizerSteering</p></td> +<td><p>Algorithm</p></td> +<td><p>22</p></td> +</tr> +<tr class="row-even"><td><p>PrioritizerAccelerationVehicleComponents</p></td> +<td><p>Algorithm</p></td> +<td><p>23</p></td> +</tr> +<tr class="row-odd"><td><p>PrioritizerSteeringVehicleComponents</p></td> +<td><p>Algorithm</p></td> +<td><p>24</p></td> +</tr> +<tr class="row-even"><td><p>Action_LongitudinalDriver</p></td> +<td><p>DriverTasks</p></td> +<td><p>31</p></td> +</tr> +<tr class="row-odd"><td><p>Action_SecondaryDriverTasks</p></td> +<td><p>DriverTasks</p></td> +<td><p>32</p></td> +</tr> +<tr class="row-even"><td><p>PrioritizerTurningIndicator</p></td> +<td><p>DriverTasks</p></td> +<td><p>33</p></td> +</tr> +<tr class="row-odd"><td><p>AlgorithmAgentFollowingDriverModel</p></td> +<td><p>Driver</p></td> +<td><p>41</p></td> +</tr> +<tr class="row-even"><td><p>AEB</p></td> +<td><p>VehicleComponent</p></td> +<td><p>52</p></td> +</tr> +<tr class="row-odd"><td><p>FMU1</p></td> +<td><p>VehicleComponent</p></td> +<td><p>71</p></td> +</tr> +<tr class="row-even"><td><p>FMU2</p></td> +<td><p>VehicleComponent</p></td> +<td><p>72</p></td> +</tr> +<tr class="row-odd"><td><p>FMU3</p></td> +<td><p>VehicleComponent</p></td> +<td><p>73</p></td> +</tr> +<tr class="row-even"><td><p>ComponentController</p></td> +<td><p>Special</p></td> +<td><p>83</p></td> +</tr> +<tr class="row-odd"><td><p>OpenScenarioActions</p></td> +<td><p>Special</p></td> +<td><p>84</p></td> +</tr> +<tr class="row-even"><td><p>Parameter_Vehicle</p></td> +<td><p>Sensor</p></td> +<td><p>92</p></td> +</tr> +<tr class="row-odd"><td><p>SensorAggregation</p></td> +<td><p>Sensor</p></td> +<td><p>93</p></td> +</tr> +<tr class="row-even"><td><p>SensorFusionErrorless</p></td> +<td><p>Sensor</p></td> +<td><p>94</p></td> +</tr> +<tr class="row-odd"><td><p>Sensor_Driver</p></td> +<td><p>Sensor</p></td> +<td><p>95</p></td> +</tr> +<tr class="row-even"><td><p>SensorObjectDetector</p></td> +<td><p>Sensor</p></td> +<td><p>98</p></td> +</tr> +</tbody> +</table> +<p><strong>Ids for Signals (last two digits)</strong></p> +<p>Index range for signal groups:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Group</p></th> +<th class="head"><p>Id</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Dynamics</p></td> +<td><p>1…10</p></td> +</tr> +<tr class="row-odd"><td><p>Algorithm</p></td> +<td><p>11…30</p></td> +</tr> +<tr class="row-even"><td><p>OpenScenarioActions</p></td> +<td><p>61…70</p></td> +</tr> +<tr class="row-odd"><td><p>Special</p></td> +<td><p>71…80</p></td> +</tr> +<tr class="row-even"><td><p>Sensor</p></td> +<td><p>81…90</p></td> +</tr> +<tr class="row-odd"><td><p>Parameters</p></td> +<td><p>91…99</p></td> +</tr> +</tbody> +</table> +<p>With corresponding defined indices:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Signal</p></th> +<th class="head"><p>Group</p></th> +<th class="head"><p>Id</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Dynamics</p></td> +<td><p>Dynamics</p></td> +<td><p>01</p></td> +</tr> +<tr class="row-odd"><td><p>Longitudinal</p></td> +<td><p>Algorithm</p></td> +<td><p>11</p></td> +</tr> +<tr class="row-even"><td><p>Steering</p></td> +<td><p>Algorithm</p></td> +<td><p>12</p></td> +</tr> +<tr class="row-odd"><td><p>Acceleration</p></td> +<td><p>Algorithm</p></td> +<td><p>13</p></td> +</tr> +<tr class="row-even"><td><p>Lateral</p></td> +<td><p>Algorithm</p></td> +<td><p>14</p></td> +</tr> +<tr class="row-odd"><td><p>SecondaryDriverTasks</p></td> +<td><p>Algorithm</p></td> +<td><p>19</p></td> +</tr> +<tr class="row-even"><td><p>Trajectory</p></td> +<td><p>OpenScenarioActions</p></td> +<td><p>71</p></td> +</tr> +<tr class="row-odd"><td><p>AcquireGlobalPosition</p></td> +<td><p>OpenScenarioActions</p></td> +<td><p>62</p></td> +</tr> +<tr class="row-even"><td><p>CustomParameters (CustomCommandAction)</p></td> +<td><p>OpenScenarioActions</p></td> +<td><p>63</p></td> +</tr> +<tr class="row-odd"><td><p>SensorDriver</p></td> +<td><p>Sensor</p></td> +<td><p>81</p></td> +</tr> +<tr class="row-even"><td><p>SensorData</p></td> +<td><p>Sensor</p></td> +<td><p>90</p></td> +</tr> +<tr class="row-odd"><td><p>ParametersVehicle</p></td> +<td><p>Parameters</p></td> +<td><p>92</p></td> +</tr> +</tbody> +</table> +</section> +<section id="parameters"> +<span id="systemconfigblueprint-parameters"></span><h2>Parameters<a class="headerlink" href="#parameters" title="Link to this heading">ïƒ</a></h2> +<p>For more information on the type of parameters (especially stochastic distributions), please refer to the <a class="reference internal" href="profilescatalog.html#profilescatalog-profilegroups"><span class="std std-ref">ProfilesGroup section</span></a>.</p> +<p><strong>Important Note:</strong> The syntax for defining parameters in the SystemConfigBlueprint file differs from the ProfilesCatalog syntax. +See the following example:</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><parameters></span> +<span class="w"> </span><span class="nt"><parameter></span> +<span class="w"> </span><span class="nt"><id></span>StringParameter<span class="nt"></id></span> +<span class="w"> </span><span class="nt"><type></span>string<span class="nt"></type></span> +<span class="w"> </span><span class="nt"><unit/></span> +<span class="w"> </span><span class="nt"><value></span>Lorem<span class="w"> </span>ipsum<span class="nt"></value></span> +<span class="w"> </span><span class="nt"></parameter></span> +<span class="w"> </span><span class="nt"><parameter></span> +<span class="w"> </span><span class="nt"><id></span>RandomParameter<span class="nt"></id></span> +<span class="w"> </span><span class="nt"><type></span>normalDistribution<span class="nt"></type></span> +<span class="w"> </span><span class="nt"><unit/></span> +<span class="w"> </span><span class="nt"><value></span> +<span class="w"> </span><span class="nt"><mean></span>15.0<span class="nt"></mean></span> +<span class="w"> </span><span class="nt"><sd></span>2.5<span class="nt"></sd></span> +<span class="w"> </span><span class="nt"><min></span>10.0<span class="nt"></min></span> +<span class="w"> </span><span class="nt"><max></span>20.0<span class="nt"></max></span> +<span class="w"> </span><span class="nt"></value></span> +<span class="w"> </span><span class="nt"></parameter></span> +<span class="nt"></parameters></span> +</pre></div> +</div> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="staticsystemconfig.html" class="btn btn-neutral float-left" title="Static SystemConfig" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../40_outputs_in_depth.html" class="btn btn-neutral float-right" title="Outputs in Depth" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/outputs/observation_log.html b/content/html/user_guide/outputs/observation_log.html index 81a807eeb796307887d135318975d236173bd16a..3fe4f4a89f81f120029fdec2ac551fcb7bbe7821 100644 --- a/content/html/user_guide/outputs/observation_log.html +++ b/content/html/user_guide/outputs/observation_log.html @@ -1,770 +1,735 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Observation_Log — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Observation_EntityRepository" href="observation_repository.html" /> - <link rel="prev" title="SimulationConfig" href="../configs/simulationconfig.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../configs/profilescatalog.html">ProfilesCatalog</a></li> -<li class="toctree-l2"><a class="reference internal" href="../configs/scenario.html">Scenario</a></li> -<li class="toctree-l2"><a class="reference internal" href="../configs/scenario_api_support.html">Scenario API Support</a></li> -<li class="toctree-l2"><a class="reference internal" href="../configs/scenery.html">Scenery</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="../configs/simulationconfig.html">SimulationConfig</a><ul class="current"> -<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#profilescatalog">ProfilesCatalog</a></li> -<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#experiment">Experiment</a></li> -<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#scenario">Scenario</a></li> -<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#environment">Environment</a></li> -<li class="toctree-l3 current"><a class="reference internal" href="../configs/simulationconfig.html#observations">Observations</a><ul class="current"> -<li class="toctree-l4 current"><a class="current reference internal" href="#">Observation_Log</a></li> -<li class="toctree-l4"><a class="reference internal" href="observation_repository.html">Observation_EntityRepository</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#spawners">Spawners</a></li> -<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#full-example">Full Example</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="../configs/staticsystemconfig.html">Static SystemConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="../configs/systemconfigblueprint.html">SystemConfigBlueprint</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> - <li class="breadcrumb-item"><a href="../configs/simulationconfig.html">SimulationConfig</a></li> - <li class="breadcrumb-item active">Observation_Log</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/user_guide/outputs/observation_log.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="observation-log"> -<span id="id1"></span><h1>Observation_Log<a class="headerlink" href="#observation-log" title="Link to this heading">ïƒ</a></h1> -<p>This section describes the parameters and outputs of the <code class="docutils literal notranslate"><span class="pre">Observation_Log</span></code> observer.</p> -<section id="parameterization"> -<span id="observationlog-parameterization"></span><h2>Parameterization<a class="headerlink" href="#parameterization" title="Link to this heading">ïƒ</a></h2> -<p>Following parameters are supported:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Parameter</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>OutputFilename</p></td> -<td><p>String</p></td> -<td><p>Name of the output file (normally <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>)</p></td> -</tr> -<tr class="row-odd"><td><p>LoggingCyclicsToCsv</p></td> -<td><p>Bool</p></td> -<td><p>If <code class="docutils literal notranslate"><span class="pre">true</span></code>, cyclics are written an additional file (one CSV file per run)</p></td> -</tr> -<tr class="row-even"><td><p>LoggingGroup_<NAME></p></td> -<td><p>StringVector</p></td> -<td><p>Defines which columns belong to the logging group named NAME</p></td> -</tr> -<tr class="row-odd"><td><p>LoggingGroups</p></td> -<td><p>StringVector</p></td> -<td><p>Defines active logging groups</p></td> -</tr> -</tbody> -</table> -<p>The columns, defined by the <code class="docutils literal notranslate"><span class="pre">LoggingGroup_<NAME></span></code> correspond to cyclic data entries written by the world and other components. -Cyclics are named data values of a single agent during a specific timestep. -Simulation components including agent components can write this values into the DataBuffer component using the PublisherInterface. -The Observation_Log can then read this values and write them into the output.</p> -<p>The world publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">AgentNetwork.cpp</span></code>):</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Cyclics</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>XPosition</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Position x of the reference point (in world coordinates)</p></td> -</tr> -<tr class="row-odd"><td><p>YPosition</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Position y of the reference point (in world coordinates)</p></td> -</tr> -<tr class="row-even"><td><p>VelocityEgo</p></td> -<td><p>Double</p></td> -<td><p>m/s</p></td> -<td><p>Absolute velocity (length of the velocity vector) at the reference point -(including spin caused by YawRate)</p></td> -</tr> -<tr class="row-odd"><td><p>AccelerationEgo</p></td> -<td><p>Double</p></td> -<td><p>m/s²</p></td> -<td><p>Longitudinal acceleration (including angular acceleration) at the reference point. -Longitudinal refers to the angle of the vehicle regardless of the curvature of the road it is on.</p></td> -</tr> -<tr class="row-even"><td><p>YawAngle</p></td> -<td><p>Double</p></td> -<td><p>rad</p></td> -<td><p>Yaw angle w.r.t. x-axis</p></td> -</tr> -<tr class="row-odd"><td><p>YawRate</p></td> -<td><p>Double</p></td> -<td><p>rad/s</p></td> -<td><p>Yaw rate of the agent</p></td> -</tr> -<tr class="row-even"><td><p>SteeringAngle</p></td> -<td><p>Double</p></td> -<td><p>rad</p></td> -<td><p>Steering wheel angle</p></td> -</tr> -<tr class="row-odd"><td><p>TotalDistanceTraveled</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Total traveled distance of all agents</p></td> -</tr> -<tr class="row-even"><td><p>PositionRoute*</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Position of the agent’s front center in <strong>road’s</strong> s coordinate -(distance to the start of the road)</p></td> -</tr> -<tr class="row-odd"><td><p>TCoordinate*</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Position of the agent’s front center in <strong>lane’s</strong> t coordinate -(distance to the middle of the lane respecting intended driving direction)</p></td> -</tr> -<tr class="row-even"><td><p>Lane*</p></td> -<td><p>Integer</p></td> -<td></td> -<td><p>Id of the lane</p></td> -</tr> -<tr class="row-odd"><td><p>Road*</p></td> -<td><p>String</p></td> -<td></td> -<td><p>OpenDRIVE id of the road on which the agent is on (i.e. the front center).</p></td> -</tr> -<tr class="row-even"><td><p>SecondaryLanes*</p></td> -<td><p>IntegerVector</p></td> -<td></td> -<td><p>List of secondary lanes on a specific road</p></td> -</tr> -<tr class="row-odd"><td><p>AgentInFront*</p></td> -<td><p>Integer</p></td> -<td></td> -<td><p>Id of the next object on the agent’s route</p></td> -</tr> -</tbody> -</table> -<p>The longitudinal driver publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">longitudinalDriver.cpp</span></code>):</p> -<blockquote> -<div><table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Cyclics</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>AccelerationPedalPosition</p></td> -<td><p>Double</p></td> -<td><p>Position of the acceleration pedal position in percent</p></td> -</tr> -<tr class="row-odd"><td><p>BrakePedalPosition</p></td> -<td><p>Double</p></td> -<td><p>Position of the brake pedal position in percent</p></td> -</tr> -<tr class="row-even"><td><p>Gear</p></td> -<td><p>Integer</p></td> -<td><p>Current gear position</p></td> -</tr> -</tbody> -</table> -</div></blockquote> -<p>The component Action_SecondaryDriverTasks publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">secondaryDriverTasks.cpp</span></code>):</p> -<blockquote> -<div><table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Cyclics</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>BrakeLight</p></td> -<td><p>Boolean</p></td> -<td><p>True if BrakeLight is on</p></td> -</tr> -<tr class="row-odd"><td><p>IndicatorState</p></td> -<td><p>Enum</p></td> -<td><p>State of the turning indicator (left, center/off, right)</p></td> -</tr> -<tr class="row-even"><td><p>LightStatus</p></td> -<td><p>Enum</p></td> -<td><p>State of the headlight (off, low beam, fog light, high beam, flash)</p></td> -</tr> -</tbody> -</table> -</div></blockquote> -<p>The component AgentUpdater publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">agentUpdaterImpl.cpp</span></code>):</p> -<blockquote> -<div><table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Cyclics</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>LongitudinalController</p></td> -<td><p>String</p></td> -<td><p>Component that is active for longitudinal control</p></td> -</tr> -<tr class="row-odd"><td><p>LateralController</p></td> -<td><p>String</p></td> -<td><p>Component that is active for lateral control</p></td> -</tr> -</tbody> -</table> -</div></blockquote> -<p>The component Dynamics_RegularDriving publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">regularDriving.cpp</span></code>):</p> -<blockquote> -<div><table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Cyclics</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>EngineMoment</p></td> -<td><p>Double</p></td> -<td><p>Nm</p></td> -<td><p>Torque of the engine</p></td> -</tr> -<tr class="row-odd"><td><p>SteeringAngle</p></td> -<td><p>Double</p></td> -<td><p>rad</p></td> -<td><p>Angle of the steering wheel</p></td> -</tr> -</tbody> -</table> -</div></blockquote> -<p>The component Sensor_Driver publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">sensor_driverImpl.cpp</span></code>):</p> -<blockquote> -<div><table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Cyclics</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>AgentInFront</p></td> -<td><p>Integer</p></td> -<td><p>Id of the agent infront</p></td> -</tr> -</tbody> -</table> -</div></blockquote> -<p>The component Sensor_OSI publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">sensorCar2X.cpp</span></code>):</p> -<blockquote> -<div><table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Cyclics</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>DetectedAgents</p></td> -<td><p>String</p></td> -<td><p>List of ids of detected agents</p></td> -</tr> -<tr class="row-odd"><td><p>VisibleAgents</p></td> -<td><p>String</p></td> -<td><p>List of ids of visible agents</p></td> -</tr> -</tbody> -</table> -</div></blockquote> -<div class="admonition-wildcards-in-logginggroup-definitions admonition"> -<p class="admonition-title"><strong>Wildcards in LoggingGroup definitions</strong></p> -<div class="line-block"> -<div class="line">It is possible to use the wildcard character <code class="docutils literal notranslate"><span class="pre">*</span></code> in a <code class="docutils literal notranslate"><span class="pre">LoggingGroup_<NAME></span></code> entry.</div> -<div class="line">The wildcard can be used only once per column reference.</div> -</div> -</div> -<p><strong>Example</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><Library></span>Observation_Log<span class="nt"></Library></span> -<span class="w"> </span><span class="nt"><Parameters></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OutputFilename"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"simulationOutput.xml"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingCyclicsToCsv"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Trace"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"XPosition,YPosition,YawAngle"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_RoadPosition"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AgentInFront,Lane,PositionRoute,Road,TCoordinate"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_RoadPositionExtended"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"SecondaryLanes"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Sensor"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Sensor*_DetectedAgents,Sensor*_VisibleAgents"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Vehicle"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AccelerationPedalPosition,BrakePedalPosition,EngineMoment,Gear,SteeringAngle,TotalDistanceTraveled,YawRate"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Visualization"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AccelerationEgo,BrakeLight,IndicatorState,LightStatus,VelocityEgo"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroups"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Trace,Visualization,RoadPosition,Sensor"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Parameters></span> -</pre></div> -</div> -</section> -<section id="output-files"> -<h2>Output Files<a class="headerlink" href="#output-files" title="Link to this heading">ïƒ</a></h2> -<section id="simulationoutput"> -<span id="observationlog-simout"></span><h3>SimulationOutput<a class="headerlink" href="#simulationoutput" title="Link to this heading">ïƒ</a></h3> -<p>Every successful run (single experiment) generates a single file, normally called <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code> (see :ref:’observationlog_parameterization’). -The output can contain multiple invocations of the same configuration with different random seeds. -For each invocation a RunResult is stored, which contains information about the agents and their parameters. -As well as run specific events and parameters.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><SimulationOutput></span> -<span class="w"> </span><span class="nt"><RunResults></span> -<span class="w"> </span><span class="nt"><RunResult</span><span class="w"> </span><span class="na">RunId=</span><span class="s">"0"</span><span class="nt">></span> -<span class="w"> </span>... -<span class="w"> </span><span class="nt"></RunResult></span> -<span class="w"> </span><span class="nt"><RunResult</span><span class="w"> </span><span class="na">RunId=</span><span class="s">"1"</span><span class="nt">></span> -<span class="w"> </span>... -<span class="w"> </span><span class="nt"></RunResult></span> -<span class="w"> </span><span class="nt"></RunResults></span> -<span class="nt"></SimulationOutput></span> -</pre></div> -</div> -<p>The RunResult consist out of the following parts:</p> -<ul class="simple"> -<li><p><a class="reference internal" href="#observationlog-runstatistics"><span class="std std-ref">RunStatistics</span></a></p></li> -<li><p><a class="reference internal" href="#observationlog-events"><span class="std std-ref">Events</span></a></p></li> -<li><p><a class="reference internal" href="#observationlog-agents"><span class="std std-ref">Agents</span></a></p></li> -<li><p><a class="reference internal" href="#observationlog-cyclics"><span class="std std-ref">Cyclics</span></a></p></li> -</ul> -<section id="runstatistics"> -<span id="observationlog-runstatistics"></span><h4>RunStatistics<a class="headerlink" href="#runstatistics" title="Link to this heading">ïƒ</a></h4> -<p>This section contains the RandomSeed and general statistics of the invocation.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Tag</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>RandomSeed</p></td> -<td><p>Random seed used for this invocation</p></td> -</tr> -<tr class="row-odd"><td><p>VisibilityDistance</p></td> -<td><p>Visibility distance of the world</p></td> -</tr> -<tr class="row-even"><td><p>StopReason</p></td> -<td><p>Displays the reason why the simulation stopped. -Currently only due to time out.</p></td> -</tr> -<tr class="row-odd"><td><p>StopTime</p></td> -<td><p>Currently not used and set to -1</p></td> -</tr> -<tr class="row-even"><td><p>EgoAccident</p></td> -<td><p>Flag which shows whether the ego agent was involved in an accident</p></td> -</tr> -<tr class="row-odd"><td><p>TotalDistanceTraveled</p></td> -<td><p>Total traveled distance of all agents</p></td> -</tr> -<tr class="row-even"><td><p>EgoDistanceTraveled</p></td> -<td><p>Total traveled distance of ego vehicle only</p></td> -</tr> -</tbody> -</table> -</section> -<section id="events"> -<span id="observationlog-events"></span><h4>Events<a class="headerlink" href="#events" title="Link to this heading">ïƒ</a></h4> -<p>This section contains all events that occurred during the invocation. -Event can either be triggered by an EventDetector, Manipulator or by certain vehicle components. -They are used to track special behavior in the simulation.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Time</p></td> -<td><p>Time in ms when the event occurred.</p></td> -</tr> -<tr class="row-odd"><td><p>Source</p></td> -<td><p>Name of the component which created the event. -<code class="docutils literal notranslate"><span class="pre">OpenSCENARIO</span></code>, if triggered by an OpenSCENARIO condition.</p></td> -</tr> -<tr class="row-even"><td><p>Name</p></td> -<td><p>In case of an OpenSCENARIO event, a path expression Story/Act/Sequence/Maneuver/Event -using the names of the corresponding tags as described in the OpenSCENARIO file. -Otherwise determined by the triggering component.</p></td> -</tr> -<tr class="row-odd"><td><p>TriggeringEntities</p></td> -<td><p>List of entity IDs triggering this event.</p></td> -</tr> -<tr class="row-even"><td><p>AffectedEntities</p></td> -<td><p>List of entity IDs affected by this event.</p></td> -</tr> -<tr class="row-odd"><td><p>Parameters</p></td> -<td><p>List of generic key/value string pairs.</p></td> -</tr> -</tbody> -</table> -</section> -<section id="important-events"> -<h4>Important Events<a class="headerlink" href="#important-events" title="Link to this heading">ïƒ</a></h4> -<p>Some of the Events are logged for other applications to use, for instance the <strong>openPASS</strong> Visualizer. -These Events can be identified by their Name and are listed below:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>TrafficLight</p></td> -<td><p>TrafficLight Events are triggered once a TrafficLightController changes the state of it’s -Trafficlight bulbs. Parameters include the traffic_light_state and the opendrive_id which -links to a dynamic signal in the scenery configuration. traffic_light_state is going to -be used by the <strong>openPASS</strong> Visualizer. The initial state of the ThreeSignalsTrafficLight is posted too.</p></td> -</tr> -</tbody> -</table> -<p>The change in the active component of longitudinal and/or lateral control is also logged as event with name “ActiveComponentChangeâ€.</p> -</section> -<section id="agents"> -<span id="observationlog-agents"></span><h4>Agents<a class="headerlink" href="#agents" title="Link to this heading">ïƒ</a></h4> -<p>This section contains some information on how each agent is configured.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Id</p></td> -<td><p>Identification number</p></td> -</tr> -<tr class="row-odd"><td><p>AgentTypeGroupName</p></td> -<td><p>The agent category. This can either be Ego, Scenario or Common</p></td> -</tr> -<tr class="row-even"><td><p>AgentTypeName</p></td> -<td><p>Name of the agent profile</p></td> -</tr> -<tr class="row-odd"><td><p>VehicleModelType</p></td> -<td><p>Name of the vehicle model</p></td> -</tr> -<tr class="row-even"><td><p>DriverProfileName</p></td> -<td><p>Name of the driver profile</p></td> -</tr> -</tbody> -</table> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Agent</span><span class="w"> </span><span class="na">Id=</span><span class="s">"0"</span> -<span class="w"> </span><span class="na">AgentTypeGroupName=</span><span class="s">"Ego"</span> -<span class="w"> </span><span class="na">AgentTypeName=</span><span class="s">"MiddleClassCarAgent"</span> -<span class="w"> </span><span class="na">VehicleModelType=</span><span class="s">"car_bmw_7"</span> -<span class="w"> </span><span class="na">DriverProfileName=</span><span class="s">"Regular"</span><span class="nt">></span> -</pre></div> -</div> -<p>The VehicleAttributes tag lists basic information of the vehicle parameters.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Width</p></td> -<td><p>Width of the vehicles bounding box</p></td> -</tr> -<tr class="row-odd"><td><p>Length</p></td> -<td><p>Length of the vehicles bounding box</p></td> -</tr> -<tr class="row-even"><td><p>Height</p></td> -<td><p>Height of the vehicles bounding box</p></td> -</tr> -<tr class="row-odd"><td><p>LongitudinalPivotOffset</p></td> -<td><p>Distance between center of the bounding box and reference point of the agent. -Positive distances are closer to the front of the vehicle. -Negative distances are closer to the rear of the vehicle.</p></td> -</tr> -</tbody> -</table> -<p>The Components tag lists all instantiated components from the SystemProfile.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Type</p></td> -<td><p>Type of the component</p></td> -</tr> -<tr class="row-odd"><td><p>Profile</p></td> -<td><p>Name of the component profile</p></td> -</tr> -</tbody> -</table> -<p>The Sensors tag lists all sensors of the agent and their parameters.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Name</p></td> -<td><p>Name of the component</p></td> -</tr> -<tr class="row-odd"><td><p>Model</p></td> -<td><p>Type of the sensor</p></td> -</tr> -<tr class="row-even"><td><p>MountingPosLongitudinal</p></td> -<td><p>Relative longitudinal position of the sensor in relation to the agent</p></td> -</tr> -<tr class="row-odd"><td><p>MountingPosLateral</p></td> -<td><p>Relative lateral position of the sensor in relation to the agent</p></td> -</tr> -<tr class="row-even"><td><p>MountingPosHeight</p></td> -<td><p>Relative height of the sensor in relation to the agent</p></td> -</tr> -<tr class="row-odd"><td><p>OrientationPitch</p></td> -<td><p>Pitch rotation of the sensor in relation to the agent</p></td> -</tr> -<tr class="row-even"><td><p>OrientationYaw</p></td> -<td><p>Yaw rotation of the sensor in relation to the agent</p></td> -</tr> -<tr class="row-odd"><td><p>OpeningAngleH</p></td> -<td><p>Horizontal opening angle of the sensor</p></td> -</tr> -<tr class="row-even"><td><p>OpeningAngleV</p></td> -<td><p>Vertical opening angle of the sensor</p></td> -</tr> -<tr class="row-odd"><td><p>DetectionRange</p></td> -<td><p>Range how far the sensor reaches in m</p></td> -</tr> -</tbody> -</table> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Calculation of visual obstruction is currently supported only by the Geometric2D sensor. -See <a class="reference internal" href="../configs/systemconfigblueprint.html#systemconfigblueprint"><span class="std std-ref">SystemConfigBlueprint</span></a> for configuration.</p> -</div> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Sensor</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Geometric2DFront"</span> -<span class="w"> </span><span class="na">Model=</span><span class="s">"Geometric2D"</span> -<span class="w"> </span><span class="na">MountingPosLongitudinal=</span><span class="s">"0"</span> -<span class="w"> </span><span class="na">MountingPosLateral=</span><span class="s">"0"</span> -<span class="w"> </span><span class="na">MountingPosHeight=</span><span class="s">"0.5"</span> -<span class="w"> </span><span class="na">OrientationPitch=</span><span class="s">"0"</span> -<span class="w"> </span><span class="na">OrientationYaw=</span><span class="s">"0"</span> -<span class="w"> </span><span class="na">OpeningAngleH=</span><span class="s">"20"</span> -<span class="w"> </span><span class="na">OpeningAngleV=</span><span class="s">"-999"</span> -<span class="w"> </span><span class="na">DetectionRange=</span><span class="s">"300"</span><span class="w"> </span><span class="nt">/></span> -</pre></div> -</div> -</section> -<section id="cyclics"> -<span id="observationlog-cyclics"></span><h4>Cyclics<a class="headerlink" href="#cyclics" title="Link to this heading">ïƒ</a></h4> -<p>If the parameter <code class="docutils literal notranslate"><span class="pre">LoggingCyclicsToCsv</span></code> is set to <code class="docutils literal notranslate"><span class="pre">false</span></code>, this section contains all logged parameters of the agents per time step. -The tag <code class="docutils literal notranslate"><span class="pre">header</span></code> defines the layout of all samples. -Each entry of the header consists of the agent id and the name of the logged value, in the form <code class="docutils literal notranslate"><span class="pre">ID:SAMPLE_NAME</span></code>. -A sample contains all information for one specific time step. -If an agent does not exist at the current time step, the value is ‘ ‘.</p> -<p><strong>Example</strong></p> -<p>In this example exist two agents with the ids 0 and 1. -Two time steps were being tracked, one at 0 seconds and one at 100 ms. -Agent 0 has a constant velocity of 30 m/s and starts at the position X: 100 and Y: 50. -Agent 1 has a initial velocity of 40 m/s and starts at the position X: 200 and Y: 50.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Cyclics></span> -<span class="w"> </span><span class="nt"><Header></span>00:VelocityEgo,<span class="w"> </span>00:XPosition,<span class="w"> </span>00:YPosition,<span class="w"> </span>00:YawAngle,<span class="w"> </span>01:VelocityEgo,<span class="w"> </span>01:XPosition,<span class="w"> </span>01:YPosition,<span class="w"> </span>01:YawAngle<span class="nt"></Header></span> -<span class="w"> </span><span class="nt"><Samples></span> -<span class="w"> </span><span class="nt"><Sample</span><span class="w"> </span><span class="na">Time=</span><span class="s">"0"</span><span class="nt">></span>30,<span class="w"> </span>100,<span class="w"> </span>50,<span class="w"> </span>0,<span class="w"> </span>40,<span class="w"> </span>200,<span class="w"> </span>50,<span class="w"> </span>0<span class="nt"></Sample></span> -<span class="w"> </span><span class="nt"><Sample</span><span class="w"> </span><span class="na">Time=</span><span class="s">"100"</span><span class="nt">></span>30,<span class="w"> </span>103,<span class="w"> </span>50,<span class="w"> </span>0,<span class="w"> </span>40,<span class="w"> </span>204,<span class="w"> </span>50,<span class="w"> </span>0<span class="nt"></Sample></span> -<span class="w"> </span><span class="nt"></Samples></span> -<span class="nt"></Cyclics></span> -</pre></div> -</div> -<p>If the parameter <code class="docutils literal notranslate"><span class="pre">LoggingCyclicsToCsv</span></code> is set to <code class="docutils literal notranslate"><span class="pre">true</span></code>, this section only contains a reference to the corresponding CSV file, e.g.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Cyclics></span> -<span class="w"> </span><span class="nt"><CyclicsFile></span>Cyclics_Run_000.csv<span class="nt"></CyclicsFile></span> -<span class="nt"></Cyclics></span> -</pre></div> -</div> -<p>For each invocation, the file number of the filename is incremented, starting with <code class="docutils literal notranslate"><span class="pre">Cyclics_Run_000.csv</span></code>.</p> -</section> -</section> -<section id="cyclics-run"> -<h3>Cyclics_Run_###<a class="headerlink" href="#cyclics-run" title="Link to this heading">ïƒ</a></h3> -<p>This file contains the samples as described in :ref:’observationlog_cyclics’, but with the time step as leading column.</p> -<p><strong>Example</strong></p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Timestep</p></th> -<th class="head"><p>00:VelocityEgo</p></th> -<th class="head"><p>00:XPosition</p></th> -<th class="head"><p>00:YPosition</p></th> -<th class="head"><p>00:YawAngle</p></th> -<th class="head"><p>01:VelocityEgo</p></th> -<th class="head"><p>01:XPosition</p></th> -<th class="head"><p>01:YPosition</p></th> -<th class="head"><p>01:YawAngle</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>0</p></td> -<td><p>30</p></td> -<td><p>100</p></td> -<td><p>50</p></td> -<td><p>0</p></td> -<td><p>40</p></td> -<td><p>200</p></td> -<td><p>50</p></td> -<td><p>0</p></td> -</tr> -<tr class="row-odd"><td><p>100</p></td> -<td><p>30</p></td> -<td><p>103</p></td> -<td><p>50</p></td> -<td><p>0</p></td> -<td><p>40</p></td> -<td><p>204</p></td> -<td><p>50</p></td> -<td><p>0</p></td> -</tr> -</tbody> -</table> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../configs/simulationconfig.html" class="btn btn-neutral float-left" title="SimulationConfig" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="observation_repository.html" class="btn btn-neutral float-right" title="Observation_EntityRepository" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Observation_Log — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Observation_EntityRepository" href="observation_repository.html" /> + <link rel="prev" title="SimulationConfig" href="../configs/simulationconfig.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="../configs/profilescatalog.html">ProfilesCatalog</a></li> +<li class="toctree-l2"><a class="reference internal" href="../configs/scenario.html">Scenario</a></li> +<li class="toctree-l2"><a class="reference internal" href="../configs/scenario_api_support.html">Scenario API Support</a></li> +<li class="toctree-l2"><a class="reference internal" href="../configs/scenery.html">Scenery</a></li> +<li class="toctree-l2 current"><a class="reference internal" href="../configs/simulationconfig.html">SimulationConfig</a><ul class="current"> +<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#profilescatalog">ProfilesCatalog</a></li> +<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#experiment">Experiment</a></li> +<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#scenario">Scenario</a></li> +<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#environment">Environment</a></li> +<li class="toctree-l3 current"><a class="reference internal" href="../configs/simulationconfig.html#observations">Observations</a><ul class="current"> +<li class="toctree-l4 current"><a class="current reference internal" href="#">Observation_Log</a></li> +<li class="toctree-l4"><a class="reference internal" href="observation_repository.html">Observation_EntityRepository</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#spawners">Spawners</a></li> +<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#full-example">Full Example</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="../configs/staticsystemconfig.html">Static SystemConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="../configs/systemconfigblueprint.html">SystemConfigBlueprint</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> + <li class="breadcrumb-item"><a href="../configs/simulationconfig.html">SimulationConfig</a></li> + <li class="breadcrumb-item active">Observation_Log</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/user_guide/outputs/observation_log.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="observation-log"> +<span id="id1"></span><h1>Observation_Log<a class="headerlink" href="#observation-log" title="Link to this heading">ïƒ</a></h1> +<p>This section describes the parameters and outputs of the <code class="docutils literal notranslate"><span class="pre">Observation_Log</span></code> observer.</p> +<section id="parameterization"> +<span id="observationlog-parameterization"></span><h2>Parameterization<a class="headerlink" href="#parameterization" title="Link to this heading">ïƒ</a></h2> +<p>Following parameters are supported:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Parameter</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>OutputFilename</p></td> +<td><p>String</p></td> +<td><p>Name of the output file (normally <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>)</p></td> +</tr> +<tr class="row-odd"><td><p>LoggingCyclicsToCsv</p></td> +<td><p>Bool</p></td> +<td><p>If <code class="docutils literal notranslate"><span class="pre">true</span></code>, cyclics are written an additional file (one CSV file per run)</p></td> +</tr> +<tr class="row-even"><td><p>LoggingGroup_<NAME></p></td> +<td><p>StringVector</p></td> +<td><p>Defines which columns belong to the logging group named NAME</p></td> +</tr> +<tr class="row-odd"><td><p>LoggingGroups</p></td> +<td><p>StringVector</p></td> +<td><p>Defines active logging groups</p></td> +</tr> +</tbody> +</table> +<p>The columns, defined by the <code class="docutils literal notranslate"><span class="pre">LoggingGroup_<NAME></span></code> correspond to cyclic data entries written by the world and other components. +Cyclics are named data values of a single agent during a specific timestep. +Simulation components including agent components can write this values into the DataBuffer component using the PublisherInterface. +The Observation_Log can then read this values and write them into the output.</p> +<p>The world publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">AgentNetwork.cpp</span></code>):</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Cyclics</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>XPosition</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Position x of the reference point (in world coordinates)</p></td> +</tr> +<tr class="row-odd"><td><p>YPosition</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Position y of the reference point (in world coordinates)</p></td> +</tr> +<tr class="row-even"><td><p>VelocityEgo</p></td> +<td><p>Double</p></td> +<td><p>m/s</p></td> +<td><p>Absolute velocity (length of the velocity vector) at the reference point +(including spin caused by YawRate)</p></td> +</tr> +<tr class="row-odd"><td><p>AccelerationEgo</p></td> +<td><p>Double</p></td> +<td><p>m/s²</p></td> +<td><p>Longitudinal acceleration (including angular acceleration) at the reference point. +Longitudinal refers to the angle of the vehicle regardless of the curvature of the road it is on.</p></td> +</tr> +<tr class="row-even"><td><p>YawAngle</p></td> +<td><p>Double</p></td> +<td><p>rad</p></td> +<td><p>Yaw angle w.r.t. x-axis</p></td> +</tr> +<tr class="row-odd"><td><p>YawRate</p></td> +<td><p>Double</p></td> +<td><p>rad/s</p></td> +<td><p>Yaw rate of the agent</p></td> +</tr> +<tr class="row-even"><td><p>SteeringWheelAngle</p></td> +<td><p>Double</p></td> +<td><p>rad</p></td> +<td><p>Steering wheel angle</p></td> +</tr> +<tr class="row-odd"><td><p>TotalDistanceTraveled</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Total traveled distance of all agents</p></td> +</tr> +<tr class="row-even"><td><p>PositionRoute*</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Position of the agent’s front center in <strong>road’s</strong> s coordinate +(distance to the start of the road)</p></td> +</tr> +<tr class="row-odd"><td><p>TCoordinate*</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Position of the agent’s front center in <strong>lane’s</strong> t coordinate +(distance to the middle of the lane respecting intended driving direction)</p></td> +</tr> +<tr class="row-even"><td><p>Lane*</p></td> +<td><p>Integer</p></td> +<td></td> +<td><p>Id of the lane</p></td> +</tr> +<tr class="row-odd"><td><p>Road*</p></td> +<td><p>String</p></td> +<td></td> +<td><p>OpenDRIVE id of the road on which the agent is on (i.e. the front center).</p></td> +</tr> +<tr class="row-even"><td><p>SecondaryLanes*</p></td> +<td><p>IntegerVector</p></td> +<td></td> +<td><p>List of secondary lanes on a specific road</p></td> +</tr> +<tr class="row-odd"><td><p>AgentInFront*</p></td> +<td><p>Integer</p></td> +<td></td> +<td><p>Id of the next object on the agent’s route</p></td> +</tr> +</tbody> +</table> +<p>The longitudinal driver publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">longitudinalDriver.cpp</span></code>):</p> +<blockquote> +<div><table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Cyclics</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>AccelerationPedalPosition</p></td> +<td><p>Double</p></td> +<td><p>Position of the acceleration pedal position in percent</p></td> +</tr> +<tr class="row-odd"><td><p>BrakePedalPosition</p></td> +<td><p>Double</p></td> +<td><p>Position of the brake pedal position in percent</p></td> +</tr> +<tr class="row-even"><td><p>Gear</p></td> +<td><p>Integer</p></td> +<td><p>Current gear position</p></td> +</tr> +</tbody> +</table> +</div></blockquote> +<p>The component Action_SecondaryDriverTasks publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">secondaryDriverTasks.cpp</span></code>):</p> +<blockquote> +<div><table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Cyclics</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>BrakeLight</p></td> +<td><p>Boolean</p></td> +<td><p>True if BrakeLight is on</p></td> +</tr> +<tr class="row-odd"><td><p>IndicatorState</p></td> +<td><p>Enum</p></td> +<td><p>State of the turning indicator (left, center/off, right)</p></td> +</tr> +<tr class="row-even"><td><p>LightStatus</p></td> +<td><p>Enum</p></td> +<td><p>State of the headlight (off, low beam, fog light, high beam, flash)</p></td> +</tr> +</tbody> +</table> +</div></blockquote> +<p>The component AgentUpdater publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">agentUpdaterImpl.cpp</span></code>):</p> +<blockquote> +<div><table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Cyclics</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>LongitudinalController</p></td> +<td><p>String</p></td> +<td><p>Component that is active for longitudinal control</p></td> +</tr> +<tr class="row-odd"><td><p>LateralController</p></td> +<td><p>String</p></td> +<td><p>Component that is active for lateral control</p></td> +</tr> +</tbody> +</table> +</div></blockquote> +<p>The component Dynamics_RegularDriving publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">regularDriving.cpp</span></code>):</p> +<blockquote> +<div><table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Cyclics</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>EngineMoment</p></td> +<td><p>Double</p></td> +<td><p>Nm</p></td> +<td><p>Torque of the engine</p></td> +</tr> +<tr class="row-odd"><td><p>SteeringAngle</p></td> +<td><p>Double</p></td> +<td><p>rad</p></td> +<td><p>Steering angle of front wheels</p></td> +</tr> +</tbody> +</table> +</div></blockquote> +<p>The component Sensor_Driver publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">sensor_driverImpl.cpp</span></code>):</p> +<blockquote> +<div><table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Cyclics</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>AgentInFront</p></td> +<td><p>Integer</p></td> +<td><p>Id of the agent infront</p></td> +</tr> +</tbody> +</table> +</div></blockquote> +<p>The component Sensor_OSI publishes the following cyclics (see source of <code class="docutils literal notranslate"><span class="pre">sensorCar2X.cpp</span></code>):</p> +<blockquote> +<div><table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Cyclics</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>DetectedAgents</p></td> +<td><p>String</p></td> +<td><p>List of ids of detected agents</p></td> +</tr> +<tr class="row-odd"><td><p>VisibleAgents</p></td> +<td><p>String</p></td> +<td><p>List of ids of visible agents</p></td> +</tr> +</tbody> +</table> +</div></blockquote> +<div class="admonition-wildcards-in-logginggroup-definitions admonition"> +<p class="admonition-title"><strong>Wildcards in LoggingGroup definitions</strong></p> +<div class="line-block"> +<div class="line">It is possible to use the wildcard character <code class="docutils literal notranslate"><span class="pre">*</span></code> in a <code class="docutils literal notranslate"><span class="pre">LoggingGroup_<NAME></span></code> entry.</div> +<div class="line">The wildcard can be used only once per column reference.</div> +</div> +</div> +<p><strong>Example</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><Library></span>Observation_Log<span class="nt"></Library></span> +<span class="w"> </span><span class="nt"><Parameters></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OutputFilename"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"simulationOutput.xml"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingCyclicsToCsv"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Trace"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"XPosition,YPosition,YawAngle"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_RoadPosition"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AgentInFront,Lane,PositionRoute,Road,TCoordinate"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_RoadPositionExtended"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"SecondaryLanes"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Sensor"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Sensor*_DetectedAgents,Sensor*_VisibleAgents"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Vehicle"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AccelerationPedalPosition,BrakePedalPosition,EngineMoment,Gear,SteeringAngle,TotalDistanceTraveled,YawRate"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroup_Visualization"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AccelerationEgo,BrakeLight,IndicatorState,LightStatus,VelocityEgo"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"LoggingGroups"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Trace,Visualization,RoadPosition,Sensor"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Parameters></span> +</pre></div> +</div> +</section> +<section id="output-files"> +<h2>Output Files<a class="headerlink" href="#output-files" title="Link to this heading">ïƒ</a></h2> +<section id="simulationoutput"> +<span id="observationlog-simout"></span><h3>SimulationOutput<a class="headerlink" href="#simulationoutput" title="Link to this heading">ïƒ</a></h3> +<p>Every successful run (single experiment) generates a single file, normally called <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code> (see :ref:’observationlog_parameterization’). +The output can contain multiple invocations of the same configuration with different random seeds. +For each invocation a RunResult is stored, which contains information about the random seed, run id, the agents and their parameters. +As well as run specific events and parameters.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><SimulationOutput></span> +<span class="w"> </span><span class="nt"><RunResults></span> +<span class="w"> </span><span class="nt"><RunResult</span><span class="w"> </span><span class="na">RunId=</span><span class="s">"0"</span><span class="w"> </span><span class="na">RandomSeed=</span><span class="s">"5673465"</span><span class="nt">></span> +<span class="w"> </span>... +<span class="w"> </span><span class="nt"></RunResult></span> +<span class="w"> </span><span class="nt"><RunResult</span><span class="w"> </span><span class="na">RunId=</span><span class="s">"1"</span><span class="w"> </span><span class="na">RandomSeed=</span><span class="s">"2634474"</span><span class="nt">></span> +<span class="w"> </span>... +<span class="w"> </span><span class="nt"></RunResult></span> +<span class="w"> </span><span class="nt"></RunResults></span> +<span class="nt"></SimulationOutput></span> +</pre></div> +</div> +<p>The RunResult consist out of the following parts:</p> +<ul class="simple"> +<li><p><a class="reference internal" href="#observationlog-events"><span class="std std-ref">Events</span></a></p></li> +<li><p><a class="reference internal" href="#observationlog-agents"><span class="std std-ref">Agents</span></a></p></li> +<li><p><a class="reference internal" href="#observationlog-cyclics"><span class="std std-ref">Cyclics</span></a></p></li> +</ul> +<section id="events"> +<span id="observationlog-events"></span><h4>Events<a class="headerlink" href="#events" title="Link to this heading">ïƒ</a></h4> +<p>This section contains all events that occurred during the invocation. +Event can either be triggered by an EventDetector, Manipulator or by certain vehicle components. +They are used to track special behavior in the simulation.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Time</p></td> +<td><p>Time in ms when the event occurred.</p></td> +</tr> +<tr class="row-odd"><td><p>Source</p></td> +<td><p>Name of the component which created the event. +<code class="docutils literal notranslate"><span class="pre">OpenSCENARIO</span></code>, if triggered by an OpenSCENARIO condition.</p></td> +</tr> +<tr class="row-even"><td><p>Name</p></td> +<td><p>In case of an OpenSCENARIO event, a path expression Story/Act/Sequence/Maneuver/Event +using the names of the corresponding tags as described in the OpenSCENARIO file. +Otherwise determined by the triggering component.</p></td> +</tr> +<tr class="row-odd"><td><p>TriggeringEntities</p></td> +<td><p>List of entity IDs triggering this event.</p></td> +</tr> +<tr class="row-even"><td><p>AffectedEntities</p></td> +<td><p>List of entity IDs affected by this event.</p></td> +</tr> +<tr class="row-odd"><td><p>Parameters</p></td> +<td><p>List of generic key/value string pairs.</p></td> +</tr> +</tbody> +</table> +</section> +<section id="important-events"> +<h4>Important Events<a class="headerlink" href="#important-events" title="Link to this heading">ïƒ</a></h4> +<p>Some of the Events are logged for other applications to use, for instance the <strong>openPASS</strong> Visualizer. +These Events can be identified by their Name and are listed below:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>TrafficLight</p></td> +<td><p>TrafficLight Events are triggered once a TrafficLightController changes the state of it’s +Trafficlight bulbs. Parameters include the traffic_light_state and the opendrive_id which +links to a dynamic signal in the scenery configuration. traffic_light_state is going to +be used by the <strong>openPASS</strong> Visualizer. The initial state of the ThreeSignalsTrafficLight is posted too.</p></td> +</tr> +</tbody> +</table> +<p>The change in the active component of longitudinal and/or lateral control is also logged as event with name “ActiveComponentChangeâ€.</p> +</section> +<section id="agents"> +<span id="observationlog-agents"></span><h4>Agents<a class="headerlink" href="#agents" title="Link to this heading">ïƒ</a></h4> +<p>This section contains some information on how each agent is configured.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Id</p></td> +<td><p>Identification number</p></td> +</tr> +<tr class="row-odd"><td><p>AgentTypeGroupName</p></td> +<td><p>The agent category. This can either be Ego, Scenario or Common</p></td> +</tr> +<tr class="row-even"><td><p>AgentTypeName</p></td> +<td><p>Name of the agent profile</p></td> +</tr> +<tr class="row-odd"><td><p>VehicleModelType</p></td> +<td><p>Name of the vehicle model</p></td> +</tr> +<tr class="row-even"><td><p>DriverProfileName</p></td> +<td><p>Name of the driver profile</p></td> +</tr> +</tbody> +</table> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Agent</span><span class="w"> </span><span class="na">Id=</span><span class="s">"0"</span> +<span class="w"> </span><span class="na">AgentTypeGroupName=</span><span class="s">"Ego"</span> +<span class="w"> </span><span class="na">AgentTypeName=</span><span class="s">"MiddleClassCarAgent"</span> +<span class="w"> </span><span class="na">VehicleModelType=</span><span class="s">"car_bmw_7"</span> +<span class="w"> </span><span class="na">DriverProfileName=</span><span class="s">"Regular"</span><span class="nt">></span> +</pre></div> +</div> +<p>The VehicleAttributes tag lists basic information of the vehicle parameters.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Width</p></td> +<td><p>Width of the vehicles bounding box</p></td> +</tr> +<tr class="row-odd"><td><p>Length</p></td> +<td><p>Length of the vehicles bounding box</p></td> +</tr> +<tr class="row-even"><td><p>Height</p></td> +<td><p>Height of the vehicles bounding box</p></td> +</tr> +<tr class="row-odd"><td><p>LongitudinalPivotOffset</p></td> +<td><p>Distance between center of the bounding box and reference point of the agent. +Positive distances are closer to the front of the vehicle. +Negative distances are closer to the rear of the vehicle.</p></td> +</tr> +</tbody> +</table> +<p>The Components tag lists all instantiated components from the SystemProfile.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Type</p></td> +<td><p>Type of the component</p></td> +</tr> +<tr class="row-odd"><td><p>Profile</p></td> +<td><p>Name of the component profile</p></td> +</tr> +</tbody> +</table> +<p>The Sensors tag lists all sensors of the agent and their parameters.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Name</p></td> +<td><p>Name of the component</p></td> +</tr> +<tr class="row-odd"><td><p>Model</p></td> +<td><p>Type of the sensor</p></td> +</tr> +<tr class="row-even"><td><p>MountingPosLongitudinal</p></td> +<td><p>Relative longitudinal position of the sensor in relation to the agent</p></td> +</tr> +<tr class="row-odd"><td><p>MountingPosLateral</p></td> +<td><p>Relative lateral position of the sensor in relation to the agent</p></td> +</tr> +<tr class="row-even"><td><p>MountingPosHeight</p></td> +<td><p>Relative height of the sensor in relation to the agent</p></td> +</tr> +<tr class="row-odd"><td><p>OrientationPitch</p></td> +<td><p>Pitch rotation of the sensor in relation to the agent</p></td> +</tr> +<tr class="row-even"><td><p>OrientationYaw</p></td> +<td><p>Yaw rotation of the sensor in relation to the agent</p></td> +</tr> +<tr class="row-odd"><td><p>OpeningAngleH</p></td> +<td><p>Horizontal opening angle of the sensor</p></td> +</tr> +<tr class="row-even"><td><p>OpeningAngleV</p></td> +<td><p>Vertical opening angle of the sensor</p></td> +</tr> +<tr class="row-odd"><td><p>DetectionRange</p></td> +<td><p>Range how far the sensor reaches in m</p></td> +</tr> +</tbody> +</table> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Calculation of visual obstruction is currently supported only by the Geometric2D sensor. +See <a class="reference internal" href="../configs/systemconfigblueprint.html#systemconfigblueprint"><span class="std std-ref">SystemConfigBlueprint</span></a> for configuration.</p> +</div> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Sensor</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Geometric2DFront"</span> +<span class="w"> </span><span class="na">Model=</span><span class="s">"Geometric2D"</span> +<span class="w"> </span><span class="na">MountingPosLongitudinal=</span><span class="s">"0"</span> +<span class="w"> </span><span class="na">MountingPosLateral=</span><span class="s">"0"</span> +<span class="w"> </span><span class="na">MountingPosHeight=</span><span class="s">"0.5"</span> +<span class="w"> </span><span class="na">OrientationPitch=</span><span class="s">"0"</span> +<span class="w"> </span><span class="na">OrientationYaw=</span><span class="s">"0"</span> +<span class="w"> </span><span class="na">OpeningAngleH=</span><span class="s">"20"</span> +<span class="w"> </span><span class="na">OpeningAngleV=</span><span class="s">"-999"</span> +<span class="w"> </span><span class="na">DetectionRange=</span><span class="s">"300"</span><span class="w"> </span><span class="nt">/></span> +</pre></div> +</div> +</section> +<section id="cyclics"> +<span id="observationlog-cyclics"></span><h4>Cyclics<a class="headerlink" href="#cyclics" title="Link to this heading">ïƒ</a></h4> +<p>If the parameter <code class="docutils literal notranslate"><span class="pre">LoggingCyclicsToCsv</span></code> is set to <code class="docutils literal notranslate"><span class="pre">false</span></code>, this section contains all logged parameters of the agents per time step. +The tag <code class="docutils literal notranslate"><span class="pre">header</span></code> defines the layout of all samples. +Each entry of the header consists of the agent id and the name of the logged value, in the form <code class="docutils literal notranslate"><span class="pre">ID:SAMPLE_NAME</span></code>. +A sample contains all information for one specific time step. +If an agent does not exist at the current time step, the value is ‘ ‘.</p> +<p><strong>Example</strong></p> +<p>In this example exist two agents with the ids 0 and 1. +Two time steps were being tracked, one at 0 seconds and one at 100 ms. +Agent 0 has a constant velocity of 30 m/s and starts at the position X: 100 and Y: 50. +Agent 1 has a initial velocity of 40 m/s and starts at the position X: 200 and Y: 50.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Cyclics></span> +<span class="w"> </span><span class="nt"><Header></span>00:VelocityEgo,<span class="w"> </span>00:XPosition,<span class="w"> </span>00:YPosition,<span class="w"> </span>00:YawAngle,<span class="w"> </span>01:VelocityEgo,<span class="w"> </span>01:XPosition,<span class="w"> </span>01:YPosition,<span class="w"> </span>01:YawAngle<span class="nt"></Header></span> +<span class="w"> </span><span class="nt"><Samples></span> +<span class="w"> </span><span class="nt"><Sample</span><span class="w"> </span><span class="na">Time=</span><span class="s">"0"</span><span class="nt">></span>30,<span class="w"> </span>100,<span class="w"> </span>50,<span class="w"> </span>0,<span class="w"> </span>40,<span class="w"> </span>200,<span class="w"> </span>50,<span class="w"> </span>0<span class="nt"></Sample></span> +<span class="w"> </span><span class="nt"><Sample</span><span class="w"> </span><span class="na">Time=</span><span class="s">"100"</span><span class="nt">></span>30,<span class="w"> </span>103,<span class="w"> </span>50,<span class="w"> </span>0,<span class="w"> </span>40,<span class="w"> </span>204,<span class="w"> </span>50,<span class="w"> </span>0<span class="nt"></Sample></span> +<span class="w"> </span><span class="nt"></Samples></span> +<span class="nt"></Cyclics></span> +</pre></div> +</div> +<p>If the parameter <code class="docutils literal notranslate"><span class="pre">LoggingCyclicsToCsv</span></code> is set to <code class="docutils literal notranslate"><span class="pre">true</span></code>, this section only contains a reference to the corresponding CSV file, e.g.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Cyclics></span> +<span class="w"> </span><span class="nt"><CyclicsFile></span>Cyclics_Run_000.csv<span class="nt"></CyclicsFile></span> +<span class="nt"></Cyclics></span> +</pre></div> +</div> +<p>For each invocation, the file number of the filename is incremented, starting with <code class="docutils literal notranslate"><span class="pre">Cyclics_Run_000.csv</span></code>.</p> +</section> +</section> +<section id="cyclics-run"> +<h3>Cyclics_Run_###<a class="headerlink" href="#cyclics-run" title="Link to this heading">ïƒ</a></h3> +<p>This file contains the samples as described in :ref:’observationlog_cyclics’, but with the time step as leading column.</p> +<p><strong>Example</strong></p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Timestep</p></th> +<th class="head"><p>00:VelocityEgo</p></th> +<th class="head"><p>00:XPosition</p></th> +<th class="head"><p>00:YPosition</p></th> +<th class="head"><p>00:YawAngle</p></th> +<th class="head"><p>01:VelocityEgo</p></th> +<th class="head"><p>01:XPosition</p></th> +<th class="head"><p>01:YPosition</p></th> +<th class="head"><p>01:YawAngle</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>0</p></td> +<td><p>30</p></td> +<td><p>100</p></td> +<td><p>50</p></td> +<td><p>0</p></td> +<td><p>40</p></td> +<td><p>200</p></td> +<td><p>50</p></td> +<td><p>0</p></td> +</tr> +<tr class="row-odd"><td><p>100</p></td> +<td><p>30</p></td> +<td><p>103</p></td> +<td><p>50</p></td> +<td><p>0</p></td> +<td><p>40</p></td> +<td><p>204</p></td> +<td><p>50</p></td> +<td><p>0</p></td> +</tr> +</tbody> +</table> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../configs/simulationconfig.html" class="btn btn-neutral float-left" title="SimulationConfig" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="observation_repository.html" class="btn btn-neutral float-right" title="Observation_EntityRepository" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/outputs/observation_repository.html b/content/html/user_guide/outputs/observation_repository.html index 2df3e684b287eaf3f43ec233b8d33915eea1bc1e..b29d2c7aa97d675453120a3f377dc4613c8c1e79 100644 --- a/content/html/user_guide/outputs/observation_repository.html +++ b/content/html/user_guide/outputs/observation_repository.html @@ -1,543 +1,544 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Observation_EntityRepository — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Static SystemConfig" href="../configs/staticsystemconfig.html" /> - <link rel="prev" title="Observation_Log" href="observation_log.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../configs/profilescatalog.html">ProfilesCatalog</a></li> -<li class="toctree-l2"><a class="reference internal" href="../configs/scenario.html">Scenario</a></li> -<li class="toctree-l2"><a class="reference internal" href="../configs/scenario_api_support.html">Scenario API Support</a></li> -<li class="toctree-l2"><a class="reference internal" href="../configs/scenery.html">Scenery</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="../configs/simulationconfig.html">SimulationConfig</a><ul class="current"> -<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#profilescatalog">ProfilesCatalog</a></li> -<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#experiment">Experiment</a></li> -<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#scenario">Scenario</a></li> -<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#environment">Environment</a></li> -<li class="toctree-l3 current"><a class="reference internal" href="../configs/simulationconfig.html#observations">Observations</a><ul class="current"> -<li class="toctree-l4"><a class="reference internal" href="observation_log.html">Observation_Log</a></li> -<li class="toctree-l4 current"><a class="current reference internal" href="#">Observation_EntityRepository</a></li> -</ul> -</li> -<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#spawners">Spawners</a></li> -<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#full-example">Full Example</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="../configs/staticsystemconfig.html">Static SystemConfig</a></li> -<li class="toctree-l2"><a class="reference internal" href="../configs/systemconfigblueprint.html">SystemConfigBlueprint</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> - <li class="breadcrumb-item"><a href="../configs/simulationconfig.html">SimulationConfig</a></li> - <li class="breadcrumb-item active">Observation_EntityRepository</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/user_guide/outputs/observation_repository.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="observation-entityrepository"> -<span id="id1"></span><h1>Observation_EntityRepository<a class="headerlink" href="#observation-entityrepository" title="Link to this heading">ïƒ</a></h1> -<p>This observer logs all entities generated for an experiment, split by run and/or persistence. -In the following, the parametrization and generated outputs of the <code class="docutils literal notranslate"><span class="pre">Observation_EntityRepository</span></code> observer are described.</p> -<section id="parametrization"> -<span id="observation-entityrepository-parametrization"></span><h2>Parametrization<a class="headerlink" href="#parametrization" title="Link to this heading">ïƒ</a></h2> -<p>Following parameters are supported:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Parameter</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>FilenamePrefix</p></td> -<td><p>String</p></td> -<td><p>(Optional) Prefix for the output files. -Defaults to <code class="docutils literal notranslate"><span class="pre">Repository</span></code> resulting e.g. in <code class="docutils literal notranslate"><span class="pre">Repository_Run_00.csv</span></code>.</p></td> -</tr> -<tr class="row-odd"><td><p>WritePersistentEntities</p></td> -<td><p>String</p></td> -<td><p>Defines how persistent, ie cross-run entities such as stationary objects, are logged</p> -<p>Options:</p> -<ul class="simple"> -<li><p><strong>Consolidated</strong> (default): Logged together with non persistent entities and hence duplicated for each run.</p></li> -<li><p><strong>Separate</strong>: Written once into <code class="docutils literal notranslate"><span class="pre">{FilenamePrefix}_Persistent.csv</span></code></p></li> -<li><p><strong>Skip</strong>: No output.</p></li> -</ul> -</td> -</tr> -</tbody> -</table> -<div class="admonition warning"> -<p class="admonition-title">Warning</p> -<p>The visualization is searching for files with the default <code class="docutils literal notranslate"><span class="pre">Repository</span></code> prefix, so don’t change it unless you have a reason to.</p> -</div> -<p><strong>Example</strong></p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><Library></span>Observation_EntityRepository<span class="nt"></Library></span> -<span class="w"> </span><span class="nt"><Parameters></span> -<span class="w"> </span><span class="cm"><!-- If "FilenamePrefix" is skipped, defaults to Value="Repository" --></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FilenamePrefix"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Repository"</span><span class="nt">/></span> -<span class="w"> </span><span class="cm"><!-- If "WritePersistentEntities" is skipped, defaults to Value="Consolidated"</span> -<span class="cm"> Options: </span> -<span class="cm"> - Consolidated: Concatenate with {FilenamePrefix}_Run_###.csv for each run</span> -<span class="cm"> - Separate: Write to {FilenamePrefix}_Persistent.csv</span> -<span class="cm"> - Skip: No output for persistent entities</span> -<span class="cm"> --></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"WritePersistentEntities"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Consolidated"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Parameters></span> -</pre></div> -</div> -</section> -<section id="output-files"> -<h2>Output Files<a class="headerlink" href="#output-files" title="Link to this heading">ïƒ</a></h2> -<section id="repository-run-csv"> -<span id="observation-entityrepository-run"></span><h3>Repository_Run_###.csv<a class="headerlink" href="#repository-run-csv" title="Link to this heading">ïƒ</a></h3> -<p>This file contains information about entities, which exist only within the given run. -In other words, <code class="docutils literal notranslate"><span class="pre">Repository_Run_000.csv</span></code> will contain all moving objects, spawned within the first run (zero-based index).</p> -<p><strong>Example</strong></p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>id</p></th> -<th class="head"><p>group</p></th> -<th class="head"><p>source</p></th> -<th class="head"><p>version</p></th> -<th class="head"><p>name</p></th> -<th class="head"><p>secondary id</p></th> -<th class="head"><p>type</p></th> -<th class="head"><p>subtype</p></th> -<th class="head"></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>0</p></td> -<td><p>MovingObject</p></td> -<td><p>OpenSCENARIO</p></td> -<td></td> -<td><p>Ego</p></td> -<td></td> -<td><p>Ego</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>1</p></td> -<td><p>MovingObject</p></td> -<td><p>OpenSCENARIO</p></td> -<td></td> -<td><p>TF</p></td> -<td></td> -<td><p>Scenaro</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>2</p></td> -<td><p>MovingObject</p></td> -<td><p>OpenSCENARIO</p></td> -<td></td> -<td><p>S1</p></td> -<td></td> -<td><p>Scenaro</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>3</p></td> -<td><p>MovingObject</p></td> -<td><p>OpenSCENARIO</p></td> -<td></td> -<td><p>S2</p></td> -<td></td> -<td><p>Scenaro</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>4</p></td> -<td><p>MovingObject</p></td> -<td><p>OpenSCENARIO</p></td> -<td></td> -<td><p>S3</p></td> -<td></td> -<td><p>Scenaro</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>5</p></td> -<td><p>MovingObject</p></td> -<td><p>OpenSCENARIO</p></td> -<td></td> -<td></td> -<td></td> -<td><p>Common</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-even"><td><p>6</p></td> -<td><p>MovingObject</p></td> -<td><p>OpenSCENARIO</p></td> -<td></td> -<td></td> -<td></td> -<td><p>Common</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>7</p></td> -<td><p>MovingObject</p></td> -<td><p>OpenSCENARIO</p></td> -<td></td> -<td></td> -<td></td> -<td><p>Common</p></td> -<td></td> -<td></td> -</tr> -</tbody> -</table> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>By convention, moving objects start with id 0.</p> -</div> -<p>If <code class="docutils literal notranslate"><span class="pre">WritePersistentEntities</span></code> is set to <code class="docutils literal notranslate"><span class="pre">Consolidated</span></code>, each file will also contain information about stationary objects, described below.</p> -</section> -<section id="repository-persistent-csv"> -<span id="observation-entityrepository-persistent"></span><h3>Repository_Persistent.csv<a class="headerlink" href="#repository-persistent-csv" title="Link to this heading">ïƒ</a></h3> -<p>This file contains information about entities, which exist in every single run. -This includes mainly both objects (starting at 100000) and road elements (starting at 200000), defined by the <a class="reference internal" href="../configs/scenery.html#scenery"><span class="std std-ref">Scenery</span></a>.</p> -<p><strong>Example</strong></p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>id</p></th> -<th class="head"><p>group</p></th> -<th class="head"><p>source</p></th> -<th class="head"><p>version</p></th> -<th class="head"><p>name</p></th> -<th class="head"><p>secondary id</p></th> -<th class="head"><p>type</p></th> -<th class="head"><p>subtype</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>100000</p></td> -<td><p>StationaryObject</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>Barrier</p></td> -<td><p>barrier_01</p></td> -<td><p>obstacle</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>100001</p></td> -<td><p>StationaryObject</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>GuardRail</p></td> -<td><p>guardrail_01</p></td> -<td><p>railing</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>100002</p></td> -<td><p>StationaryObject</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>GuardRail</p></td> -<td><p>guardrail_01</p></td> -<td><p>railing</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>100003</p></td> -<td><p>StationaryObject</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>GuardRail</p></td> -<td><p>guardrail_01</p></td> -<td><p>railing</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>100004</p></td> -<td><p>StationaryObject</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>GuardRail</p></td> -<td><p>guardrail_01</p></td> -<td><p>railing</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>100005</p></td> -<td><p>StationaryObject</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>GuardRail</p></td> -<td><p>guardrail_01</p></td> -<td><p>railing</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>100006</p></td> -<td><p>StationaryObject</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>GuardRail</p></td> -<td><p>guardrail_02</p></td> -<td><p>railing</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>100007</p></td> -<td><p>StationaryObject</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>GuardRail</p></td> -<td><p>guardrail_02</p></td> -<td><p>railing</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>100008</p></td> -<td><p>StationaryObject</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>GuardRail</p></td> -<td><p>guardrail_02</p></td> -<td><p>railing</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>100009</p></td> -<td><p>StationaryObject</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>GuardRail</p></td> -<td><p>guardrail_02</p></td> -<td><p>railing</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>100010</p></td> -<td><p>StationaryObject</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>GuardRail</p></td> -<td><p>guardrail_02</p></td> -<td><p>railing</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>200000</p></td> -<td><p>Others</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>LaneRoadMark</p></td> -<td></td> -<td><p>Solid</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>200001</p></td> -<td><p>Others</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>LaneRoadMark</p></td> -<td></td> -<td><p>Solid</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>200002</p></td> -<td><p>Others</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>Lane</p></td> -<td><p>-3</p></td> -<td><p>Driving</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>200003</p></td> -<td><p>Others</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>LaneRoadMark</p></td> -<td></td> -<td><p>Broken</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>200004</p></td> -<td><p>Others</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>Lane</p></td> -<td><p>-2</p></td> -<td><p>Driving</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>200005</p></td> -<td><p>Others</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>LaneRoadMark</p></td> -<td></td> -<td><p>Broken</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>200006</p></td> -<td><p>Others</p></td> -<td><p>OpenDRIVE</p></td> -<td><p>1.6</p></td> -<td><p>Lane</p></td> -<td><p>-1</p></td> -<td><p>Driving</p></td> -<td></td> -</tr> -</tbody> -</table> -<p>Information coming from the source <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> are mapped in the following manner:</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Column</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>name</p></td> -<td><p>name</p></td> -</tr> -<tr class="row-odd"><td><p>id</p></td> -<td><p>secondary id</p></td> -</tr> -<tr class="row-even"><td><p>type</p></td> -<td><p>type</p></td> -</tr> -<tr class="row-odd"><td><p>subtype</p></td> -<td><p>subtype</p></td> -</tr> -</tbody> -</table> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Repeated OpenDRIVE objects are internally split into individual objects. -E.g. a single guard rail object in OpenDRIVE, is split into individual openPASS objects having consecutive ids. -In the example above, the OpenDRIVE object with (secondary) id <code class="docutils literal notranslate"><span class="pre">guardrail_01</span></code> is split into 5 individual openPASS objects with the closed id range from 100001 to 100005.</p> -</div> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="observation_log.html" class="btn btn-neutral float-left" title="Observation_Log" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="../configs/staticsystemconfig.html" class="btn btn-neutral float-right" title="Static SystemConfig" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Observation_EntityRepository — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Static SystemConfig" href="../configs/staticsystemconfig.html" /> + <link rel="prev" title="Observation_Log" href="observation_log.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="../configs/profilescatalog.html">ProfilesCatalog</a></li> +<li class="toctree-l2"><a class="reference internal" href="../configs/scenario.html">Scenario</a></li> +<li class="toctree-l2"><a class="reference internal" href="../configs/scenario_api_support.html">Scenario API Support</a></li> +<li class="toctree-l2"><a class="reference internal" href="../configs/scenery.html">Scenery</a></li> +<li class="toctree-l2 current"><a class="reference internal" href="../configs/simulationconfig.html">SimulationConfig</a><ul class="current"> +<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#profilescatalog">ProfilesCatalog</a></li> +<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#experiment">Experiment</a></li> +<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#scenario">Scenario</a></li> +<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#environment">Environment</a></li> +<li class="toctree-l3 current"><a class="reference internal" href="../configs/simulationconfig.html#observations">Observations</a><ul class="current"> +<li class="toctree-l4"><a class="reference internal" href="observation_log.html">Observation_Log</a></li> +<li class="toctree-l4 current"><a class="current reference internal" href="#">Observation_EntityRepository</a></li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#spawners">Spawners</a></li> +<li class="toctree-l3"><a class="reference internal" href="../configs/simulationconfig.html#full-example">Full Example</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="../configs/staticsystemconfig.html">Static SystemConfig</a></li> +<li class="toctree-l2"><a class="reference internal" href="../configs/systemconfigblueprint.html">SystemConfigBlueprint</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../30_configs_in_depth.html">Configs in Depth</a></li> + <li class="breadcrumb-item"><a href="../configs/simulationconfig.html">SimulationConfig</a></li> + <li class="breadcrumb-item active">Observation_EntityRepository</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/user_guide/outputs/observation_repository.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="observation-entityrepository"> +<span id="id1"></span><h1>Observation_EntityRepository<a class="headerlink" href="#observation-entityrepository" title="Link to this heading">ïƒ</a></h1> +<p>This observer logs all entities generated for an experiment, split by run and/or persistence. +In the following, the parametrization and generated outputs of the <code class="docutils literal notranslate"><span class="pre">Observation_EntityRepository</span></code> observer are described.</p> +<section id="parametrization"> +<span id="observation-entityrepository-parametrization"></span><h2>Parametrization<a class="headerlink" href="#parametrization" title="Link to this heading">ïƒ</a></h2> +<p>Following parameters are supported:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Parameter</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>FilenamePrefix</p></td> +<td><p>String</p></td> +<td><p>(Optional) Prefix for the output files. +Defaults to <code class="docutils literal notranslate"><span class="pre">Repository</span></code> resulting e.g. in <code class="docutils literal notranslate"><span class="pre">Repository_Run_00.csv</span></code>.</p></td> +</tr> +<tr class="row-odd"><td><p>WritePersistentEntities</p></td> +<td><p>String</p></td> +<td><p>Defines how persistent, ie cross-run entities such as stationary objects, are logged</p> +<p>Options:</p> +<ul class="simple"> +<li><p><strong>Consolidated</strong> (default): Logged together with non persistent entities and hence duplicated for each run.</p></li> +<li><p><strong>Separate</strong>: Written once into <code class="docutils literal notranslate"><span class="pre">{FilenamePrefix}_Persistent.csv</span></code></p></li> +<li><p><strong>Skip</strong>: No output.</p></li> +</ul> +</td> +</tr> +</tbody> +</table> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>The visualization is searching for files with the default <code class="docutils literal notranslate"><span class="pre">Repository</span></code> prefix, so don’t change it unless you have a reason to.</p> +</div> +<p><strong>Example</strong></p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><Library></span>Observation_EntityRepository<span class="nt"></Library></span> +<span class="w"> </span><span class="nt"><Parameters></span> +<span class="w"> </span><span class="cm"><!-- If "FilenamePrefix" is skipped, defaults to Value="Repository" --></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FilenamePrefix"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Repository"</span><span class="nt">/></span> +<span class="w"> </span><span class="cm"><!-- If "WritePersistentEntities" is skipped, defaults to Value="Consolidated"</span> +<span class="cm"> Options: </span> +<span class="cm"> - Consolidated: Concatenate with {FilenamePrefix}_Run_###.csv for each run</span> +<span class="cm"> - Separate: Write to {FilenamePrefix}_Persistent.csv</span> +<span class="cm"> - Skip: No output for persistent entities</span> +<span class="cm"> --></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"WritePersistentEntities"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Consolidated"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Parameters></span> +</pre></div> +</div> +</section> +<section id="output-files"> +<h2>Output Files<a class="headerlink" href="#output-files" title="Link to this heading">ïƒ</a></h2> +<section id="repository-run-csv"> +<span id="observation-entityrepository-run"></span><h3>Repository_Run_###.csv<a class="headerlink" href="#repository-run-csv" title="Link to this heading">ïƒ</a></h3> +<p>This file contains information about entities, which exist only within the given run. +In other words, <code class="docutils literal notranslate"><span class="pre">Repository_Run_000.csv</span></code> will contain all moving objects, spawned within the first run (zero-based index).</p> +<p><strong>Example</strong></p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>id</p></th> +<th class="head"><p>group</p></th> +<th class="head"><p>source</p></th> +<th class="head"><p>version</p></th> +<th class="head"><p>name</p></th> +<th class="head"><p>secondary id</p></th> +<th class="head"><p>type</p></th> +<th class="head"><p>subtype</p></th> +<th class="head"></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>0</p></td> +<td><p>MovingObject</p></td> +<td><p>OpenSCENARIO</p></td> +<td></td> +<td><p>Ego</p></td> +<td></td> +<td><p>Ego</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>1</p></td> +<td><p>MovingObject</p></td> +<td><p>OpenSCENARIO</p></td> +<td></td> +<td><p>TF</p></td> +<td></td> +<td><p>Scenaro</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>2</p></td> +<td><p>MovingObject</p></td> +<td><p>OpenSCENARIO</p></td> +<td></td> +<td><p>S1</p></td> +<td></td> +<td><p>Scenaro</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>3</p></td> +<td><p>MovingObject</p></td> +<td><p>OpenSCENARIO</p></td> +<td></td> +<td><p>S2</p></td> +<td></td> +<td><p>Scenaro</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>4</p></td> +<td><p>MovingObject</p></td> +<td><p>OpenSCENARIO</p></td> +<td></td> +<td><p>S3</p></td> +<td></td> +<td><p>Scenaro</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>5</p></td> +<td><p>MovingObject</p></td> +<td><p>OpenSCENARIO</p></td> +<td></td> +<td></td> +<td></td> +<td><p>Common</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-even"><td><p>6</p></td> +<td><p>MovingObject</p></td> +<td><p>OpenSCENARIO</p></td> +<td></td> +<td></td> +<td></td> +<td><p>Common</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>7</p></td> +<td><p>MovingObject</p></td> +<td><p>OpenSCENARIO</p></td> +<td></td> +<td></td> +<td></td> +<td><p>Common</p></td> +<td></td> +<td></td> +</tr> +</tbody> +</table> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>By convention, moving objects start with id 0.</p> +</div> +<p>If <code class="docutils literal notranslate"><span class="pre">WritePersistentEntities</span></code> is set to <code class="docutils literal notranslate"><span class="pre">Consolidated</span></code>, each file will also contain information about stationary objects, described below.</p> +</section> +<section id="repository-persistent-csv"> +<span id="observation-entityrepository-persistent"></span><h3>Repository_Persistent.csv<a class="headerlink" href="#repository-persistent-csv" title="Link to this heading">ïƒ</a></h3> +<p>This file contains information about entities, which exist in every single run. +This includes mainly both objects (starting at 100000) and road elements (starting at 200000), defined by the <a class="reference internal" href="../configs/scenery.html#scenery"><span class="std std-ref">Scenery</span></a>.</p> +<p><strong>Example</strong></p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>id</p></th> +<th class="head"><p>group</p></th> +<th class="head"><p>source</p></th> +<th class="head"><p>version</p></th> +<th class="head"><p>name</p></th> +<th class="head"><p>secondary id</p></th> +<th class="head"><p>type</p></th> +<th class="head"><p>subtype</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>100000</p></td> +<td><p>StationaryObject</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>Barrier</p></td> +<td><p>barrier_01</p></td> +<td><p>obstacle</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>100001</p></td> +<td><p>StationaryObject</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>GuardRail</p></td> +<td><p>guardrail_01</p></td> +<td><p>railing</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>100002</p></td> +<td><p>StationaryObject</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>GuardRail</p></td> +<td><p>guardrail_01</p></td> +<td><p>railing</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>100003</p></td> +<td><p>StationaryObject</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>GuardRail</p></td> +<td><p>guardrail_01</p></td> +<td><p>railing</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>100004</p></td> +<td><p>StationaryObject</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>GuardRail</p></td> +<td><p>guardrail_01</p></td> +<td><p>railing</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>100005</p></td> +<td><p>StationaryObject</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>GuardRail</p></td> +<td><p>guardrail_01</p></td> +<td><p>railing</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>100006</p></td> +<td><p>StationaryObject</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>GuardRail</p></td> +<td><p>guardrail_02</p></td> +<td><p>railing</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>100007</p></td> +<td><p>StationaryObject</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>GuardRail</p></td> +<td><p>guardrail_02</p></td> +<td><p>railing</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>100008</p></td> +<td><p>StationaryObject</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>GuardRail</p></td> +<td><p>guardrail_02</p></td> +<td><p>railing</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>100009</p></td> +<td><p>StationaryObject</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>GuardRail</p></td> +<td><p>guardrail_02</p></td> +<td><p>railing</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>100010</p></td> +<td><p>StationaryObject</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>GuardRail</p></td> +<td><p>guardrail_02</p></td> +<td><p>railing</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>200000</p></td> +<td><p>Others</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>LaneRoadMark</p></td> +<td></td> +<td><p>Solid</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>200001</p></td> +<td><p>Others</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>LaneRoadMark</p></td> +<td></td> +<td><p>Solid</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>200002</p></td> +<td><p>Others</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>Lane</p></td> +<td><p>-3</p></td> +<td><p>Driving</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>200003</p></td> +<td><p>Others</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>LaneRoadMark</p></td> +<td></td> +<td><p>Broken</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>200004</p></td> +<td><p>Others</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>Lane</p></td> +<td><p>-2</p></td> +<td><p>Driving</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>200005</p></td> +<td><p>Others</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>LaneRoadMark</p></td> +<td></td> +<td><p>Broken</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>200006</p></td> +<td><p>Others</p></td> +<td><p>OpenDRIVE</p></td> +<td><p>1.6</p></td> +<td><p>Lane</p></td> +<td><p>-1</p></td> +<td><p>Driving</p></td> +<td></td> +</tr> +</tbody> +</table> +<p>Information coming from the source <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> are mapped in the following manner:</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Column</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>name</p></td> +<td><p>name</p></td> +</tr> +<tr class="row-odd"><td><p>id</p></td> +<td><p>secondary id</p></td> +</tr> +<tr class="row-even"><td><p>type</p></td> +<td><p>type</p></td> +</tr> +<tr class="row-odd"><td><p>subtype</p></td> +<td><p>subtype</p></td> +</tr> +</tbody> +</table> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Repeated OpenDRIVE objects are internally split into individual objects. +E.g. a single guard rail object in OpenDRIVE, is split into individual openPASS objects having consecutive ids. +In the example above, the OpenDRIVE object with (secondary) id <code class="docutils literal notranslate"><span class="pre">guardrail_01</span></code> is split into 5 individual openPASS objects with the closed id range from 100001 to 100005.</p> +</div> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="observation_log.html" class="btn btn-neutral float-left" title="Observation_Log" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../configs/staticsystemconfig.html" class="btn btn-neutral float-right" title="Static SystemConfig" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/sim_user_guide/10_overview.html b/content/html/user_guide/sim_user_guide/10_overview.html index 7f3cfcf457c9346758b56b0d36dd89703cfcfa85..ff9d13070f4e82bc96c5ecd6a4a2c47a44a8a54a 100644 --- a/content/html/user_guide/sim_user_guide/10_overview.html +++ b/content/html/user_guide/sim_user_guide/10_overview.html @@ -1,162 +1,163 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Overview — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Component View" href="20_components.html" /> - <link rel="prev" title="Simulator" href="../50_scenario_simulation.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a><ul class="current"> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Overview</a></li> -<li class="toctree-l2"><a class="reference internal" href="20_components.html">Component View</a></li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../50_scenario_simulation.html">Simulator</a></li> - <li class="breadcrumb-item active">Overview</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/user_guide/sim_user_guide/10_overview.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="overview"> -<h1>Overview<a class="headerlink" href="#overview" title="Link to this heading">ïƒ</a></h1> -<p><strong>openPASS</strong> is a tool for executing a traffic based Monte-Carlo simulation and provides capabilities for the following two levels of variation:</p> -<ol class="arabic simple"> -<li><p><strong>Experiment:</strong> Topmost, an experiment defines the domains of possible inputs, which shall be compared, such as <em>“traffic at high volumeâ€</em> with <em>“traffic at low volumeâ€</em>. -In this sense, a parameter variation is done at a very coarse level, resulting in two sets of inputs. -Note that this level is covered by the GUI (see <a class="reference internal" href="../tutorials/20_pcm_simulation.html#pcm-simulation-guide"><span class="std std-ref">PCM Simulation</span></a>).</p></li> -<li><p><strong>Invocation:</strong> When an input-set is available, <strong>openPASS</strong> invokes a defined number of runs, resulting in a probabilistic sampling of the given state under parameterizable conditions. -For example, in the aforementioned situation <em>“traffic at high volumeâ€</em>, it would generate participants at <em>“lower speedsâ€</em> and <em>“smaller gapsâ€</em>. -Thereby parameterizable means, that the user has the freedom to define probabilities defining <em>“lower speedâ€</em> and <em>“smaller gapsâ€</em>. -In each invocation, <strong>openPASS</strong> samples from these probabilities to generate a possible traffic situation under the given parameter variation.</p></li> -</ol> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../50_scenario_simulation.html" class="btn btn-neutral float-left" title="Simulator" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="20_components.html" class="btn btn-neutral float-right" title="Component View" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Overview — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Component View" href="20_components.html" /> + <link rel="prev" title="Simulator" href="../50_scenario_simulation.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a><ul class="current"> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Overview</a></li> +<li class="toctree-l2"><a class="reference internal" href="20_components.html">Component View</a></li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../50_scenario_simulation.html">Simulator</a></li> + <li class="breadcrumb-item active">Overview</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/user_guide/sim_user_guide/10_overview.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="overview"> +<h1>Overview<a class="headerlink" href="#overview" title="Link to this heading">ïƒ</a></h1> +<p><strong>openPASS</strong> is a tool for executing a traffic based Monte-Carlo simulation and provides capabilities for the following two levels of variation:</p> +<ol class="arabic simple"> +<li><p><strong>Experiment:</strong> Topmost, an experiment defines the domains of possible inputs, which shall be compared, such as <em>“traffic at high volumeâ€</em> with <em>“traffic at low volumeâ€</em>. +In this sense, a parameter variation is done at a very coarse level, resulting in two sets of inputs. +Note that this level is covered by the GUI (see <a class="reference internal" href="../tutorials/20_pcm_simulation.html#pcm-simulation-guide"><span class="std std-ref">PCM Simulation</span></a>).</p></li> +<li><p><strong>Invocation:</strong> When an input-set is available, <strong>openPASS</strong> invokes a defined number of runs, resulting in a probabilistic sampling of the given state under parameterizable conditions. +For example, in the aforementioned situation <em>“traffic at high volumeâ€</em>, it would generate participants at <em>“lower speedsâ€</em> and <em>“smaller gapsâ€</em>. +Thereby parameterizable means, that the user has the freedom to define probabilities defining <em>“lower speedâ€</em> and <em>“smaller gapsâ€</em>. +In each invocation, <strong>openPASS</strong> samples from these probabilities to generate a possible traffic situation under the given parameter variation.</p></li> +</ol> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../50_scenario_simulation.html" class="btn btn-neutral float-left" title="Simulator" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="20_components.html" class="btn btn-neutral float-right" title="Component View" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/sim_user_guide/20_components.html b/content/html/user_guide/sim_user_guide/20_components.html index 6ae03efd060c42cba6331f3caa1d45cebbbda240..020c48f5174ed17ebb523ab7c556b5ebf30840f3 100644 --- a/content/html/user_guide/sim_user_guide/20_components.html +++ b/content/html/user_guide/sim_user_guide/20_components.html @@ -1,263 +1,264 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Component View — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Algorithm_Lateral" href="components/algorithm_lateral.html" /> - <link rel="prev" title="Overview" href="10_overview.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="10_overview.html">Overview</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Component View</a><ul> -<li class="toctree-l3"><a class="reference internal" href="#components-in-depth">Components in Depth</a><ul> -<li class="toctree-l4"><a class="reference internal" href="components/algorithm_lateral.html">Algorithm_Lateral</a></li> -<li class="toctree-l4"><a class="reference internal" href="components/algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> -<li class="toctree-l4"><a class="reference internal" href="components/driver.html">Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="components/dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> -<li class="toctree-l4"><a class="reference internal" href="components/dynamics_scenario.html">Dynamics_Scenario</a></li> -<li class="toctree-l4"><a class="reference internal" href="components/sensor_driver.html">Sensor_Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="components/spawner.html">Spawner</a></li> -<li class="toctree-l4"><a class="reference internal" href="components/vehicle.html">VehicleComponents</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../50_scenario_simulation.html">Simulator</a></li> - <li class="breadcrumb-item active">Component View</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/user_guide/sim_user_guide/20_components.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="component-view"> -<h1>Component View<a class="headerlink" href="#component-view" title="Link to this heading">ïƒ</a></h1> -<p><strong>openPASS</strong> is divided into components, which can be roughly divided into <strong>core components</strong> and <strong>model components</strong>. -The most interesting core components are the individual <strong>spawners</strong>, which are responsible for populating the world in a realistic fashion. -Model components are again roughly divided into <strong>drivers</strong> and <strong>vehicle components</strong> and represent how an individual participant is composed.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>There are several additional components acting in the background, making sure things work as they should. -As a guideline, components parameterized through the <strong>ProfilesCatalog</strong> are scope of this guide, others not.</p> -</div> -<section id="components-in-depth"> -<span id="simuserguide-components"></span><h2>Components in Depth<a class="headerlink" href="#components-in-depth" title="Link to this heading">ïƒ</a></h2> -<p>In the following, all available components are described.</p> -<div class="toctree-wrapper compound"> -<ul> -<li class="toctree-l1"><a class="reference internal" href="components/algorithm_lateral.html">Algorithm_Lateral</a><ul> -<li class="toctree-l2"><a class="reference internal" href="components/algorithm_lateral.html#detailed-description-of-the-module-s-features">Detailed description of the module’s features</a><ul> -<li class="toctree-l3"><a class="reference internal" href="components/algorithm_lateral.html#lateral-dynamics">Lateral dynamics</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/algorithm_lateral.html#heading-controller">Heading controller</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/algorithm_lateral.html#lateral-deviation-controller">Lateral deviation controller</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="components/algorithm_longitudinal.html">Algorithm_Longitudinal</a><ul> -<li class="toctree-l2"><a class="reference internal" href="components/algorithm_longitudinal.html#detailed-description-of-the-module-s-features">Detailed description of the module’s features</a><ul> -<li class="toctree-l3"><a class="reference internal" href="components/algorithm_longitudinal.html#inverted-longitudinal-dynamics-model">Inverted longitudinal dynamics model</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/algorithm_longitudinal.html#algorithm-for-optimal-gear-determination">Algorithm for optimal gear determination</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="components/driver.html">Driver</a><ul> -<li class="toctree-l2"><a class="reference internal" href="components/driver.html#algorithmagentfollowingdrivermodel">AlgorithmAgentFollowingDriverModel</a><ul> -<li class="toctree-l3"><a class="reference internal" href="components/driver.html#lateral-control">Lateral control</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/driver.html#longitudinal-control">Longitudinal control</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="components/dynamics_regular_driving.html">Dynamics_RegularDriving</a><ul> -<li class="toctree-l2"><a class="reference internal" href="components/dynamics_regular_driving.html#overview-of-the-module-s-functionalities">Overview of the module’s functionalities</a><ul> -<li class="toctree-l3"><a class="reference internal" href="components/dynamics_regular_driving.html#longitudinal-dynamics">Longitudinal dynamics</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/dynamics_regular_driving.html#lateral-dynamics">Lateral dynamics</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/dynamics_regular_driving.html#updating-position">Updating position</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="components/dynamics_scenario.html">Dynamics_Scenario</a><ul> -<li class="toctree-l2"><a class="reference internal" href="components/dynamics_scenario.html#defaultstrategies">DefaultStrategies</a><ul> -<li class="toctree-l3"><a class="reference internal" href="components/dynamics_scenario.html#keepvelocity-longitudinal">KeepVelocity - longitudinal</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/dynamics_scenario.html#keeplaneoffset-lateral">KeepLaneOffset - lateral</a></li> -</ul> -</li> -<li class="toctree-l2"><a class="reference internal" href="components/dynamics_scenario.html#strategies">Strategies</a><ul> -<li class="toctree-l3"><a class="reference internal" href="components/dynamics_scenario.html#followvelocityspline-longitudinal">FollowVelocitySpline - longitudinal</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/dynamics_scenario.html#performchangelane-lateral">PerformChangeLane - lateral</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/dynamics_scenario.html#followtrajectory-both">FollowTrajectory - both</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="components/sensor_driver.html">Sensor_Driver</a><ul> -<li class="toctree-l2"><a class="reference internal" href="components/sensor_driver.html#components-of-the-module">Components of the module</a><ul> -<li class="toctree-l3"><a class="reference internal" href="components/sensor_driver.html#ownvehiclestates">OwnVehicleStates</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/sensor_driver.html#trafficruleinformation">TrafficRuleInformation</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/sensor_driver.html#geometryinformation">GeometryInformation</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/sensor_driver.html#surroundingobjects">SurroundingObjects</a></li> -</ul> -</li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="components/spawner.html">Spawner</a><ul> -<li class="toctree-l2"><a class="reference internal" href="components/spawner.html#prerunspawner">PreRunSpawner</a></li> -<li class="toctree-l2"><a class="reference internal" href="components/spawner.html#runtimespawner">RuntimeSpawner</a></li> -<li class="toctree-l2"><a class="reference internal" href="components/spawner.html#trafficgroups">TrafficGroups</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="components/vehicle.html">VehicleComponents</a><ul> -<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#aeb">AEB</a></li> -<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#dynamicstrajectoryfollower">DynamicsTrajectoryFollower</a></li> -<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#fmu-wrapper">FMU Wrapper</a></li> -<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#sensorgeometric2d">SensorGeometric2D</a></li> -<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#receivercar2x">ReceiverCar2X</a></li> -<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#ssp">SSP</a></li> -<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#vehicledynamics">VehicleDynamics</a><ul> -<li class="toctree-l3"><a class="reference internal" href="components/vehicle.html#actionsteeringsystem">ActionSteeringSystem</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/vehicle.html#actionpowertrain">ActionPowertrain</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/vehicle.html#actionbrakesystem">ActionBrakeSystem</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/vehicle.html#dynamicschassis">DynamicsChassis</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/vehicle.html#dynamicstiremodel">DynamicsTireModel</a></li> -<li class="toctree-l3"><a class="reference internal" href="components/vehicle.html#dynamicsmotionmodel">DynamicsMotionModel</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</div> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="10_overview.html" class="btn btn-neutral float-left" title="Overview" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="components/algorithm_lateral.html" class="btn btn-neutral float-right" title="Algorithm_Lateral" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Component View — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Algorithm_Lateral" href="components/algorithm_lateral.html" /> + <link rel="prev" title="Overview" href="10_overview.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="10_overview.html">Overview</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Component View</a><ul> +<li class="toctree-l3"><a class="reference internal" href="#components-in-depth">Components in Depth</a><ul> +<li class="toctree-l4"><a class="reference internal" href="components/algorithm_lateral.html">Algorithm_Lateral</a></li> +<li class="toctree-l4"><a class="reference internal" href="components/algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> +<li class="toctree-l4"><a class="reference internal" href="components/driver.html">Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="components/dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> +<li class="toctree-l4"><a class="reference internal" href="components/dynamics_scenario.html">Dynamics_Scenario</a></li> +<li class="toctree-l4"><a class="reference internal" href="components/sensor_driver.html">Sensor_Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="components/spawner.html">Spawner</a></li> +<li class="toctree-l4"><a class="reference internal" href="components/vehicle.html">VehicleComponents</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../50_scenario_simulation.html">Simulator</a></li> + <li class="breadcrumb-item active">Component View</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/user_guide/sim_user_guide/20_components.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="component-view"> +<h1>Component View<a class="headerlink" href="#component-view" title="Link to this heading">ïƒ</a></h1> +<p><strong>openPASS</strong> is divided into components, which can be roughly divided into <strong>core components</strong> and <strong>model components</strong>. +The most interesting core components are the individual <strong>spawners</strong>, which are responsible for populating the world in a realistic fashion. +Model components are again roughly divided into <strong>drivers</strong> and <strong>vehicle components</strong> and represent how an individual participant is composed.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>There are several additional components acting in the background, making sure things work as they should. +As a guideline, components parameterized through the <strong>ProfilesCatalog</strong> are scope of this guide, others not.</p> +</div> +<section id="components-in-depth"> +<span id="simuserguide-components"></span><h2>Components in Depth<a class="headerlink" href="#components-in-depth" title="Link to this heading">ïƒ</a></h2> +<p>In the following, all available components are described.</p> +<div class="toctree-wrapper compound"> +<ul> +<li class="toctree-l1"><a class="reference internal" href="components/algorithm_lateral.html">Algorithm_Lateral</a><ul> +<li class="toctree-l2"><a class="reference internal" href="components/algorithm_lateral.html#detailed-description-of-the-module-s-features">Detailed description of the module’s features</a><ul> +<li class="toctree-l3"><a class="reference internal" href="components/algorithm_lateral.html#lateral-dynamics">Lateral dynamics</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/algorithm_lateral.html#heading-controller">Heading controller</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/algorithm_lateral.html#lateral-deviation-controller">Lateral deviation controller</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="components/algorithm_longitudinal.html">Algorithm_Longitudinal</a><ul> +<li class="toctree-l2"><a class="reference internal" href="components/algorithm_longitudinal.html#detailed-description-of-the-module-s-features">Detailed description of the module’s features</a><ul> +<li class="toctree-l3"><a class="reference internal" href="components/algorithm_longitudinal.html#inverted-longitudinal-dynamics-model">Inverted longitudinal dynamics model</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/algorithm_longitudinal.html#algorithm-for-optimal-gear-determination">Algorithm for optimal gear determination</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="components/driver.html">Driver</a><ul> +<li class="toctree-l2"><a class="reference internal" href="components/driver.html#algorithmagentfollowingdrivermodel">AlgorithmAgentFollowingDriverModel</a><ul> +<li class="toctree-l3"><a class="reference internal" href="components/driver.html#lateral-control">Lateral control</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/driver.html#longitudinal-control">Longitudinal control</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="components/dynamics_regular_driving.html">Dynamics_RegularDriving</a><ul> +<li class="toctree-l2"><a class="reference internal" href="components/dynamics_regular_driving.html#overview-of-the-module-s-functionalities">Overview of the module’s functionalities</a><ul> +<li class="toctree-l3"><a class="reference internal" href="components/dynamics_regular_driving.html#longitudinal-dynamics">Longitudinal dynamics</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/dynamics_regular_driving.html#lateral-dynamics">Lateral dynamics</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/dynamics_regular_driving.html#updating-position">Updating position</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="components/dynamics_scenario.html">Dynamics_Scenario</a><ul> +<li class="toctree-l2"><a class="reference internal" href="components/dynamics_scenario.html#defaultstrategies">DefaultStrategies</a><ul> +<li class="toctree-l3"><a class="reference internal" href="components/dynamics_scenario.html#keepvelocity-longitudinal">KeepVelocity - longitudinal</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/dynamics_scenario.html#keeplaneoffset-lateral">KeepLaneOffset - lateral</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="components/dynamics_scenario.html#strategies">Strategies</a><ul> +<li class="toctree-l3"><a class="reference internal" href="components/dynamics_scenario.html#followvelocityspline-longitudinal">FollowVelocitySpline - longitudinal</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/dynamics_scenario.html#performchangelane-lateral">PerformChangeLane - lateral</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/dynamics_scenario.html#followtrajectory-both">FollowTrajectory - both</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="components/sensor_driver.html">Sensor_Driver</a><ul> +<li class="toctree-l2"><a class="reference internal" href="components/sensor_driver.html#components-of-the-module">Components of the module</a><ul> +<li class="toctree-l3"><a class="reference internal" href="components/sensor_driver.html#ownvehiclestates">OwnVehicleStates</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/sensor_driver.html#trafficruleinformation">TrafficRuleInformation</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/sensor_driver.html#geometryinformation">GeometryInformation</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/sensor_driver.html#surroundingobjects">SurroundingObjects</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="components/spawner.html">Spawner</a><ul> +<li class="toctree-l2"><a class="reference internal" href="components/spawner.html#prerunspawner">PreRunSpawner</a></li> +<li class="toctree-l2"><a class="reference internal" href="components/spawner.html#runtimespawner">RuntimeSpawner</a></li> +<li class="toctree-l2"><a class="reference internal" href="components/spawner.html#trafficgroups">TrafficGroups</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="components/vehicle.html">VehicleComponents</a><ul> +<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#aeb">AEB</a></li> +<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#dynamicstrajectoryfollower">DynamicsTrajectoryFollower</a></li> +<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#fmu-wrapper">FMU Wrapper</a></li> +<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#sensorgeometric2d">SensorGeometric2D</a></li> +<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#receivercar2x">ReceiverCar2X</a></li> +<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#ssp">SSP</a></li> +<li class="toctree-l2"><a class="reference internal" href="components/vehicle.html#vehicledynamics">VehicleDynamics</a><ul> +<li class="toctree-l3"><a class="reference internal" href="components/vehicle.html#actionsteeringsystem">ActionSteeringSystem</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/vehicle.html#actionpowertrain">ActionPowertrain</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/vehicle.html#actionbrakesystem">ActionBrakeSystem</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/vehicle.html#dynamicschassis">DynamicsChassis</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/vehicle.html#dynamicstiremodel">DynamicsTireModel</a></li> +<li class="toctree-l3"><a class="reference internal" href="components/vehicle.html#dynamicsmotionmodel">DynamicsMotionModel</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="10_overview.html" class="btn btn-neutral float-left" title="Overview" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="components/algorithm_lateral.html" class="btn btn-neutral float-right" title="Algorithm_Lateral" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/sim_user_guide/components/algorithm_lateral.html b/content/html/user_guide/sim_user_guide/components/algorithm_lateral.html index 494d73b26e28b96f3c92390e28f29d61548ff45b..d51064d82d8707683cbd5c628b4c30c15004323e 100644 --- a/content/html/user_guide/sim_user_guide/components/algorithm_lateral.html +++ b/content/html/user_guide/sim_user_guide/components/algorithm_lateral.html @@ -1,370 +1,371 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Algorithm_Lateral — openPASS Documentation</title> - <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../../_static/doctools.js?v=888ff710"></script> - <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../../genindex.html" /> - <link rel="search" title="Search" href="../../../search.html" /> - <link rel="next" title="Algorithm_Longitudinal" href="algorithm_longitudinal.html" /> - <link rel="prev" title="Component View" href="../20_components.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../../index.html" class="icon icon-home"> - openPASS - <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> -<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> -<li class="toctree-l4 current"><a class="current reference internal" href="#">Algorithm_Lateral</a></li> -<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> -<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> -<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> -<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> - <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> - <li class="breadcrumb-item active">Algorithm_Lateral</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../../_sources/user_guide/sim_user_guide/components/algorithm_lateral.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="algorithm-lateral"> -<span id="id1"></span><h1>Algorithm_Lateral<a class="headerlink" href="#algorithm-lateral" title="Link to this heading">ïƒ</a></h1> -<p>This module is responsible for the control of the vehicle’s lateral behavior. -It converts the lateral input of the driver module into a steering wheel angle. -The steering wheel angle can then be forwarded to a vehicle dynamics -module like <a class="reference internal" href="dynamics_regular_driving.html#dynamics-regular-driving"><span class="std std-ref">Dynamics_RegularDriving</span></a>.</p> -<section id="detailed-description-of-the-module-s-features"> -<span id="algorithm-lateral-detailed-description"></span><h2>Detailed description of the module’s features<a class="headerlink" href="#detailed-description-of-the-module-s-features" title="Link to this heading">ïƒ</a></h2> -<p>Algorithm_Lateral receives its command variables from a driver behavior model (or an ADAS) -and generates the steering wheel angle of the driver to match these command -variables. The steering wheel angle parts of all controllers are summed up to -the overall steering wheel angle of the driver, which is then sent to a vehicle -dynamics module like <a class="reference internal" href="dynamics_regular_driving.html#dynamics-regular-driving"><span class="std std-ref">Dynamics_RegularDriving</span></a>. -The control loop is closed by the movement of the vehicle in the world, which is -again monitored by the driver behavior model. This overall control loop of -vehicle lateral guidance involving Algorithm_Lateral is illustrated in the following image with the following variables:</p> -<ul class="simple"> -<li><p><img class="math" src="../../../_images/math/6518029864d4abe20f5624f84c2a3fb5395f5818.png" alt="\kappa_{act}"/> is the actual curvature of the vehicle</p></li> -</ul> -<p>Four variables containing the information needed for the open-loop controller:</p> -<ul class="simple"> -<li><p><img class="math" src="../../../_images/math/8ce6de673fb0a26f7371d24364b5f17956e817a3.png" alt="\kappa_{road}"/> is the curvature at the front center (i.e. center of the front of the bounding box) of the ego vehicle. It uses the vectors:</p></li> -<li><p><img class="math" src="../../../_images/math/585c10b7760635a294104d6bd75b446fa33f7520.png" alt="\kappa_{segment,near}"/> containing the curvatures of several segments starting at the front center up to 2m in front of the vehicles leading edge</p></li> -<li><p><img class="math" src="../../../_images/math/168469930df4357c57d598d42925d3e75db7cc85.png" alt="\kappa_{segment,far}"/> containing the curvatures of several segments starting 2m in front of the vehicle and ending 8m in front of it</p></li> -<li><p><img class="math" src="../../../_images/math/7fc672839ad28bec4b6ad1b6ad9bbb10d1b2e587.png" alt="\kappa_{manoeuvre}"/> containing the curvature of the planned trajectory relative to the road</p></li> -</ul> -<p>Other variables:</p> -<ul class="simple"> -<li><p><img class="math" src="../../../_images/math/a87531a368534c59bdc44fbd82f53e9967bebf35.png" alt="w_{act}"/> is the actual lateral position of the vehicle in the road coordinate system</p></li> -<li><p><img class="math" src="../../../_images/math/6450616b75212cb568e905db49efd0c3dd584648.png" alt="\Delta"/> w is the lateral deviation</p></li> -<li><p><img class="math" src="../../../_images/math/c3718c9d15cbad369164f65b0083453db6089390.png" alt="\phi_{act}"/> is the actual heading angle of the vehicle in the road coordinate system</p></li> -<li><p><img class="math" src="../../../_images/math/6450616b75212cb568e905db49efd0c3dd584648.png" alt="\Delta"/><img class="math" src="../../../_images/math/fffd2357ee88a9c50ba9e831ed64c39c73d54a07.png" alt="\phi"/> is the heading error</p></li> -<li><p><img class="math" src="../../../_images/math/a7af2094ee9c485678dd97bfa42a308fb4ad0292.png" alt="\delta_{h,\kappa}"/> is the steering wheel angle from the curvature controller</p></li> -<li><p><img class="math" src="../../../_images/math/13166f7ebafb0f4497af4a92e7b579190b3f49ed.png" alt="\delta_{h,w}"/> is the steering wheel angle from the lateral deviation controller</p></li> -<li><p><img class="math" src="../../../_images/math/34b6c151daffc3c434e429cf7780d55e2c7b7524.png" alt="\delta_{h,\phi}"/> is the steering wheel angle from the heading error controller</p></li> -<li><p><img class="math" src="../../../_images/math/0e4c7fe45a4aa57ff07fcd90cc3e144dad9bb183.png" alt="\delta_h"/> is the overall steering wheel angle of the driver</p></li> -</ul> -<figure class="align-default" id="id2"> -<span id="image-lateralcontrollersignalflow"></span><img alt="Components and signal flow of the lateral guidance control loop" src="../../../_images/LateralControllerSignalFlow.png" /> -<figcaption> -<p><span class="caption-text">Components and signal flow of the lateral guidance control loop</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>The following subsections describe the theoretical background and the transfer -functions of the different controllers.</p> -<section id="lateral-dynamics"> -<span id="algorithm-lateral-detailed-description-lateral-dynamics"></span><h3>Lateral dynamics<a class="headerlink" href="#lateral-dynamics" title="Link to this heading">ïƒ</a></h3> -<p>The lateral dynamics model is based on the Ackermann model which is a simple geometric -expression for the relationship between the steering angle at the front wheels and -the curvature the vehicle produces from it. It has several simplifications, where -the most notable is the reduction of the wheels of one axle to a single surrogate -wheel. This is suitable under the consideration that the steering angles of the front -wheels are rather small and do not differ much between the left and the right -front wheel. The first simplification may not hold up in city traffic with high -curvatures. Therefore the closed-loop-controller must have increased gains in -these situations. <img class="math" src="../../../_images/math/8ce6de673fb0a26f7371d24364b5f17956e817a3.png" alt="\kappa_{road}"/>, <img class="math" src="../../../_images/math/585c10b7760635a294104d6bd75b446fa33f7520.png" alt="\kappa_{segment,near}"/> and <img class="math" src="../../../_images/math/168469930df4357c57d598d42925d3e75db7cc85.png" alt="\kappa_{segment,far}"/> are smoothed and weighted before adding <img class="math" src="../../../_images/math/7fc672839ad28bec4b6ad1b6ad9bbb10d1b2e587.png" alt="\kappa_{manoeuvre}"/> to form <img class="math" src="../../../_images/math/66aaf332fffda2edd545312fae414f1008ac96e7.png" alt="\kappa_{target}"/>.</p> -<p>The Ackermann model is illustrated in the following image with the following variables:</p> -<ul class="simple"> -<li><p><img class="math" src="../../../_images/math/470aa65888a2971c9346e573f12b37ea406b8ec9.png" alt="l"/> is the wheelbase of the vehicle</p></li> -<li><p><img class="math" src="../../../_images/math/652b9d8b65c10aed0fdcdbde47396c879ed5bd33.png" alt="\delta"/> is the surrogate steering angle at the front wheels towards the vehicle’s longitudinal axis</p></li> -<li><p><img class="math" src="../../../_images/math/4abba779877abb276b98ccb2b4ba9bf2e41947ab.png" alt="M"/> is the instantaneous centre of rotation, around which the vehicle is driving on a curve</p></li> -<li><p><img class="math" src="../../../_images/math/79a3d439d28652c547386f39b555d90d3aaf102d.png" alt="r"/> is the radius of the curve, which the vehicle is driving around M</p></li> -<li><p><img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> is the curvature of this curve, which is simply the inverse of r</p></li> -</ul> -<figure class="align-default" id="id3"> -<span id="image-ackermannmodel"></span><img alt="Illustration of the Ackermann model" src="../../../_images/AckermannModel.svg" /><figcaption> -<p><span class="caption-text">Illustration of the Ackermann model</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>In accordance to the current definitions of <a class="reference internal" href="../../../advanced_topics/simulator/coordinate_systems.html#coordinatesystems"><span class="std std-ref">coordinate systems</span></a>, -the coordinate reference point of the vehicle is considered to be the rear axle center. -Therefore, the curvature of the vehicle is also expressed towards the rear axle center -and not to the centre of gravity, which is why the centre of gravity is not -depicted in illustration of the Ackermann model.</p> -<p>The equation derived from the Ackermann model states the following -relation between the surrogate steering angle <img class="math" src="../../../_images/math/652b9d8b65c10aed0fdcdbde47396c879ed5bd33.png" alt="\delta"/> of the front wheels and -the curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> described by the rear axle around the instantaneous -centre of rotation <img class="math" src="../../../_images/math/4abba779877abb276b98ccb2b4ba9bf2e41947ab.png" alt="M"/>:</p> -<div class="math"> -<p><img src="../../../_images/math/74f92e086f237d26ce895805a75a3794a20ea231.png" alt="\kappa = \frac{\tan(\delta)}{l}"/></p> -</div><p>This equation can be inverted to express a required steering angle <img class="math" src="../../../_images/math/652b9d8b65c10aed0fdcdbde47396c879ed5bd33.png" alt="\delta"/> to -adjust a specific curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/>:</p> -<div class="math"> -<p><img src="../../../_images/math/904ab3c787fc37ec90b00ea39276b005b3e68bb5.png" alt="\delta = \arctan(\kappa \cdot l)"/></p> -</div><p>To convert this into the required steering wheel angle <img class="math" src="../../../_images/math/a7af2094ee9c485678dd97bfa42a308fb4ad0292.png" alt="\delta_{h,\kappa}"/>, -the ratio <img class="math" src="../../../_images/math/bb5c6a531ccc8353d7d7634bf0aa0f50b23f0219.png" alt="i_s"/> of the steering gear must be applied:</p> -<div class="math"> -<p><img src="../../../_images/math/14b20bf4e45cb8ae2ffce20e998b6a3ca46e840a.png" alt="\delta_{h, \kappa} = i_{s} \cdot \arctan(\kappa \cdot l)"/></p> -</div><p>The vehicle parameters <img class="math" src="../../../_images/math/470aa65888a2971c9346e573f12b37ea406b8ec9.png" alt="l"/> and <img class="math" src="../../../_images/math/bb5c6a531ccc8353d7d7634bf0aa0f50b23f0219.png" alt="i_s"/> are received from the module <a class="reference internal" href="../../../advanced_topics/simulator/agent_components.html#parameters-vehicle"><span class="std std-ref">Parameters_Vehicle</span></a>.</p> -</section> -<section id="heading-controller"> -<span id="algorithm-lateral-detailed-description-control-heading"></span><h3>Heading controller<a class="headerlink" href="#heading-controller" title="Link to this heading">ïƒ</a></h3> -<p>The heading controller is designed as a simple proportional controller. -The general transfer function of a P-controller with the input signal heading -error <img class="math" src="../../../_images/math/bf31fd4198da89cf275d011551e51296f3a25d00.png" alt="\Delta\phi"/> and the output signal steering wheel angle <img class="math" src="../../../_images/math/34b6c151daffc3c434e429cf7780d55e2c7b7524.png" alt="\delta_{h,\phi}"/> -is described as:</p> -<div class="math"> -<p><img src="../../../_images/math/cf5d091b6daa2ea077ca19f44565e74767adda6e.png" alt="\delta_{h, \phi} = P_{\phi} \cdot \Delta\phi"/></p> -</div><p>The controller amplification <img class="math" src="../../../_images/math/a82e01dd8bc821dfd613dc692b08dea66c30cc61.png" alt="P_\phi"/> is therefore described as the -ratio between input signal and output signal:</p> -<div class="math"> -<p><img src="../../../_images/math/588e3c29e58ff6acec4d2f476bba2e3cf19cc6d1.png" alt="P_{\phi} = \frac{\delta_{h,\phi}}{\Delta\phi}"/></p> -</div><p>The controller amplification <img class="math" src="../../../_images/math/a82e01dd8bc821dfd613dc692b08dea66c30cc61.png" alt="P_\phi"/> therefore expresses, how many -degrees of steering wheel angle are generated by one degree heading error. -The design of this controller amplification <img class="math" src="../../../_images/math/a82e01dd8bc821dfd613dc692b08dea66c30cc61.png" alt="P_\phi"/> uses some -considerations about plane driving kinematics of Kramer. First of all, -the heading error <img class="math" src="../../../_images/math/bf31fd4198da89cf275d011551e51296f3a25d00.png" alt="\Delta\phi"/> is derived from the current curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> -of the vehicle over the change of distance <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> along the road’s longitudinal -coordinate <img class="math" src="../../../_images/math/106b04b320e75010b1d8029e59244f234f75e6f9.png" alt="s"/> in one time step:</p> -<div class="math"> -<p><img src="../../../_images/math/1a04e3412abf6eed6165fce1b7d460421afa185e.png" alt="\Delta\phi = \arctan(ds \cdot \kappa)"/></p> -</div><p>Under the consideration of small angular changes in one time step, this equation -can be linearized to:</p> -<div class="math"> -<p><img src="../../../_images/math/2d48e4c353f1c41600a444603df02ebd159cfff1.png" alt="\Delta\phi = ds \cdot \kappa"/></p> -</div><p>The curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> of the vehicle can be substituted by an Ackermann model -(see <a class="reference internal" href="#algorithm-lateral-detailed-description-lateral-dynamics"><span class="std std-ref">here</span></a> for further information about that):</p> -<div class="math"> -<p><img src="../../../_images/math/856869e75917b044aa8e0e982f4414465cfa0f22.png" alt="\Delta\phi = \frac{ds \cdot \tan(\delta)}{l}"/></p> -</div><p>This equation can also be linearized under the consideration of small angles:</p> -<div class="math"> -<p><img src="../../../_images/math/725343a4b4a6b031052db49cb018677a66c5e25e.png" alt="\Delta\phi = \frac{ds \cdot \delta} {l}"/></p> -</div><p>The connection to the steering wheel angle <img class="math" src="../../../_images/math/34b6c151daffc3c434e429cf7780d55e2c7b7524.png" alt="\delta_{h,\phi}"/> can be -applied by the ratio <img class="math" src="../../../_images/math/bb5c6a531ccc8353d7d7634bf0aa0f50b23f0219.png" alt="i_s"/> of the vehicle’s steering gear:</p> -<div class="math"> -<p><img src="../../../_images/math/1dcaca69c0023651d4af1872cdaa4941ebafe8a0.png" alt="\Delta\phi = \frac{ds \cdot \delta_{h,\phi}}{i_s \cdot l}"/></p> -</div><p>This equation can be transformed to a similar form as the controller’s transfer -function above:</p> -<div class="math"> -<p><img src="../../../_images/math/e49e1b153e930b69af4898fad5114387416a72ab.png" alt="\frac{i_s \cdot l}{ds} = \frac{\delta_{h,\phi}}{\Delta\phi}"/></p> -</div><p>The usage of the incremental difference <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> in this equation is problematic, -because the controller amplification becomes dependent on the simulation step -size. Because of this, the absolute change <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> of the longitudinal road -coordinate <img class="math" src="../../../_images/math/106b04b320e75010b1d8029e59244f234f75e6f9.png" alt="s"/> is substituted by the vehicle’s absolute velocity <img class="math" src="../../../_images/math/02d98909b5d6acd6a7ff927d4d42790bdd407d58.png" alt="v"/> as a -simplification, which is the change of travelled distance with respect to time:</p> -<div class="math"> -<p><img src="../../../_images/math/0d84fa1cff0096a1b50c9bcbbc29f1e2019ed503.png" alt="\frac{i_s \cdot l}{v} = \frac{\delta_{h,\phi}}{\Delta\phi}"/></p> -</div><p>To tune the absolute influence of the heading controller in the overall control -loop, an additional gain factor <img class="math" src="../../../_images/math/b2190f7743a598eb45240597d6fda86d9da74190.png" alt="\text{Gain}_{\Delta\phi}"/> is applied to this -transfer function, which allows a situation dependent amplification of the -heading controller by the driver behavior model:</p> -<div class="math"> -<p><img src="../../../_images/math/489c522ced5a8dbad18b3b7964d5cd24d9742a91.png" alt="\delta_{h,\phi} = \frac{\text{Gain}_{\Delta\phi} \cdot i_s \cdot l \cdot \Delta\phi}{v}"/></p> -</div><p>The vehicle parameters <img class="math" src="../../../_images/math/470aa65888a2971c9346e573f12b37ea406b8ec9.png" alt="l"/> and <img class="math" src="../../../_images/math/bb5c6a531ccc8353d7d7634bf0aa0f50b23f0219.png" alt="i_s"/> are received from the module <a class="reference internal" href="../../../advanced_topics/simulator/agent_components.html#parameters-vehicle"><span class="std std-ref">Parameters_Vehicle</span></a>, the vehicle’s -absolute velocity <img class="math" src="../../../_images/math/02d98909b5d6acd6a7ff927d4d42790bdd407d58.png" alt="v"/> is received from the module <a class="reference internal" href="sensor_driver.html#sensor-driver"><span class="std std-ref">Sensor_Driver</span></a>, -and the additional controller gain <img class="math" src="../../../_images/math/b2190f7743a598eb45240597d6fda86d9da74190.png" alt="\text{Gain}_{\Delta\phi}"/> is received from -a driver behavior model.</p> -</section> -<section id="lateral-deviation-controller"> -<span id="algorithm-lateral-detailed-description-control-deviation"></span><h3>Lateral deviation controller<a class="headerlink" href="#lateral-deviation-controller" title="Link to this heading">ïƒ</a></h3> -<p>The lateral deviation controller is designed as a simple proportional controller. The general transfer -function of a P-controller with the input signal lateral deviation <img class="math" src="../../../_images/math/6450616b75212cb568e905db49efd0c3dd584648.png" alt="\Delta"/> w and -the output signal steering wheel angle <img class="math" src="../../../_images/math/13166f7ebafb0f4497af4a92e7b579190b3f49ed.png" alt="\delta_{h,w}"/> is described as:</p> -<div class="math"> -<p><img src="../../../_images/math/86eaaff22e13f4174c0d4d1f3736ec90803361f4.png" alt="\delta_{h,w} = P_w \cdot \Delta w"/></p> -</div><p>The controller amplification <img class="math" src="../../../_images/math/484e7616c268495d07025ea1cf4ebb24171e77c7.png" alt="P_w"/> is therefore described as the ratio -between input signal and output signal:</p> -<div class="math"> -<p><img src="../../../_images/math/21a69a1aceb85e2ee86e1036e83dec988ff98402.png" alt="P_w = \frac{\delta_{h,w}}{\Delta w}"/></p> -</div><p>The controller amplification <img class="math" src="../../../_images/math/484e7616c268495d07025ea1cf4ebb24171e77c7.png" alt="P_w"/> therefore expresses, how many degrees -of steering wheel angle are generated by one metre of lateral deviation. The -design of this controller amplification <img class="math" src="../../../_images/math/484e7616c268495d07025ea1cf4ebb24171e77c7.png" alt="P_w"/> uses some considerations -about plane driving kinematics of Kramer. First of all, the lateral deviation -<img class="math" src="../../../_images/math/6450616b75212cb568e905db49efd0c3dd584648.png" alt="\Delta"/> w is derived from the current heading error <img class="math" src="../../../_images/math/bf31fd4198da89cf275d011551e51296f3a25d00.png" alt="\Delta\phi"/> over the change -of distance <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> along the road’s longitudinal coordinate <img class="math" src="../../../_images/math/106b04b320e75010b1d8029e59244f234f75e6f9.png" alt="s"/> in one time step:</p> -<div class="math"> -<p><img src="../../../_images/math/d4190ba7429fdd1c6cf50299b566af22c8ed672f.png" alt="\Delta w = ds \cdot \sin(\Delta\phi)"/></p> -</div><p>The current heading error <img class="math" src="../../../_images/math/bf31fd4198da89cf275d011551e51296f3a25d00.png" alt="\Delta\phi"/> can further be substituted by an -expression of <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> and the current curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> of the vehicle -(see <a class="reference internal" href="#algorithm-lateral-detailed-description-control-heading"><span class="std std-ref">Heading controller</span></a> for that matter):</p> -<div class="math"> -<p><img src="../../../_images/math/9c7d8ba576ddb3e01656bf636a58d5e2382c4788.png" alt="\Delta w = ds \cdot \sin(\arctan(ds \cdot \kappa))"/></p> -</div><p>Under the consideration of small angular changes in one time step, this equation -can be linearized to:</p> -<div class="math"> -<p><img src="../../../_images/math/0544af86fdc3b9b8f5a1fea42686284440f173f8.png" alt="\Delta w = ds^2 \kappa"/></p> -</div><p>The curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> of the vehicle can be substituted by an Ackermann model -(see <a class="reference internal" href="#algorithm-lateral-detailed-description-lateral-dynamics"><span class="std std-ref">here</span></a> for further information about that):</p> -<div class="math"> -<p><img src="../../../_images/math/3745c79b180584a6eeb7a00c99f368fe9d492240.png" alt="\Delta w = \frac{ds^2 \tan(\delta)}{l}"/></p> -</div><p>This equation can also be linearized under the consideration of small angles:</p> -<div class="math"> -<p><img src="../../../_images/math/9b21a89980776281905e30c1175c2214b020c092.png" alt="\Delta w = \frac{ds^2 \cdot \delta}{l}"/></p> -</div><p>The connection to the steering wheel angle <img class="math" src="../../../_images/math/13166f7ebafb0f4497af4a92e7b579190b3f49ed.png" alt="\delta_{h,w}"/> can be applied -by the ratio <img class="math" src="../../../_images/math/bb5c6a531ccc8353d7d7634bf0aa0f50b23f0219.png" alt="i_s"/> of the vehicle’s steering gear:</p> -<div class="math"> -<p><img src="../../../_images/math/6b345baca88677dd399e4879c447a2fdb47b10c4.png" alt="\Delta w = \frac{ds^2 \cdot \delta_{h,w}}{i_s \cdot l}"/></p> -</div><p>This equation can be transformed to a similar form as the controller’s transfer -function above:</p> -<p>The usage of the incremental difference <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> in this equation is problematic, -because the controller amplification becomes dependent on the simulation step -size. Because of this, the absolute change <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> of the longitudinal road -coordinate <img class="math" src="../../../_images/math/106b04b320e75010b1d8029e59244f234f75e6f9.png" alt="s"/> is substituted by the vehicle’s absolute velocity <img class="math" src="../../../_images/math/02d98909b5d6acd6a7ff927d4d42790bdd407d58.png" alt="v"/> as a -simplification, which is the change of travelled distance with respect to time:</p> -<p>To tune the absolute influence of the lateral deviation controller in the -overall control loop, an additional gain factor <img class="math" src="../../../_images/math/ddfbf6a6a84d5e2ff415036fa6eb26813f6cdf8a.png" alt="\text{Gain}_{\Delta w}"/> is -applied to this transfer function, which allows a situation dependent -amplification of the lateral deviation controller by the driver behavior model:</p> -<div class="math"> -<p><img src="../../../_images/math/e5965741d2e47ebcac151ffa85aa7513a872af23.png" alt="\delta_{h,w} = \frac{\text{Gain}_{\Delta w} \cdot i_s \cdot l \cdot \Delta w}{v^2}"/></p> -</div><p>The vehicle parameters <img class="math" src="../../../_images/math/470aa65888a2971c9346e573f12b37ea406b8ec9.png" alt="l"/> and <img class="math" src="../../../_images/math/bb5c6a531ccc8353d7d7634bf0aa0f50b23f0219.png" alt="i_s"/> are received from the module <a class="reference internal" href="../../../advanced_topics/simulator/agent_components.html#parameters-vehicle"><span class="std std-ref">Parameters_Vehicle</span></a>, the vehicle’s -absolute velocity <img class="math" src="../../../_images/math/02d98909b5d6acd6a7ff927d4d42790bdd407d58.png" alt="v"/> is received from the module <a class="reference internal" href="sensor_driver.html#sensor-driver"><span class="std std-ref">Sensor_Driver</span></a>, -and the additional controller gain <img class="math" src="../../../_images/math/ddfbf6a6a84d5e2ff415036fa6eb26813f6cdf8a.png" alt="\text{Gain}_{\Delta w}"/> is received from a -driver behavior model.</p> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../20_components.html" class="btn btn-neutral float-left" title="Component View" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="algorithm_longitudinal.html" class="btn btn-neutral float-right" title="Algorithm_Longitudinal" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Algorithm_Lateral — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../../_static/doctools.js?v=888ff710"></script> + <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../../genindex.html" /> + <link rel="search" title="Search" href="../../../search.html" /> + <link rel="next" title="Algorithm_Longitudinal" href="algorithm_longitudinal.html" /> + <link rel="prev" title="Component View" href="../20_components.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../../index.html" class="icon icon-home"> + openPASS + <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> +<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> +<li class="toctree-l4 current"><a class="current reference internal" href="#">Algorithm_Lateral</a></li> +<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> +<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> +<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> +<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> + <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> + <li class="breadcrumb-item active">Algorithm_Lateral</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../../_sources/user_guide/sim_user_guide/components/algorithm_lateral.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="algorithm-lateral"> +<span id="id1"></span><h1>Algorithm_Lateral<a class="headerlink" href="#algorithm-lateral" title="Link to this heading">ïƒ</a></h1> +<p>This module is responsible for the control of the vehicle’s lateral behavior. +It converts the lateral input of the driver module into a steering wheel angle. +The steering wheel angle can then be forwarded to a vehicle dynamics +module like <a class="reference internal" href="dynamics_regular_driving.html#dynamics-regular-driving"><span class="std std-ref">Dynamics_RegularDriving</span></a>.</p> +<section id="detailed-description-of-the-module-s-features"> +<span id="algorithm-lateral-detailed-description"></span><h2>Detailed description of the module’s features<a class="headerlink" href="#detailed-description-of-the-module-s-features" title="Link to this heading">ïƒ</a></h2> +<p>Algorithm_Lateral receives its command variables from a driver behavior model (or an ADAS) +and generates the steering wheel angle of the driver to match these command +variables. The steering wheel angle parts of all controllers are summed up to +the overall steering wheel angle of the driver, which is then sent to a vehicle +dynamics module like <a class="reference internal" href="dynamics_regular_driving.html#dynamics-regular-driving"><span class="std std-ref">Dynamics_RegularDriving</span></a>. +The control loop is closed by the movement of the vehicle in the world, which is +again monitored by the driver behavior model. This overall control loop of +vehicle lateral guidance involving Algorithm_Lateral is illustrated in the following image with the following variables:</p> +<ul class="simple"> +<li><p><img class="math" src="../../../_images/math/6518029864d4abe20f5624f84c2a3fb5395f5818.png" alt="\kappa_{act}"/> is the actual curvature of the vehicle</p></li> +</ul> +<p>Four variables containing the information needed for the open-loop controller:</p> +<ul class="simple"> +<li><p><img class="math" src="../../../_images/math/8ce6de673fb0a26f7371d24364b5f17956e817a3.png" alt="\kappa_{road}"/> is the curvature at the front center (i.e. center of the front of the bounding box) of the ego vehicle. It uses the vectors:</p></li> +<li><p><img class="math" src="../../../_images/math/585c10b7760635a294104d6bd75b446fa33f7520.png" alt="\kappa_{segment,near}"/> containing the curvatures of several segments starting at the front center up to 2m in front of the vehicles leading edge</p></li> +<li><p><img class="math" src="../../../_images/math/168469930df4357c57d598d42925d3e75db7cc85.png" alt="\kappa_{segment,far}"/> containing the curvatures of several segments starting 2m in front of the vehicle and ending 8m in front of it</p></li> +<li><p><img class="math" src="../../../_images/math/7fc672839ad28bec4b6ad1b6ad9bbb10d1b2e587.png" alt="\kappa_{manoeuvre}"/> containing the curvature of the planned trajectory relative to the road</p></li> +</ul> +<p>Other variables:</p> +<ul class="simple"> +<li><p><img class="math" src="../../../_images/math/a87531a368534c59bdc44fbd82f53e9967bebf35.png" alt="w_{act}"/> is the actual lateral position of the vehicle in the road coordinate system</p></li> +<li><p><img class="math" src="../../../_images/math/6450616b75212cb568e905db49efd0c3dd584648.png" alt="\Delta"/> w is the lateral deviation</p></li> +<li><p><img class="math" src="../../../_images/math/c3718c9d15cbad369164f65b0083453db6089390.png" alt="\phi_{act}"/> is the actual heading angle of the vehicle in the road coordinate system</p></li> +<li><p><img class="math" src="../../../_images/math/6450616b75212cb568e905db49efd0c3dd584648.png" alt="\Delta"/><img class="math" src="../../../_images/math/fffd2357ee88a9c50ba9e831ed64c39c73d54a07.png" alt="\phi"/> is the heading error</p></li> +<li><p><img class="math" src="../../../_images/math/a7af2094ee9c485678dd97bfa42a308fb4ad0292.png" alt="\delta_{h,\kappa}"/> is the steering wheel angle from the curvature controller</p></li> +<li><p><img class="math" src="../../../_images/math/13166f7ebafb0f4497af4a92e7b579190b3f49ed.png" alt="\delta_{h,w}"/> is the steering wheel angle from the lateral deviation controller</p></li> +<li><p><img class="math" src="../../../_images/math/34b6c151daffc3c434e429cf7780d55e2c7b7524.png" alt="\delta_{h,\phi}"/> is the steering wheel angle from the heading error controller</p></li> +<li><p><img class="math" src="../../../_images/math/0e4c7fe45a4aa57ff07fcd90cc3e144dad9bb183.png" alt="\delta_h"/> is the overall steering wheel angle of the driver</p></li> +</ul> +<figure class="align-default" id="id2"> +<span id="image-lateralcontrollersignalflow"></span><img alt="Components and signal flow of the lateral guidance control loop" src="../../../_images/LateralControllerSignalFlow.png" /> +<figcaption> +<p><span class="caption-text">Components and signal flow of the lateral guidance control loop</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>The following subsections describe the theoretical background and the transfer +functions of the different controllers.</p> +<section id="lateral-dynamics"> +<span id="algorithm-lateral-detailed-description-lateral-dynamics"></span><h3>Lateral dynamics<a class="headerlink" href="#lateral-dynamics" title="Link to this heading">ïƒ</a></h3> +<p>The lateral dynamics model is based on the Ackermann model which is a simple geometric +expression for the relationship between the steering angle at the front wheels and +the curvature the vehicle produces from it. It has several simplifications, where +the most notable is the reduction of the wheels of one axle to a single surrogate +wheel. This is suitable under the consideration that the steering angles of the front +wheels are rather small and do not differ much between the left and the right +front wheel. The first simplification may not hold up in city traffic with high +curvatures. Therefore the closed-loop-controller must have increased gains in +these situations. <img class="math" src="../../../_images/math/8ce6de673fb0a26f7371d24364b5f17956e817a3.png" alt="\kappa_{road}"/>, <img class="math" src="../../../_images/math/585c10b7760635a294104d6bd75b446fa33f7520.png" alt="\kappa_{segment,near}"/> and <img class="math" src="../../../_images/math/168469930df4357c57d598d42925d3e75db7cc85.png" alt="\kappa_{segment,far}"/> are smoothed and weighted before adding <img class="math" src="../../../_images/math/7fc672839ad28bec4b6ad1b6ad9bbb10d1b2e587.png" alt="\kappa_{manoeuvre}"/> to form <img class="math" src="../../../_images/math/66aaf332fffda2edd545312fae414f1008ac96e7.png" alt="\kappa_{target}"/>.</p> +<p>The Ackermann model is illustrated in the following image with the following variables:</p> +<ul class="simple"> +<li><p><img class="math" src="../../../_images/math/470aa65888a2971c9346e573f12b37ea406b8ec9.png" alt="l"/> is the wheelbase of the vehicle</p></li> +<li><p><img class="math" src="../../../_images/math/652b9d8b65c10aed0fdcdbde47396c879ed5bd33.png" alt="\delta"/> is the surrogate steering angle at the front wheels towards the vehicle’s longitudinal axis</p></li> +<li><p><img class="math" src="../../../_images/math/4abba779877abb276b98ccb2b4ba9bf2e41947ab.png" alt="M"/> is the instantaneous centre of rotation, around which the vehicle is driving on a curve</p></li> +<li><p><img class="math" src="../../../_images/math/79a3d439d28652c547386f39b555d90d3aaf102d.png" alt="r"/> is the radius of the curve, which the vehicle is driving around M</p></li> +<li><p><img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> is the curvature of this curve, which is simply the inverse of r</p></li> +</ul> +<figure class="align-default" id="id3"> +<span id="image-ackermannmodel"></span><img alt="Illustration of the Ackermann model" src="../../../_images/AckermannModel.svg" /><figcaption> +<p><span class="caption-text">Illustration of the Ackermann model</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>In accordance to the current definitions of <a class="reference internal" href="../../../advanced_topics/simulator/coordinate_systems.html#coordinatesystems"><span class="std std-ref">coordinate systems</span></a>, +the coordinate reference point of the vehicle is considered to be the rear axle center. +Therefore, the curvature of the vehicle is also expressed towards the rear axle center +and not to the centre of gravity, which is why the centre of gravity is not +depicted in illustration of the Ackermann model.</p> +<p>The equation derived from the Ackermann model states the following +relation between the surrogate steering angle <img class="math" src="../../../_images/math/652b9d8b65c10aed0fdcdbde47396c879ed5bd33.png" alt="\delta"/> of the front wheels and +the curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> described by the rear axle around the instantaneous +centre of rotation <img class="math" src="../../../_images/math/4abba779877abb276b98ccb2b4ba9bf2e41947ab.png" alt="M"/>:</p> +<div class="math"> +<p><img src="../../../_images/math/74f92e086f237d26ce895805a75a3794a20ea231.png" alt="\kappa = \frac{\tan(\delta)}{l}"/></p> +</div><p>This equation can be inverted to express a required steering angle <img class="math" src="../../../_images/math/652b9d8b65c10aed0fdcdbde47396c879ed5bd33.png" alt="\delta"/> to +adjust a specific curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/>:</p> +<div class="math"> +<p><img src="../../../_images/math/904ab3c787fc37ec90b00ea39276b005b3e68bb5.png" alt="\delta = \arctan(\kappa \cdot l)"/></p> +</div><p>To convert this into the required steering wheel angle <img class="math" src="../../../_images/math/a7af2094ee9c485678dd97bfa42a308fb4ad0292.png" alt="\delta_{h,\kappa}"/>, +the ratio <img class="math" src="../../../_images/math/bb5c6a531ccc8353d7d7634bf0aa0f50b23f0219.png" alt="i_s"/> of the steering gear must be applied:</p> +<div class="math"> +<p><img src="../../../_images/math/14b20bf4e45cb8ae2ffce20e998b6a3ca46e840a.png" alt="\delta_{h, \kappa} = i_{s} \cdot \arctan(\kappa \cdot l)"/></p> +</div><p>The vehicle parameters <img class="math" src="../../../_images/math/470aa65888a2971c9346e573f12b37ea406b8ec9.png" alt="l"/> and <img class="math" src="../../../_images/math/bb5c6a531ccc8353d7d7634bf0aa0f50b23f0219.png" alt="i_s"/> are received from the module <a class="reference internal" href="../../../advanced_topics/simulator/agent_components.html#parameters-vehicle"><span class="std std-ref">Parameters_Vehicle</span></a>.</p> +</section> +<section id="heading-controller"> +<span id="algorithm-lateral-detailed-description-control-heading"></span><h3>Heading controller<a class="headerlink" href="#heading-controller" title="Link to this heading">ïƒ</a></h3> +<p>The heading controller is designed as a simple proportional controller. +The general transfer function of a P-controller with the input signal heading +error <img class="math" src="../../../_images/math/bf31fd4198da89cf275d011551e51296f3a25d00.png" alt="\Delta\phi"/> and the output signal steering wheel angle <img class="math" src="../../../_images/math/34b6c151daffc3c434e429cf7780d55e2c7b7524.png" alt="\delta_{h,\phi}"/> +is described as:</p> +<div class="math"> +<p><img src="../../../_images/math/cf5d091b6daa2ea077ca19f44565e74767adda6e.png" alt="\delta_{h, \phi} = P_{\phi} \cdot \Delta\phi"/></p> +</div><p>The controller amplification <img class="math" src="../../../_images/math/a82e01dd8bc821dfd613dc692b08dea66c30cc61.png" alt="P_\phi"/> is therefore described as the +ratio between input signal and output signal:</p> +<div class="math"> +<p><img src="../../../_images/math/588e3c29e58ff6acec4d2f476bba2e3cf19cc6d1.png" alt="P_{\phi} = \frac{\delta_{h,\phi}}{\Delta\phi}"/></p> +</div><p>The controller amplification <img class="math" src="../../../_images/math/a82e01dd8bc821dfd613dc692b08dea66c30cc61.png" alt="P_\phi"/> therefore expresses, how many +degrees of steering wheel angle are generated by one degree heading error. +The design of this controller amplification <img class="math" src="../../../_images/math/a82e01dd8bc821dfd613dc692b08dea66c30cc61.png" alt="P_\phi"/> uses some +considerations about plane driving kinematics of Kramer. First of all, +the heading error <img class="math" src="../../../_images/math/bf31fd4198da89cf275d011551e51296f3a25d00.png" alt="\Delta\phi"/> is derived from the current curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> +of the vehicle over the change of distance <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> along the road’s longitudinal +coordinate <img class="math" src="../../../_images/math/106b04b320e75010b1d8029e59244f234f75e6f9.png" alt="s"/> in one time step:</p> +<div class="math"> +<p><img src="../../../_images/math/1a04e3412abf6eed6165fce1b7d460421afa185e.png" alt="\Delta\phi = \arctan(ds \cdot \kappa)"/></p> +</div><p>Under the consideration of small angular changes in one time step, this equation +can be linearized to:</p> +<div class="math"> +<p><img src="../../../_images/math/2d48e4c353f1c41600a444603df02ebd159cfff1.png" alt="\Delta\phi = ds \cdot \kappa"/></p> +</div><p>The curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> of the vehicle can be substituted by an Ackermann model +(see <a class="reference internal" href="#algorithm-lateral-detailed-description-lateral-dynamics"><span class="std std-ref">here</span></a> for further information about that):</p> +<div class="math"> +<p><img src="../../../_images/math/856869e75917b044aa8e0e982f4414465cfa0f22.png" alt="\Delta\phi = \frac{ds \cdot \tan(\delta)}{l}"/></p> +</div><p>This equation can also be linearized under the consideration of small angles:</p> +<div class="math"> +<p><img src="../../../_images/math/725343a4b4a6b031052db49cb018677a66c5e25e.png" alt="\Delta\phi = \frac{ds \cdot \delta} {l}"/></p> +</div><p>The connection to the steering wheel angle <img class="math" src="../../../_images/math/34b6c151daffc3c434e429cf7780d55e2c7b7524.png" alt="\delta_{h,\phi}"/> can be +applied by the ratio <img class="math" src="../../../_images/math/bb5c6a531ccc8353d7d7634bf0aa0f50b23f0219.png" alt="i_s"/> of the vehicle’s steering gear:</p> +<div class="math"> +<p><img src="../../../_images/math/1dcaca69c0023651d4af1872cdaa4941ebafe8a0.png" alt="\Delta\phi = \frac{ds \cdot \delta_{h,\phi}}{i_s \cdot l}"/></p> +</div><p>This equation can be transformed to a similar form as the controller’s transfer +function above:</p> +<div class="math"> +<p><img src="../../../_images/math/e49e1b153e930b69af4898fad5114387416a72ab.png" alt="\frac{i_s \cdot l}{ds} = \frac{\delta_{h,\phi}}{\Delta\phi}"/></p> +</div><p>The usage of the incremental difference <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> in this equation is problematic, +because the controller amplification becomes dependent on the simulation step +size. Because of this, the absolute change <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> of the longitudinal road +coordinate <img class="math" src="../../../_images/math/106b04b320e75010b1d8029e59244f234f75e6f9.png" alt="s"/> is substituted by the vehicle’s absolute velocity <img class="math" src="../../../_images/math/02d98909b5d6acd6a7ff927d4d42790bdd407d58.png" alt="v"/> as a +simplification, which is the change of travelled distance with respect to time:</p> +<div class="math"> +<p><img src="../../../_images/math/0d84fa1cff0096a1b50c9bcbbc29f1e2019ed503.png" alt="\frac{i_s \cdot l}{v} = \frac{\delta_{h,\phi}}{\Delta\phi}"/></p> +</div><p>To tune the absolute influence of the heading controller in the overall control +loop, an additional gain factor <img class="math" src="../../../_images/math/b2190f7743a598eb45240597d6fda86d9da74190.png" alt="\text{Gain}_{\Delta\phi}"/> is applied to this +transfer function, which allows a situation dependent amplification of the +heading controller by the driver behavior model:</p> +<div class="math"> +<p><img src="../../../_images/math/489c522ced5a8dbad18b3b7964d5cd24d9742a91.png" alt="\delta_{h,\phi} = \frac{\text{Gain}_{\Delta\phi} \cdot i_s \cdot l \cdot \Delta\phi}{v}"/></p> +</div><p>The vehicle parameters <img class="math" src="../../../_images/math/470aa65888a2971c9346e573f12b37ea406b8ec9.png" alt="l"/> and <img class="math" src="../../../_images/math/bb5c6a531ccc8353d7d7634bf0aa0f50b23f0219.png" alt="i_s"/> are received from the module <a class="reference internal" href="../../../advanced_topics/simulator/agent_components.html#parameters-vehicle"><span class="std std-ref">Parameters_Vehicle</span></a>, the vehicle’s +absolute velocity <img class="math" src="../../../_images/math/02d98909b5d6acd6a7ff927d4d42790bdd407d58.png" alt="v"/> is received from the module <a class="reference internal" href="sensor_driver.html#sensor-driver"><span class="std std-ref">Sensor_Driver</span></a>, +and the additional controller gain <img class="math" src="../../../_images/math/b2190f7743a598eb45240597d6fda86d9da74190.png" alt="\text{Gain}_{\Delta\phi}"/> is received from +a driver behavior model.</p> +</section> +<section id="lateral-deviation-controller"> +<span id="algorithm-lateral-detailed-description-control-deviation"></span><h3>Lateral deviation controller<a class="headerlink" href="#lateral-deviation-controller" title="Link to this heading">ïƒ</a></h3> +<p>The lateral deviation controller is designed as a simple proportional controller. The general transfer +function of a P-controller with the input signal lateral deviation <img class="math" src="../../../_images/math/6450616b75212cb568e905db49efd0c3dd584648.png" alt="\Delta"/> w and +the output signal steering wheel angle <img class="math" src="../../../_images/math/13166f7ebafb0f4497af4a92e7b579190b3f49ed.png" alt="\delta_{h,w}"/> is described as:</p> +<div class="math"> +<p><img src="../../../_images/math/86eaaff22e13f4174c0d4d1f3736ec90803361f4.png" alt="\delta_{h,w} = P_w \cdot \Delta w"/></p> +</div><p>The controller amplification <img class="math" src="../../../_images/math/484e7616c268495d07025ea1cf4ebb24171e77c7.png" alt="P_w"/> is therefore described as the ratio +between input signal and output signal:</p> +<div class="math"> +<p><img src="../../../_images/math/21a69a1aceb85e2ee86e1036e83dec988ff98402.png" alt="P_w = \frac{\delta_{h,w}}{\Delta w}"/></p> +</div><p>The controller amplification <img class="math" src="../../../_images/math/484e7616c268495d07025ea1cf4ebb24171e77c7.png" alt="P_w"/> therefore expresses, how many degrees +of steering wheel angle are generated by one metre of lateral deviation. The +design of this controller amplification <img class="math" src="../../../_images/math/484e7616c268495d07025ea1cf4ebb24171e77c7.png" alt="P_w"/> uses some considerations +about plane driving kinematics of Kramer. First of all, the lateral deviation +<img class="math" src="../../../_images/math/6450616b75212cb568e905db49efd0c3dd584648.png" alt="\Delta"/> w is derived from the current heading error <img class="math" src="../../../_images/math/bf31fd4198da89cf275d011551e51296f3a25d00.png" alt="\Delta\phi"/> over the change +of distance <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> along the road’s longitudinal coordinate <img class="math" src="../../../_images/math/106b04b320e75010b1d8029e59244f234f75e6f9.png" alt="s"/> in one time step:</p> +<div class="math"> +<p><img src="../../../_images/math/d4190ba7429fdd1c6cf50299b566af22c8ed672f.png" alt="\Delta w = ds \cdot \sin(\Delta\phi)"/></p> +</div><p>The current heading error <img class="math" src="../../../_images/math/bf31fd4198da89cf275d011551e51296f3a25d00.png" alt="\Delta\phi"/> can further be substituted by an +expression of <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> and the current curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> of the vehicle +(see <a class="reference internal" href="#algorithm-lateral-detailed-description-control-heading"><span class="std std-ref">Heading controller</span></a> for that matter):</p> +<div class="math"> +<p><img src="../../../_images/math/9c7d8ba576ddb3e01656bf636a58d5e2382c4788.png" alt="\Delta w = ds \cdot \sin(\arctan(ds \cdot \kappa))"/></p> +</div><p>Under the consideration of small angular changes in one time step, this equation +can be linearized to:</p> +<div class="math"> +<p><img src="../../../_images/math/0544af86fdc3b9b8f5a1fea42686284440f173f8.png" alt="\Delta w = ds^2 \kappa"/></p> +</div><p>The curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> of the vehicle can be substituted by an Ackermann model +(see <a class="reference internal" href="#algorithm-lateral-detailed-description-lateral-dynamics"><span class="std std-ref">here</span></a> for further information about that):</p> +<div class="math"> +<p><img src="../../../_images/math/3745c79b180584a6eeb7a00c99f368fe9d492240.png" alt="\Delta w = \frac{ds^2 \tan(\delta)}{l}"/></p> +</div><p>This equation can also be linearized under the consideration of small angles:</p> +<div class="math"> +<p><img src="../../../_images/math/9b21a89980776281905e30c1175c2214b020c092.png" alt="\Delta w = \frac{ds^2 \cdot \delta}{l}"/></p> +</div><p>The connection to the steering wheel angle <img class="math" src="../../../_images/math/13166f7ebafb0f4497af4a92e7b579190b3f49ed.png" alt="\delta_{h,w}"/> can be applied +by the ratio <img class="math" src="../../../_images/math/bb5c6a531ccc8353d7d7634bf0aa0f50b23f0219.png" alt="i_s"/> of the vehicle’s steering gear:</p> +<div class="math"> +<p><img src="../../../_images/math/6b345baca88677dd399e4879c447a2fdb47b10c4.png" alt="\Delta w = \frac{ds^2 \cdot \delta_{h,w}}{i_s \cdot l}"/></p> +</div><p>This equation can be transformed to a similar form as the controller’s transfer +function above:</p> +<p>The usage of the incremental difference <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> in this equation is problematic, +because the controller amplification becomes dependent on the simulation step +size. Because of this, the absolute change <img class="math" src="../../../_images/math/f5b7a2e0152ed016dacfb6dcb49e6385dd2c3777.png" alt="ds"/> of the longitudinal road +coordinate <img class="math" src="../../../_images/math/106b04b320e75010b1d8029e59244f234f75e6f9.png" alt="s"/> is substituted by the vehicle’s absolute velocity <img class="math" src="../../../_images/math/02d98909b5d6acd6a7ff927d4d42790bdd407d58.png" alt="v"/> as a +simplification, which is the change of travelled distance with respect to time:</p> +<p>To tune the absolute influence of the lateral deviation controller in the +overall control loop, an additional gain factor <img class="math" src="../../../_images/math/ddfbf6a6a84d5e2ff415036fa6eb26813f6cdf8a.png" alt="\text{Gain}_{\Delta w}"/> is +applied to this transfer function, which allows a situation dependent +amplification of the lateral deviation controller by the driver behavior model:</p> +<div class="math"> +<p><img src="../../../_images/math/e5965741d2e47ebcac151ffa85aa7513a872af23.png" alt="\delta_{h,w} = \frac{\text{Gain}_{\Delta w} \cdot i_s \cdot l \cdot \Delta w}{v^2}"/></p> +</div><p>The vehicle parameters <img class="math" src="../../../_images/math/470aa65888a2971c9346e573f12b37ea406b8ec9.png" alt="l"/> and <img class="math" src="../../../_images/math/bb5c6a531ccc8353d7d7634bf0aa0f50b23f0219.png" alt="i_s"/> are received from the module <a class="reference internal" href="../../../advanced_topics/simulator/agent_components.html#parameters-vehicle"><span class="std std-ref">Parameters_Vehicle</span></a>, the vehicle’s +absolute velocity <img class="math" src="../../../_images/math/02d98909b5d6acd6a7ff927d4d42790bdd407d58.png" alt="v"/> is received from the module <a class="reference internal" href="sensor_driver.html#sensor-driver"><span class="std std-ref">Sensor_Driver</span></a>, +and the additional controller gain <img class="math" src="../../../_images/math/ddfbf6a6a84d5e2ff415036fa6eb26813f6cdf8a.png" alt="\text{Gain}_{\Delta w}"/> is received from a +driver behavior model.</p> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../20_components.html" class="btn btn-neutral float-left" title="Component View" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="algorithm_longitudinal.html" class="btn btn-neutral float-right" title="Algorithm_Longitudinal" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/sim_user_guide/components/algorithm_longitudinal.html b/content/html/user_guide/sim_user_guide/components/algorithm_longitudinal.html index 7c0da4b7db098e1bbdfef053efa9ce788b9e47f0..e41a1b92d883b8a0178bead1c158b545f36ced79 100644 --- a/content/html/user_guide/sim_user_guide/components/algorithm_longitudinal.html +++ b/content/html/user_guide/sim_user_guide/components/algorithm_longitudinal.html @@ -1,327 +1,328 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Algorithm_Longitudinal — openPASS Documentation</title> - <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../../_static/doctools.js?v=888ff710"></script> - <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../../genindex.html" /> - <link rel="search" title="Search" href="../../../search.html" /> - <link rel="next" title="Driver" href="driver.html" /> - <link rel="prev" title="Algorithm_Lateral" href="algorithm_lateral.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../../index.html" class="icon icon-home"> - openPASS - <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> -<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> -<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> -<li class="toctree-l4 current"><a class="current reference internal" href="#">Algorithm_Longitudinal</a></li> -<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> -<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> -<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> - <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> - <li class="breadcrumb-item active">Algorithm_Longitudinal</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../../_sources/user_guide/sim_user_guide/components/algorithm_longitudinal.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="algorithm-longitudinal"> -<span id="id1"></span><h1>Algorithm_Longitudinal<a class="headerlink" href="#algorithm-longitudinal" title="Link to this heading">ïƒ</a></h1> -<p>This module is responsible for the control of the vehicle’s longitudinal -behavior. It receives the command variables from a driver behavior model and generates -the accelerator and brake pedal position and the current gear of the driver to match -these command variables. The pedal positions and the gear can then be forwarded -to a vehicle dynamics module like <a class="reference internal" href="dynamics_regular_driving.html#dynamics-regular-driving"><span class="std std-ref">Dynamics_RegularDriving</span></a>. -The actuation of the clutch pedal is currently not simulated by the modul</p> -<section id="detailed-description-of-the-module-s-features"> -<span id="algorithm-longitudinal-detailed-description"></span><h2>Detailed description of the module’s features<a class="headerlink" href="#detailed-description-of-the-module-s-features" title="Link to this heading">ïƒ</a></h2> -<section id="inverted-longitudinal-dynamics-model"> -<span id="algorithm-longitudinal-detailed-description-inverted-dynamics-model"></span><h3>Inverted longitudinal dynamics model<a class="headerlink" href="#inverted-longitudinal-dynamics-model" title="Link to this heading">ïƒ</a></h3> -<p>The inverted longitudinal dynamics model produces <img class="math" src="../../../_images/math/af8179e293741ca9978f806f2baba8f661c1865d.png" alt="act_{olc,stat}"/> -by utilizing an inverted powertrain and brake system model. The powertrain model -and all of its parameters and state variables are illustrated in the following image. -The brake model is not worth illustrating, as it directly applies on the required acceleration -<img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> of the vehicle.</p> -<figure class="align-default" id="id2"> -<span id="image-powertrainmodel1"></span><img alt="Illustration of the powertrain model and its parameters and state variables" src="../../../_images/PowertrainModel.svg" /><figcaption> -<p><span class="caption-text">Illustration of the powertrain model and its parameters and state variables</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>The core element of all calculations in this model is speed and acceleration. -The speed <img class="math" src="../../../_images/math/8a61447e565069614e8fb432e81f2ff844b08063.png" alt="n_{wheel}"/> at the wheels is constraint by the current velocity -<img class="math" src="../../../_images/math/ce393cd126facb28d63240935d17d4978c0fa295.png" alt="v_{act}"/> of the vehicle and the static wheel radius <img class="math" src="../../../_images/math/37e8317b2e01ed1fe34f29869ff8f5d2cdfa78eb.png" alt="r_{stat}"/>:</p> -<div class="math"> -<p><img src="../../../_images/math/07fbf754f6d264e88960c917e63746e1f82110ef.png" alt="n_{wheel} = \frac{v_{act}}{r_{stat}} \cdot \frac{60}{2 \cdot \pi}"/></p> -</div><p>where <img class="math" src="../../../_images/math/8a61447e565069614e8fb432e81f2ff844b08063.png" alt="n_{wheel}"/> is specified in <img class="math" src="../../../_images/math/7cd90d08e6307cd6526157e78bb4f46ad2ca5ccd.png" alt="rpm"/> (revolutions per minute) and <img class="math" src="../../../_images/math/ce393cd126facb28d63240935d17d4978c0fa295.png" alt="v_{act}"/> is -defined in <img class="math" src="../../../_images/math/6e9f69ba3f36fefc20991df9c551e1eabdfa961f.png" alt="m/s"/>, which requires the conversion term at the end of the equation. -As the equation also illustrates, only a simple rolling relation defines the -model and there is no simulation of tire-road-friction and tire slip involved.</p> -<p>The speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> of the engine is constraint by the speed -<img class="math" src="../../../_images/math/8a61447e565069614e8fb432e81f2ff844b08063.png" alt="n_{wheel}"/> of the wheels, the ratio <img class="math" src="../../../_images/math/27e857287a96f2b9a75e247a301de99d8abcbcaf.png" alt="i_{a}"/> of the axle, and the -current ratio <img class="math" src="../../../_images/math/6499be4005808d9b91149ea828b8440f319f93a1.png" alt="i_{g}"/> of the gearbox, depending of the current gear:</p> -<div class="math"> -<p><img src="../../../_images/math/7700d757d51c17aef1dc27e32560284623692b49.png" alt="n_{eng} = n_{wheel} \cdot i_{a} \cdot i_{g}"/></p> -</div><p>The required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> determines the torque <img class="math" src="../../../_images/math/eefe8b4a1faf01734965d041542171e26851e628.png" alt="M_{wheel}"/> -at the wheels, as the overall mass <img class="math" src="../../../_images/math/e9bc7da808d33a16a8347f27a519bd067186aa66.png" alt="m"/> of the vehicle has to be accelerated by -this torque:</p> -<div class="math"> -<p><img src="../../../_images/math/835a82c82af32acf5bcbb56bc80601c2e15815a6.png" alt="M_{wheel} = m \cdot a_{set} \cdot r_{stat}"/></p> -</div><p>As the equation illustrates, no driving resistances other than the inertia of -the vehicle are simulated by this model. The required torque <img class="math" src="../../../_images/math/eefe8b4a1faf01734965d041542171e26851e628.png" alt="M_{wheel}"/> -at the wheels must be generated by the engine, considering the ratios of the -powertrain:</p> -<div class="math"> -<p><img src="../../../_images/math/b43d532306916773705aed23c7a75a82b8b4cf31.png" alt="M_{eng} = \frac{M_{wheel}}{i_{a} \cdot i_{g}}"/></p> -</div><p>As the current speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> of the engine, the required acceleration -<img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> of the vehicle, and the required torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/> of the -engine are known or defined by the above equations, this knowledge can be used -to determine the estimated positions of the accelerator and the brake pedal or -to calculate the optimal gear for the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/>, -if a positive acceleration is needed. For the accelerator pedal and optimal gear -calculation, there is still some missing knowledge about the engine itself. -The relationship between the current engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> and the -possible engine torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/> is determined by a simple engine map, -which is illustrated in the following image:</p> -<figure class="align-default" id="id3"> -<span id="image-enginemap"></span><img alt="Simplified engine map used for the inverted powertrain model" src="../../../_images/EngineMap.svg" /><figcaption> -<p><span class="caption-text">Simplified engine map used for the inverted powertrain model</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>The engine map is defined by two characteristic curves:</p> -<ul class="simple"> -<li><p><img class="math" src="../../../_images/math/ebc09278ad5cb7f72bfa499d1ac0a95d01089631.png" alt="M_{eng,max}"/> defines the maximum torque, which can be produced by the -engine at a specific engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/>. This is directly connected -with the maximum possible actuation of the accelerator pedal.</p></li> -<li><p><img class="math" src="../../../_images/math/a345dfcfdcfce4c8ae281e87138ed7f269d36b88.png" alt="M_{eng,drag}"/> defines the drag torque, which is produced by the engine -at a specific engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/>, if the accelerator pedal is not -actuated at all.</p></li> -</ul> -<p>The two characteristic curves are only defined between the minimum and maximum -possible speed of the engine. As the two characteristic curves are directly -related to a full actuation (<img class="math" src="../../../_images/math/079743da321af5db6b578a3e4b7cbfecc6dd525a.png" alt="act_{olc,stat} = 1"/>) and no actuation -(<img class="math" src="../../../_images/math/5014405170bcc34e4d69801a016cc42d77684a0c.png" alt="act_{olc,stat} = 0"/>) of the accelerator pedal, the estimated pedal -position for the accelerator pedal <img class="math" src="../../../_images/math/af8179e293741ca9978f806f2baba8f661c1865d.png" alt="act_{olc,stat}"/>, which produces the -currently required engine torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/>, can be calculated by linear -interpolation between these two characteristic curves at the current engine -speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/>.</p> -<p>Analogous for the brake pedal position:</p> -<ul class="simple"> -<li><p>The maximum actuation of the brake pedal (<img class="math" src="../../../_images/math/9e8c4d08c11f3f1624eaa41613bfaedd07e86604.png" alt="act_{olc,stat} = -1"/>) is -directly connected with the maximum possible deceleration of the vehicle, which -is simply set to 1G (<img class="math" src="../../../_images/math/2ca7a6569f7c3575a81875a0da7b04ea7dd89990.png" alt="= 9.81 m/s^2"/>).</p></li> -<li><p>No actuation of the brake pedal (<img class="math" src="../../../_images/math/5014405170bcc34e4d69801a016cc42d77684a0c.png" alt="act_{olc,stat} = 0"/>) also produces no -deceleration.</p></li> -</ul> -<p>Between these two possible decelerations, the estimated brake pedal position to -produce the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> is calculated by linear -interpolation.</p> -<p>The logic for the calculation of the static controller output <img class="math" src="../../../_images/math/af8179e293741ca9978f806f2baba8f661c1865d.png" alt="act_{olc,stat}"/>, -utilizing the considerations above, is defined as follows:</p> -<p>If the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> is smaller than zero, it can be -produced by the engine drag torque or the brake system. If the engine drag -torque <img class="math" src="../../../_images/math/a345dfcfdcfce4c8ae281e87138ed7f269d36b88.png" alt="M_{eng,drag}"/> at the current engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> is not -strong enough to meet the engine torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/>, which would be -necessary to produce <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/>, an <strong>additional</strong> actuation of the brake -pedal is applied (the driver does not open the clutch, so the engine drag torque -is also applied to the wheels). This mechanism is not considering a change in -gears, but uses the current gear of the gearbox (the driver does not consider to -shift down for a stronger effect of the engine drag torque).</p> -<p>If the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> is greater than or equal to zero, -it can only be produced by the powertrain. First of all, the optimal gear to -produce the engine torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/> required for <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> is -calculated, which is described in <a class="reference internal" href="#algorithm-longitudinal-openloop-optimal-gear"><span class="std std-ref">the subsequent subsection</span></a>. -With this chosen gear, the current engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> is calculated. -<img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> is used to determine the maximum engine torque <img class="math" src="../../../_images/math/ebc09278ad5cb7f72bfa499d1ac0a95d01089631.png" alt="M_{eng,max}"/> -and the engine drag torque <img class="math" src="../../../_images/math/a345dfcfdcfce4c8ae281e87138ed7f269d36b88.png" alt="M_{eng,drag}"/> from the characteristic curves. -As these two values are connected to a full actuation and no actuation of the -accelerator pedal, the estimated accelerator pedal position, which is necessary -to produce the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/>, can be calculated by -linear interpolation.</p> -<p>The state variable <img class="math" src="../../../_images/math/ce393cd126facb28d63240935d17d4978c0fa295.png" alt="v_{act}"/> is received from the module <a class="reference internal" href="sensor_driver.html#sensor-driver"><span class="std std-ref">Sensor_Driver</span></a>, -the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> is received from a driver behavior -model, and the vehicle parameters <img class="math" src="../../../_images/math/e9bc7da808d33a16a8347f27a519bd067186aa66.png" alt="m"/>, <img class="math" src="../../../_images/math/37e8317b2e01ed1fe34f29869ff8f5d2cdfa78eb.png" alt="r_{stat}"/>, <img class="math" src="../../../_images/math/27e857287a96f2b9a75e247a301de99d8abcbcaf.png" alt="i_{a}"/>, <img class="math" src="../../../_images/math/6499be4005808d9b91149ea828b8440f319f93a1.png" alt="i_{g}"/> per gear, -and the information about the engine map are received from the module <a class="reference internal" href="../../../advanced_topics/simulator/agent_components.html#parameters-vehicle"><span class="std std-ref">Parameters_Vehicle</span></a>.</p> -<p>The calculations above are done in the function CalculatePedalPositions, which is called in -the function CalculatePedalPositionAndGear of Algorithm_Longitudinal.</p> -</section> -<section id="algorithm-for-optimal-gear-determination"> -<span id="algorithm-longitudinal-openloop-optimal-gear"></span><h3>Algorithm for optimal gear determination<a class="headerlink" href="#algorithm-for-optimal-gear-determination" title="Link to this heading">ïƒ</a></h3> -<p>The algorithm for the determination of the optimal gear for the required -acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> is implemented in the function CalculateGearAndEngineSpeed. -It is called within the function CalculatePedalPositionAndGear of Algorithm_Longitudinal, -which applies the <a class="reference internal" href="#algorithm-longitudinal-detailed-description-inverted-dynamics-model"><span class="std std-ref">inverted longitudinal dynamics model</span></a>. -The algorithm receives the current velocity <img class="math" src="../../../_images/math/ce393cd126facb28d63240935d17d4978c0fa295.png" alt="v_{act}"/> of the vehicle and the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/>.</p> -<p>Within a for-loop over all gears, the engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> is calculated -for each gear, which would result from the current velocity <img class="math" src="../../../_images/math/ce393cd126facb28d63240935d17d4978c0fa295.png" alt="v_{act}"/>, -as well as the maximum engine torque <img class="math" src="../../../_images/math/ebc09278ad5cb7f72bfa499d1ac0a95d01089631.png" alt="M_{eng,max}"/> and the engine drag -torque <img class="math" src="../../../_images/math/a345dfcfdcfce4c8ae281e87138ed7f269d36b88.png" alt="M_{eng,drag}"/> resulting from these engine speeds. Violating the -minimum engine speed <img class="math" src="../../../_images/math/d84bc4f13818666efe972485ffa26ce9163877a0.png" alt="n_{eng,min}"/> and the maximum engine speed <img class="math" src="../../../_images/math/de3b7384cfeaffe57a5f76636b9bb260f64cc2ad.png" alt="n_{eng,max}"/> -is not considered in this step (resulting engine speeds are written as they result -from the powertrain calculation and the engine torques are set to the lower or -upper limits of the characteristic curves respectively, if the engine speed -range is violated).</p> -<p>The results above are further processed in a second for-loop over all gears. -The following aspects are checked to determine, if a gear fits the current -required state:</p> -<ul class="simple"> -<li><p>Is the resulting engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> within the range of <img class="math" src="../../../_images/math/d84bc4f13818666efe972485ffa26ce9163877a0.png" alt="n_{eng,min}"/> -and <img class="math" src="../../../_images/math/de3b7384cfeaffe57a5f76636b9bb260f64cc2ad.png" alt="n_{eng,max}"/>?</p></li> -<li><p>Is the resulting engine torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/> to produce the required -acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> within the range of <img class="math" src="../../../_images/math/a345dfcfdcfce4c8ae281e87138ed7f269d36b88.png" alt="M_{eng,drag}"/> and <img class="math" src="../../../_images/math/ebc09278ad5cb7f72bfa499d1ac0a95d01089631.png" alt="M_{eng,max}"/>?</p></li> -</ul> -<p>The lowest gear that fits these criteria sets a Boolean foundGear true and the -results (gear number and resulting engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/>) are written in -the result vector. This is done for all further gears, until a gear does not fit -the requirements anymore. This initiates the return of the last sufficient gear -and its resulting engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/>. A short example should -illustrate this logic:</p> -<ol class="arabic simple"> -<li><p>The 2nd gear activates the Boolean foundGear, because <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> does -not exceed <img class="math" src="../../../_images/math/de3b7384cfeaffe57a5f76636b9bb260f64cc2ad.png" alt="n_{eng,max}"/> anymore</p></li> -<li><p>The 4th gear activates the return of the results, because the required engine -torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/> would exceed the maximum possible engine torque <img class="math" src="../../../_images/math/ebc09278ad5cb7f72bfa499d1ac0a95d01089631.png" alt="M_{eng,max}"/> -at the corresponding engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/></p></li> -<li><p>The algorithm chooses the 3rd gear as optimum and returns it and its -corresponding engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/></p></li> -</ol> -<p>This logic therefore guarantees, that always the highest possible gear is chosen -by the driver.</p> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="algorithm_lateral.html" class="btn btn-neutral float-left" title="Algorithm_Lateral" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="driver.html" class="btn btn-neutral float-right" title="Driver" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Algorithm_Longitudinal — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../../_static/doctools.js?v=888ff710"></script> + <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../../genindex.html" /> + <link rel="search" title="Search" href="../../../search.html" /> + <link rel="next" title="Driver" href="driver.html" /> + <link rel="prev" title="Algorithm_Lateral" href="algorithm_lateral.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../../index.html" class="icon icon-home"> + openPASS + <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> +<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> +<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> +<li class="toctree-l4 current"><a class="current reference internal" href="#">Algorithm_Longitudinal</a></li> +<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> +<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> +<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> + <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> + <li class="breadcrumb-item active">Algorithm_Longitudinal</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../../_sources/user_guide/sim_user_guide/components/algorithm_longitudinal.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="algorithm-longitudinal"> +<span id="id1"></span><h1>Algorithm_Longitudinal<a class="headerlink" href="#algorithm-longitudinal" title="Link to this heading">ïƒ</a></h1> +<p>This module is responsible for the control of the vehicle’s longitudinal +behavior. It receives the command variables from a driver behavior model and generates +the accelerator and brake pedal position and the current gear of the driver to match +these command variables. The pedal positions and the gear can then be forwarded +to a vehicle dynamics module like <a class="reference internal" href="dynamics_regular_driving.html#dynamics-regular-driving"><span class="std std-ref">Dynamics_RegularDriving</span></a>. +The actuation of the clutch pedal is currently not simulated by the modul</p> +<section id="detailed-description-of-the-module-s-features"> +<span id="algorithm-longitudinal-detailed-description"></span><h2>Detailed description of the module’s features<a class="headerlink" href="#detailed-description-of-the-module-s-features" title="Link to this heading">ïƒ</a></h2> +<section id="inverted-longitudinal-dynamics-model"> +<span id="algorithm-longitudinal-detailed-description-inverted-dynamics-model"></span><h3>Inverted longitudinal dynamics model<a class="headerlink" href="#inverted-longitudinal-dynamics-model" title="Link to this heading">ïƒ</a></h3> +<p>The inverted longitudinal dynamics model produces <img class="math" src="../../../_images/math/af8179e293741ca9978f806f2baba8f661c1865d.png" alt="act_{olc,stat}"/> +by utilizing an inverted powertrain and brake system model. The powertrain model +and all of its parameters and state variables are illustrated in the following image. +The brake model is not worth illustrating, as it directly applies on the required acceleration +<img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> of the vehicle.</p> +<figure class="align-default" id="id2"> +<span id="image-powertrainmodel1"></span><img alt="Illustration of the powertrain model and its parameters and state variables" src="../../../_images/PowertrainModel.svg" /><figcaption> +<p><span class="caption-text">Illustration of the powertrain model and its parameters and state variables</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>The core element of all calculations in this model is speed and acceleration. +The speed <img class="math" src="../../../_images/math/8a61447e565069614e8fb432e81f2ff844b08063.png" alt="n_{wheel}"/> at the wheels is constraint by the current velocity +<img class="math" src="../../../_images/math/ce393cd126facb28d63240935d17d4978c0fa295.png" alt="v_{act}"/> of the vehicle and the static wheel radius <img class="math" src="../../../_images/math/37e8317b2e01ed1fe34f29869ff8f5d2cdfa78eb.png" alt="r_{stat}"/>:</p> +<div class="math"> +<p><img src="../../../_images/math/07fbf754f6d264e88960c917e63746e1f82110ef.png" alt="n_{wheel} = \frac{v_{act}}{r_{stat}} \cdot \frac{60}{2 \cdot \pi}"/></p> +</div><p>where <img class="math" src="../../../_images/math/8a61447e565069614e8fb432e81f2ff844b08063.png" alt="n_{wheel}"/> is specified in <img class="math" src="../../../_images/math/7cd90d08e6307cd6526157e78bb4f46ad2ca5ccd.png" alt="rpm"/> (revolutions per minute) and <img class="math" src="../../../_images/math/ce393cd126facb28d63240935d17d4978c0fa295.png" alt="v_{act}"/> is +defined in <img class="math" src="../../../_images/math/6e9f69ba3f36fefc20991df9c551e1eabdfa961f.png" alt="m/s"/>, which requires the conversion term at the end of the equation. +As the equation also illustrates, only a simple rolling relation defines the +model and there is no simulation of tire-road-friction and tire slip involved.</p> +<p>The speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> of the engine is constraint by the speed +<img class="math" src="../../../_images/math/8a61447e565069614e8fb432e81f2ff844b08063.png" alt="n_{wheel}"/> of the wheels, the ratio <img class="math" src="../../../_images/math/27e857287a96f2b9a75e247a301de99d8abcbcaf.png" alt="i_{a}"/> of the axle, and the +current ratio <img class="math" src="../../../_images/math/6499be4005808d9b91149ea828b8440f319f93a1.png" alt="i_{g}"/> of the gearbox, depending of the current gear:</p> +<div class="math"> +<p><img src="../../../_images/math/7700d757d51c17aef1dc27e32560284623692b49.png" alt="n_{eng} = n_{wheel} \cdot i_{a} \cdot i_{g}"/></p> +</div><p>The required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> determines the torque <img class="math" src="../../../_images/math/eefe8b4a1faf01734965d041542171e26851e628.png" alt="M_{wheel}"/> +at the wheels, as the overall mass <img class="math" src="../../../_images/math/e9bc7da808d33a16a8347f27a519bd067186aa66.png" alt="m"/> of the vehicle has to be accelerated by +this torque:</p> +<div class="math"> +<p><img src="../../../_images/math/835a82c82af32acf5bcbb56bc80601c2e15815a6.png" alt="M_{wheel} = m \cdot a_{set} \cdot r_{stat}"/></p> +</div><p>As the equation illustrates, no driving resistances other than the inertia of +the vehicle are simulated by this model. The required torque <img class="math" src="../../../_images/math/eefe8b4a1faf01734965d041542171e26851e628.png" alt="M_{wheel}"/> +at the wheels must be generated by the engine, considering the ratios of the +powertrain:</p> +<div class="math"> +<p><img src="../../../_images/math/b43d532306916773705aed23c7a75a82b8b4cf31.png" alt="M_{eng} = \frac{M_{wheel}}{i_{a} \cdot i_{g}}"/></p> +</div><p>As the current speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> of the engine, the required acceleration +<img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> of the vehicle, and the required torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/> of the +engine are known or defined by the above equations, this knowledge can be used +to determine the estimated positions of the accelerator and the brake pedal or +to calculate the optimal gear for the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/>, +if a positive acceleration is needed. For the accelerator pedal and optimal gear +calculation, there is still some missing knowledge about the engine itself. +The relationship between the current engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> and the +possible engine torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/> is determined by a simple engine map, +which is illustrated in the following image:</p> +<figure class="align-default" id="id3"> +<span id="image-enginemap"></span><img alt="Simplified engine map used for the inverted powertrain model" src="../../../_images/EngineMap.svg" /><figcaption> +<p><span class="caption-text">Simplified engine map used for the inverted powertrain model</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>The engine map is defined by two characteristic curves:</p> +<ul class="simple"> +<li><p><img class="math" src="../../../_images/math/ebc09278ad5cb7f72bfa499d1ac0a95d01089631.png" alt="M_{eng,max}"/> defines the maximum torque, which can be produced by the +engine at a specific engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/>. This is directly connected +with the maximum possible actuation of the accelerator pedal.</p></li> +<li><p><img class="math" src="../../../_images/math/a345dfcfdcfce4c8ae281e87138ed7f269d36b88.png" alt="M_{eng,drag}"/> defines the drag torque, which is produced by the engine +at a specific engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/>, if the accelerator pedal is not +actuated at all.</p></li> +</ul> +<p>The two characteristic curves are only defined between the minimum and maximum +possible speed of the engine. As the two characteristic curves are directly +related to a full actuation (<img class="math" src="../../../_images/math/079743da321af5db6b578a3e4b7cbfecc6dd525a.png" alt="act_{olc,stat} = 1"/>) and no actuation +(<img class="math" src="../../../_images/math/5014405170bcc34e4d69801a016cc42d77684a0c.png" alt="act_{olc,stat} = 0"/>) of the accelerator pedal, the estimated pedal +position for the accelerator pedal <img class="math" src="../../../_images/math/af8179e293741ca9978f806f2baba8f661c1865d.png" alt="act_{olc,stat}"/>, which produces the +currently required engine torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/>, can be calculated by linear +interpolation between these two characteristic curves at the current engine +speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/>.</p> +<p>Analogous for the brake pedal position:</p> +<ul class="simple"> +<li><p>The maximum actuation of the brake pedal (<img class="math" src="../../../_images/math/9e8c4d08c11f3f1624eaa41613bfaedd07e86604.png" alt="act_{olc,stat} = -1"/>) is +directly connected with the maximum possible deceleration of the vehicle, which +is simply set to 1G (<img class="math" src="../../../_images/math/2ca7a6569f7c3575a81875a0da7b04ea7dd89990.png" alt="= 9.81 m/s^2"/>).</p></li> +<li><p>No actuation of the brake pedal (<img class="math" src="../../../_images/math/5014405170bcc34e4d69801a016cc42d77684a0c.png" alt="act_{olc,stat} = 0"/>) also produces no +deceleration.</p></li> +</ul> +<p>Between these two possible decelerations, the estimated brake pedal position to +produce the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> is calculated by linear +interpolation.</p> +<p>The logic for the calculation of the static controller output <img class="math" src="../../../_images/math/af8179e293741ca9978f806f2baba8f661c1865d.png" alt="act_{olc,stat}"/>, +utilizing the considerations above, is defined as follows:</p> +<p>If the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> is smaller than zero, it can be +produced by the engine drag torque or the brake system. If the engine drag +torque <img class="math" src="../../../_images/math/a345dfcfdcfce4c8ae281e87138ed7f269d36b88.png" alt="M_{eng,drag}"/> at the current engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> is not +strong enough to meet the engine torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/>, which would be +necessary to produce <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/>, an <strong>additional</strong> actuation of the brake +pedal is applied (the driver does not open the clutch, so the engine drag torque +is also applied to the wheels). This mechanism is not considering a change in +gears, but uses the current gear of the gearbox (the driver does not consider to +shift down for a stronger effect of the engine drag torque).</p> +<p>If the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> is greater than or equal to zero, +it can only be produced by the powertrain. First of all, the optimal gear to +produce the engine torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/> required for <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> is +calculated, which is described in <a class="reference internal" href="#algorithm-longitudinal-openloop-optimal-gear"><span class="std std-ref">the subsequent subsection</span></a>. +With this chosen gear, the current engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> is calculated. +<img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> is used to determine the maximum engine torque <img class="math" src="../../../_images/math/ebc09278ad5cb7f72bfa499d1ac0a95d01089631.png" alt="M_{eng,max}"/> +and the engine drag torque <img class="math" src="../../../_images/math/a345dfcfdcfce4c8ae281e87138ed7f269d36b88.png" alt="M_{eng,drag}"/> from the characteristic curves. +As these two values are connected to a full actuation and no actuation of the +accelerator pedal, the estimated accelerator pedal position, which is necessary +to produce the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/>, can be calculated by +linear interpolation.</p> +<p>The state variable <img class="math" src="../../../_images/math/ce393cd126facb28d63240935d17d4978c0fa295.png" alt="v_{act}"/> is received from the module <a class="reference internal" href="sensor_driver.html#sensor-driver"><span class="std std-ref">Sensor_Driver</span></a>, +the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> is received from a driver behavior +model, and the vehicle parameters <img class="math" src="../../../_images/math/e9bc7da808d33a16a8347f27a519bd067186aa66.png" alt="m"/>, <img class="math" src="../../../_images/math/37e8317b2e01ed1fe34f29869ff8f5d2cdfa78eb.png" alt="r_{stat}"/>, <img class="math" src="../../../_images/math/27e857287a96f2b9a75e247a301de99d8abcbcaf.png" alt="i_{a}"/>, <img class="math" src="../../../_images/math/6499be4005808d9b91149ea828b8440f319f93a1.png" alt="i_{g}"/> per gear, +and the information about the engine map are received from the module <a class="reference internal" href="../../../advanced_topics/simulator/agent_components.html#parameters-vehicle"><span class="std std-ref">Parameters_Vehicle</span></a>.</p> +<p>The calculations above are done in the function CalculatePedalPositions, which is called in +the function CalculatePedalPositionAndGear of Algorithm_Longitudinal.</p> +</section> +<section id="algorithm-for-optimal-gear-determination"> +<span id="algorithm-longitudinal-openloop-optimal-gear"></span><h3>Algorithm for optimal gear determination<a class="headerlink" href="#algorithm-for-optimal-gear-determination" title="Link to this heading">ïƒ</a></h3> +<p>The algorithm for the determination of the optimal gear for the required +acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> is implemented in the function CalculateGearAndEngineSpeed. +It is called within the function CalculatePedalPositionAndGear of Algorithm_Longitudinal, +which applies the <a class="reference internal" href="#algorithm-longitudinal-detailed-description-inverted-dynamics-model"><span class="std std-ref">inverted longitudinal dynamics model</span></a>. +The algorithm receives the current velocity <img class="math" src="../../../_images/math/ce393cd126facb28d63240935d17d4978c0fa295.png" alt="v_{act}"/> of the vehicle and the required acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/>.</p> +<p>Within a for-loop over all gears, the engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> is calculated +for each gear, which would result from the current velocity <img class="math" src="../../../_images/math/ce393cd126facb28d63240935d17d4978c0fa295.png" alt="v_{act}"/>, +as well as the maximum engine torque <img class="math" src="../../../_images/math/ebc09278ad5cb7f72bfa499d1ac0a95d01089631.png" alt="M_{eng,max}"/> and the engine drag +torque <img class="math" src="../../../_images/math/a345dfcfdcfce4c8ae281e87138ed7f269d36b88.png" alt="M_{eng,drag}"/> resulting from these engine speeds. Violating the +minimum engine speed <img class="math" src="../../../_images/math/d84bc4f13818666efe972485ffa26ce9163877a0.png" alt="n_{eng,min}"/> and the maximum engine speed <img class="math" src="../../../_images/math/de3b7384cfeaffe57a5f76636b9bb260f64cc2ad.png" alt="n_{eng,max}"/> +is not considered in this step (resulting engine speeds are written as they result +from the powertrain calculation and the engine torques are set to the lower or +upper limits of the characteristic curves respectively, if the engine speed +range is violated).</p> +<p>The results above are further processed in a second for-loop over all gears. +The following aspects are checked to determine, if a gear fits the current +required state:</p> +<ul class="simple"> +<li><p>Is the resulting engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> within the range of <img class="math" src="../../../_images/math/d84bc4f13818666efe972485ffa26ce9163877a0.png" alt="n_{eng,min}"/> +and <img class="math" src="../../../_images/math/de3b7384cfeaffe57a5f76636b9bb260f64cc2ad.png" alt="n_{eng,max}"/>?</p></li> +<li><p>Is the resulting engine torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/> to produce the required +acceleration <img class="math" src="../../../_images/math/e61db86029a965d003355f05934bacdb7fe5fd45.png" alt="a_{set}"/> within the range of <img class="math" src="../../../_images/math/a345dfcfdcfce4c8ae281e87138ed7f269d36b88.png" alt="M_{eng,drag}"/> and <img class="math" src="../../../_images/math/ebc09278ad5cb7f72bfa499d1ac0a95d01089631.png" alt="M_{eng,max}"/>?</p></li> +</ul> +<p>The lowest gear that fits these criteria sets a Boolean foundGear true and the +results (gear number and resulting engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/>) are written in +the result vector. This is done for all further gears, until a gear does not fit +the requirements anymore. This initiates the return of the last sufficient gear +and its resulting engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/>. A short example should +illustrate this logic:</p> +<ol class="arabic simple"> +<li><p>The 2nd gear activates the Boolean foundGear, because <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> does +not exceed <img class="math" src="../../../_images/math/de3b7384cfeaffe57a5f76636b9bb260f64cc2ad.png" alt="n_{eng,max}"/> anymore</p></li> +<li><p>The 4th gear activates the return of the results, because the required engine +torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/> would exceed the maximum possible engine torque <img class="math" src="../../../_images/math/ebc09278ad5cb7f72bfa499d1ac0a95d01089631.png" alt="M_{eng,max}"/> +at the corresponding engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/></p></li> +<li><p>The algorithm chooses the 3rd gear as optimum and returns it and its +corresponding engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/></p></li> +</ol> +<p>This logic therefore guarantees, that always the highest possible gear is chosen +by the driver.</p> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="algorithm_lateral.html" class="btn btn-neutral float-left" title="Algorithm_Lateral" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="driver.html" class="btn btn-neutral float-right" title="Driver" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/sim_user_guide/components/driver.html b/content/html/user_guide/sim_user_guide/components/driver.html index ab0a00e0eb10520587f26765c15f884c9b1890a3..c84cacde0cc1e65dcdfee708094dcecfb33ceb1c 100644 --- a/content/html/user_guide/sim_user_guide/components/driver.html +++ b/content/html/user_guide/sim_user_guide/components/driver.html @@ -1,289 +1,290 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Driver — openPASS Documentation</title> - <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../../_static/doctools.js?v=888ff710"></script> - <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../../genindex.html" /> - <link rel="search" title="Search" href="../../../search.html" /> - <link rel="next" title="Dynamics_RegularDriving" href="dynamics_regular_driving.html" /> - <link rel="prev" title="Algorithm_Longitudinal" href="algorithm_longitudinal.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../../index.html" class="icon icon-home"> - openPASS - <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> -<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> -<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> -<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> -<li class="toctree-l4 current"><a class="current reference internal" href="#">Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> -<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> -<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> - <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> - <li class="breadcrumb-item active">Driver</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../../_sources/user_guide/sim_user_guide/components/driver.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="driver"> -<span id="components-driver"></span><h1>Driver<a class="headerlink" href="#driver" title="Link to this heading">ïƒ</a></h1> -<section id="algorithmagentfollowingdrivermodel"> -<span id="components-agentfollowingdrivermodel"></span><h2>AlgorithmAgentFollowingDriverModel<a class="headerlink" href="#algorithmagentfollowingdrivermodel" title="Link to this heading">ïƒ</a></h2> -<p>AlgorithmAgentFollowingDriverModel implements a simple driver model for longitudinal and lateral control.</p> -<section id="lateral-control"> -<h3>Lateral control<a class="headerlink" href="#lateral-control" title="Link to this heading">ïƒ</a></h3> -<p>The lateral guidance always keeps the agent in the middle of the lane.</p> -</section> -<section id="longitudinal-control"> -<h3>Longitudinal control<a class="headerlink" href="#longitudinal-control" title="Link to this heading">ïƒ</a></h3> -<p>This driver type works according to the IDM (Intelligent Driver Model) and adapts its velocity to an agent in front and holds -a desired velocity if there’s no front agent available (like adaptive cruise control).</p> -<p>For a simplified version of the model, the Intelligent Driver Model acceleration <img class="math" src="../../../_images/math/d39a46e63ea61f983053165be8919b2d415a242d.png" alt="a_{IDM}"/> is described by the following equation:</p> -<div class="math"> -<p><img src="../../../_images/math/e7f5236ae203153f19fa34af90e8fecae306de35.png" alt="a_{IDM} = a_{max} \cdot (1 - (\frac{v_{vehicle}}{v_{wish}})^\delta - (\frac{s^*(v_{vehicle},\Delta v)}{s_{netDistance}})^2)"/></p> -</div><p>with</p> -<div class="math"> -<p><img src="../../../_images/math/cb62296f4d905147f13ad49d56a01ac1d209ccc6.png" alt="s^*(v_{vehicle},\Delta v) = s_{0} + v_{vehicle} \cdot T + \frac{v_{vehicle} \cdot \Delta v}{2 \cdot \sqrt{a_{max} \cdot b_{max}}}"/></p> -</div><p>The calculation of <img class="math" src="../../../_images/math/bee30f2cce9bda089aca48016006f43c7a1a00ab.png" alt="\Delta v"/> is done by subtracting the absolute velocity <img class="math" src="../../../_images/math/2daa980935ee71285c83c0221af428ae007e42af.png" alt="v_{vehicle}"/> of the own vehicle -from the absolute velocity <img class="math" src="../../../_images/math/bf6a0bfd0f1acb8457a54999f6457d5d55fee769.png" alt="v_{frontAgent}"/> of the front agent:</p> -<div class="math"> -<p><img src="../../../_images/math/9369c8636d522b2acde2dec96ebf91a101a7880b.png" alt="\Delta v = v_{vehicle} - v_{frontAgent}"/></p> -</div><p>The acceleration of the vehicle (Intelligent Driver Model acceleration) can be separated into</p> -<ul class="simple"> -<li><p>free road term:</p></li> -</ul> -<div class="math"> -<p><img src="../../../_images/math/e072f7f8d7e72335c7fa090062c70e71a0842805.png" alt="a_{max} \cdot (1 - (\frac{v_{vehicle}}{v_{wish}})^\delta)"/></p> -</div><ul class="simple"> -<li><p>interaction term:</p></li> -</ul> -<div class="math"> -<p><img src="../../../_images/math/482a97c02ffe95c0dc931990d691426a039c7bd5.png" alt="-a_{max} \cdot (\frac{s^*(v_{vehicle},\Delta v)}{s_{netDistance}})^2 = -a_{max} \cdot (\frac{s_{0} + v_{vehicle} \cdot T}{s_{netDistance}} + \frac{v_{vehicle} \cdot \Delta v}{2 \cdot \sqrt{a_{max} \cdot b_{max}} \cdot s_{netDistance}})^2"/></p> -</div><p><strong>Free road behavior:</strong> On a free road, the distance to the front agent is huge and the vehicle’s acceleration is controlled -by the free road term, which is approximately equal to <img class="math" src="../../../_images/math/0f3e7b8a9870feac7aadcd7385568b5760e49ef8.png" alt="a_{max}"/> for low velocities and vanishes as <img class="math" src="../../../_images/math/2daa980935ee71285c83c0221af428ae007e42af.png" alt="v_{vehicle}"/> approaches <img class="math" src="../../../_images/math/194fe4ed3f8c6105a0b0069bb3e568e610b81732.png" alt="v_{wish}"/>. -There will be some deviation to the actual vehicle velocity, due to the model not being aware of air drag or engine drag (which might be introduced by -subsequent agent components). AlgorithmAgentFollowingDriverModel just controls its velocity wish.</p> -<p><strong>Behavior at high approaching rates</strong>: For large velocity differences, the interaction term is governed by:</p> -<div class="math"> -<p><img src="../../../_images/math/873012ece5b8bcd5e44c0ca3523a67fd31212008.png" alt="-a_{max} \cdot (\frac{v_{vehicle} \cdot \Delta v}{2 \cdot \sqrt{a_{max} \cdot b_{max}} \cdot s_{netDistance}})^2"/></p> -</div><p>This leads to a driving behavior that compensates velocity differences while trying not to brake much harder than the maximum braking deceleration <img class="math" src="../../../_images/math/884d304dc007998a3a56da240fbd29cd58eb85d2.png" alt="b_{max}"/>.</p> -<p><strong>Behavior at small net distances</strong>: For minor velocity differences and small net distances, the interaction term is approximately equal to:</p> -<div class="math"> -<p><img src="../../../_images/math/63239f4bf5f49eb26940e815ce19e13555ba57f8.png" alt="-a_{max} \cdot (\frac{s_{0} + v_{vehicle} \cdot T}{s_{netDistance}})^2"/></p> -</div><p>which resembles a simple repulsive force such that small net distances are quickly enlarged towards an equilibrium net distance.</p> -<p>The following table and the DriverProfile snippet describe a whole DriverProfile. Type “AlgorithmAgentFollowingDriverModel†in -the DriverProfile snippet below determines that this set of parameters is active.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Parameter</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -<th class="head"><p>Defaults to</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>AlgorithmLateralModule</p></td> -<td><p>String</p></td> -<td></td> -<td><p>Behavior model for the steering wheel angle of the driver</p></td> -<td><p>Required value</p></td> -</tr> -<tr class="row-odd"><td><p>AlgorithmLongitudinalModule</p></td> -<td><p>String</p></td> -<td></td> -<td><p>Behavior model for the accelerator, brake pedal position, and the current gear of the driver</p></td> -<td><p>Required value</p></td> -</tr> -<tr class="row-even"><td><p>VelocityWish: <img class="math" src="../../../_images/math/194fe4ed3f8c6105a0b0069bb3e568e610b81732.png" alt="v_{wish}"/></p></td> -<td><p>Double</p></td> -<td><p>m/s</p></td> -<td><p>Desired speed</p></td> -<td><p><abbr title="120 km/h">33.33 m/s</abbr></p></td> -</tr> -<tr class="row-odd"><td><p>Delta: <img class="math" src="../../../_images/math/652b9d8b65c10aed0fdcdbde47396c879ed5bd33.png" alt="\delta"/></p></td> -<td><p>Double</p></td> -<td></td> -<td><p>Free acceleration exponent characterizing how the acceleration decreases with velocity (1: linear, infinity: constant)</p></td> -<td><p>4.0</p></td> -</tr> -<tr class="row-even"><td><p>TGapWish: <img class="math" src="../../../_images/math/e8dea8254118f111b5fb20895b03528c17566f06.png" alt="T"/></p></td> -<td><p>Double</p></td> -<td><p>s</p></td> -<td><p>Desired time gap between ego and front agent</p></td> -<td><p>1.5 s</p></td> -</tr> -<tr class="row-odd"><td><p>MinDistance: <img class="math" src="../../../_images/math/e2afb14df1b591b66c89c9bdec531773fd46a253.png" alt="s_{0}"/></p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Minimum distance between ego and front (used at slow speeds); Also called jam distance</p></td> -<td><p>2.0 m</p></td> -</tr> -<tr class="row-even"><td><p>MaxAcceleration: <img class="math" src="../../../_images/math/0f3e7b8a9870feac7aadcd7385568b5760e49ef8.png" alt="a_{max}"/></p></td> -<td><p>Double</p></td> -<td><p>m/s²</p></td> -<td><p>Maximum acceleration in satisfactory way, not vehicle possible acceleration</p></td> -<td><p>1.4 m/s²</p></td> -</tr> -<tr class="row-odd"><td><p>MaxDeceleration: <img class="math" src="../../../_images/math/884d304dc007998a3a56da240fbd29cd58eb85d2.png" alt="b_{max}"/></p></td> -<td><p>Double</p></td> -<td><p>m/s²</p></td> -<td><p>Desired deceleration</p></td> -<td><p>2.0 m/s²</p></td> -</tr> -</tbody> -</table> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Regular"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Type"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AlgorithmAgentFollowingDriverModel"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"AlgorithmLateralModule"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Algorithm_LateralAfdm"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"AlgorithmLongitudinalModule"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Algorithm_LongitudinalAfdm"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"VelocityWish"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"36.11"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Delta"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"4.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"TGapWish"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1.5"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"MinDistance"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"2.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"MaxAcceleration"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1.4"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"MaxDeceleration"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"2.0"</span><span class="nt">/></span> -<span class="nt"></Profile></span> -</pre></div> -</div> -<p>For further information, please refer to:</p> -<p>Treiber, Martin; Hennecke, Ansgar; Helbing, Dirk (2000), “Congested traffic states in empirical observations and microscopic simulationsâ€, Physical Review E, 62 (2): 1805–1824, <a class="reference external" href="https://arxiv.org/pdf/cond-mat/0002177.pdf">https://arxiv.org/pdf/cond-mat/0002177.pdf</a></p> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="algorithm_longitudinal.html" class="btn btn-neutral float-left" title="Algorithm_Longitudinal" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="dynamics_regular_driving.html" class="btn btn-neutral float-right" title="Dynamics_RegularDriving" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Driver — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../../_static/doctools.js?v=888ff710"></script> + <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../../genindex.html" /> + <link rel="search" title="Search" href="../../../search.html" /> + <link rel="next" title="Dynamics_RegularDriving" href="dynamics_regular_driving.html" /> + <link rel="prev" title="Algorithm_Longitudinal" href="algorithm_longitudinal.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../../index.html" class="icon icon-home"> + openPASS + <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> +<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> +<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> +<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> +<li class="toctree-l4 current"><a class="current reference internal" href="#">Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> +<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> +<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> + <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> + <li class="breadcrumb-item active">Driver</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../../_sources/user_guide/sim_user_guide/components/driver.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="driver"> +<span id="components-driver"></span><h1>Driver<a class="headerlink" href="#driver" title="Link to this heading">ïƒ</a></h1> +<section id="algorithmagentfollowingdrivermodel"> +<span id="components-agentfollowingdrivermodel"></span><h2>AlgorithmAgentFollowingDriverModel<a class="headerlink" href="#algorithmagentfollowingdrivermodel" title="Link to this heading">ïƒ</a></h2> +<p>AlgorithmAgentFollowingDriverModel implements a simple driver model for longitudinal and lateral control.</p> +<section id="lateral-control"> +<h3>Lateral control<a class="headerlink" href="#lateral-control" title="Link to this heading">ïƒ</a></h3> +<p>The lateral guidance always keeps the agent in the middle of the lane.</p> +</section> +<section id="longitudinal-control"> +<h3>Longitudinal control<a class="headerlink" href="#longitudinal-control" title="Link to this heading">ïƒ</a></h3> +<p>This driver type works according to the IDM (Intelligent Driver Model) and adapts its velocity to an agent in front and holds +a desired velocity if there’s no front agent available (like adaptive cruise control).</p> +<p>For a simplified version of the model, the Intelligent Driver Model acceleration <img class="math" src="../../../_images/math/d39a46e63ea61f983053165be8919b2d415a242d.png" alt="a_{IDM}"/> is described by the following equation:</p> +<div class="math"> +<p><img src="../../../_images/math/e7f5236ae203153f19fa34af90e8fecae306de35.png" alt="a_{IDM} = a_{max} \cdot (1 - (\frac{v_{vehicle}}{v_{wish}})^\delta - (\frac{s^*(v_{vehicle},\Delta v)}{s_{netDistance}})^2)"/></p> +</div><p>with</p> +<div class="math"> +<p><img src="../../../_images/math/cb62296f4d905147f13ad49d56a01ac1d209ccc6.png" alt="s^*(v_{vehicle},\Delta v) = s_{0} + v_{vehicle} \cdot T + \frac{v_{vehicle} \cdot \Delta v}{2 \cdot \sqrt{a_{max} \cdot b_{max}}}"/></p> +</div><p>The calculation of <img class="math" src="../../../_images/math/bee30f2cce9bda089aca48016006f43c7a1a00ab.png" alt="\Delta v"/> is done by subtracting the absolute velocity <img class="math" src="../../../_images/math/2daa980935ee71285c83c0221af428ae007e42af.png" alt="v_{vehicle}"/> of the own vehicle +from the absolute velocity <img class="math" src="../../../_images/math/bf6a0bfd0f1acb8457a54999f6457d5d55fee769.png" alt="v_{frontAgent}"/> of the front agent:</p> +<div class="math"> +<p><img src="../../../_images/math/9369c8636d522b2acde2dec96ebf91a101a7880b.png" alt="\Delta v = v_{vehicle} - v_{frontAgent}"/></p> +</div><p>The acceleration of the vehicle (Intelligent Driver Model acceleration) can be separated into</p> +<ul class="simple"> +<li><p>free road term:</p></li> +</ul> +<div class="math"> +<p><img src="../../../_images/math/e072f7f8d7e72335c7fa090062c70e71a0842805.png" alt="a_{max} \cdot (1 - (\frac{v_{vehicle}}{v_{wish}})^\delta)"/></p> +</div><ul class="simple"> +<li><p>interaction term:</p></li> +</ul> +<div class="math"> +<p><img src="../../../_images/math/482a97c02ffe95c0dc931990d691426a039c7bd5.png" alt="-a_{max} \cdot (\frac{s^*(v_{vehicle},\Delta v)}{s_{netDistance}})^2 = -a_{max} \cdot (\frac{s_{0} + v_{vehicle} \cdot T}{s_{netDistance}} + \frac{v_{vehicle} \cdot \Delta v}{2 \cdot \sqrt{a_{max} \cdot b_{max}} \cdot s_{netDistance}})^2"/></p> +</div><p><strong>Free road behavior:</strong> On a free road, the distance to the front agent is huge and the vehicle’s acceleration is controlled +by the free road term, which is approximately equal to <img class="math" src="../../../_images/math/0f3e7b8a9870feac7aadcd7385568b5760e49ef8.png" alt="a_{max}"/> for low velocities and vanishes as <img class="math" src="../../../_images/math/2daa980935ee71285c83c0221af428ae007e42af.png" alt="v_{vehicle}"/> approaches <img class="math" src="../../../_images/math/194fe4ed3f8c6105a0b0069bb3e568e610b81732.png" alt="v_{wish}"/>. +There will be some deviation to the actual vehicle velocity, due to the model not being aware of air drag or engine drag (which might be introduced by +subsequent agent components). AlgorithmAgentFollowingDriverModel just controls its velocity wish.</p> +<p><strong>Behavior at high approaching rates</strong>: For large velocity differences, the interaction term is governed by:</p> +<div class="math"> +<p><img src="../../../_images/math/873012ece5b8bcd5e44c0ca3523a67fd31212008.png" alt="-a_{max} \cdot (\frac{v_{vehicle} \cdot \Delta v}{2 \cdot \sqrt{a_{max} \cdot b_{max}} \cdot s_{netDistance}})^2"/></p> +</div><p>This leads to a driving behavior that compensates velocity differences while trying not to brake much harder than the maximum braking deceleration <img class="math" src="../../../_images/math/884d304dc007998a3a56da240fbd29cd58eb85d2.png" alt="b_{max}"/>.</p> +<p><strong>Behavior at small net distances</strong>: For minor velocity differences and small net distances, the interaction term is approximately equal to:</p> +<div class="math"> +<p><img src="../../../_images/math/63239f4bf5f49eb26940e815ce19e13555ba57f8.png" alt="-a_{max} \cdot (\frac{s_{0} + v_{vehicle} \cdot T}{s_{netDistance}})^2"/></p> +</div><p>which resembles a simple repulsive force such that small net distances are quickly enlarged towards an equilibrium net distance.</p> +<p>The following table and the DriverProfile snippet describe a whole DriverProfile. Type “AlgorithmAgentFollowingDriverModel†in +the DriverProfile snippet below determines that this set of parameters is active.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Parameter</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +<th class="head"><p>Defaults to</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>AlgorithmLateralModule</p></td> +<td><p>String</p></td> +<td></td> +<td><p>Behavior model for the steering wheel angle of the driver</p></td> +<td><p>Required value</p></td> +</tr> +<tr class="row-odd"><td><p>AlgorithmLongitudinalModule</p></td> +<td><p>String</p></td> +<td></td> +<td><p>Behavior model for the accelerator, brake pedal position, and the current gear of the driver</p></td> +<td><p>Required value</p></td> +</tr> +<tr class="row-even"><td><p>VelocityWish: <img class="math" src="../../../_images/math/194fe4ed3f8c6105a0b0069bb3e568e610b81732.png" alt="v_{wish}"/></p></td> +<td><p>Double</p></td> +<td><p>m/s</p></td> +<td><p>Desired speed</p></td> +<td><p><abbr title="120 km/h">33.33 m/s</abbr></p></td> +</tr> +<tr class="row-odd"><td><p>Delta: <img class="math" src="../../../_images/math/652b9d8b65c10aed0fdcdbde47396c879ed5bd33.png" alt="\delta"/></p></td> +<td><p>Double</p></td> +<td></td> +<td><p>Free acceleration exponent characterizing how the acceleration decreases with velocity (1: linear, infinity: constant)</p></td> +<td><p>4.0</p></td> +</tr> +<tr class="row-even"><td><p>TGapWish: <img class="math" src="../../../_images/math/e8dea8254118f111b5fb20895b03528c17566f06.png" alt="T"/></p></td> +<td><p>Double</p></td> +<td><p>s</p></td> +<td><p>Desired time gap between ego and front agent</p></td> +<td><p>1.5 s</p></td> +</tr> +<tr class="row-odd"><td><p>MinDistance: <img class="math" src="../../../_images/math/e2afb14df1b591b66c89c9bdec531773fd46a253.png" alt="s_{0}"/></p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Minimum distance between ego and front (used at slow speeds); Also called jam distance</p></td> +<td><p>2.0 m</p></td> +</tr> +<tr class="row-even"><td><p>MaxAcceleration: <img class="math" src="../../../_images/math/0f3e7b8a9870feac7aadcd7385568b5760e49ef8.png" alt="a_{max}"/></p></td> +<td><p>Double</p></td> +<td><p>m/s²</p></td> +<td><p>Maximum acceleration in satisfactory way, not vehicle possible acceleration</p></td> +<td><p>1.4 m/s²</p></td> +</tr> +<tr class="row-odd"><td><p>MaxDeceleration: <img class="math" src="../../../_images/math/884d304dc007998a3a56da240fbd29cd58eb85d2.png" alt="b_{max}"/></p></td> +<td><p>Double</p></td> +<td><p>m/s²</p></td> +<td><p>Desired deceleration</p></td> +<td><p>2.0 m/s²</p></td> +</tr> +</tbody> +</table> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Regular"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Type"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"AlgorithmAgentFollowingDriverModel"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"AlgorithmLateralModule"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Algorithm_LateralAfdm"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"AlgorithmLongitudinalModule"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"Algorithm_LongitudinalAfdm"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"VelocityWish"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"36.11"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Delta"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"4.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"TGapWish"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1.5"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"MinDistance"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"2.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"MaxAcceleration"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1.4"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"MaxDeceleration"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"2.0"</span><span class="nt">/></span> +<span class="nt"></Profile></span> +</pre></div> +</div> +<p>For further information, please refer to:</p> +<p>Treiber, Martin; Hennecke, Ansgar; Helbing, Dirk (2000), “Congested traffic states in empirical observations and microscopic simulationsâ€, Physical Review E, 62 (2): 1805–1824, <a class="reference external" href="https://arxiv.org/pdf/cond-mat/0002177.pdf">https://arxiv.org/pdf/cond-mat/0002177.pdf</a></p> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="algorithm_longitudinal.html" class="btn btn-neutral float-left" title="Algorithm_Longitudinal" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="dynamics_regular_driving.html" class="btn btn-neutral float-right" title="Dynamics_RegularDriving" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/sim_user_guide/components/dynamics_regular_driving.html b/content/html/user_guide/sim_user_guide/components/dynamics_regular_driving.html index 5cd84d17e460ca0f1227650b42b38fa0cad6aa7b..233f66fbfe4a0548dc1be71dea58371a7e34800b 100644 --- a/content/html/user_guide/sim_user_guide/components/dynamics_regular_driving.html +++ b/content/html/user_guide/sim_user_guide/components/dynamics_regular_driving.html @@ -1,388 +1,389 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Dynamics_RegularDriving — openPASS Documentation</title> - <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../../_static/doctools.js?v=888ff710"></script> - <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../../genindex.html" /> - <link rel="search" title="Search" href="../../../search.html" /> - <link rel="next" title="Dynamics_Scenario" href="dynamics_scenario.html" /> - <link rel="prev" title="Driver" href="driver.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../../index.html" class="icon icon-home"> - openPASS - <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> -<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> -<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> -<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> -<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> -<li class="toctree-l4 current"><a class="current reference internal" href="#">Dynamics_RegularDriving</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> -<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> -<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> - <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> - <li class="breadcrumb-item active">Dynamics_RegularDriving</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../../_sources/user_guide/sim_user_guide/components/dynamics_regular_driving.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="dynamics-regulardriving"> -<span id="dynamics-regular-driving"></span><h1>Dynamics_RegularDriving<a class="headerlink" href="#dynamics-regulardriving" title="Link to this heading">ïƒ</a></h1> -<p>This module is responsible for the vehicle dynamics under normal driving conditions. -It receives a signal from the lateral dynamics module <a class="reference internal" href="algorithm_lateral.html#algorithm-lateral"><span class="std std-ref">Algorithm_Lateral</span></a> containing the steering wheel angle. -Accelerator pedal position, brake pedal position and the currently engaged gear are fetched from the signal sent by the longitudinal dynamics module <a class="reference internal" href="algorithm_longitudinal.html#algorithm-longitudinal"><span class="std std-ref">Algorithm_Longitudinal</span></a>. -The module is using these inputs and the vehicle parameters from <a class="reference internal" href="../../../advanced_topics/simulator/agent_components.html#parameters-vehicle"><span class="std std-ref">Parameters_Vehicle</span></a> to determine the resulting vehicle speed, yaw angle and absolute position in the road coordinate system. -The calculated values are passed on to the simulation framework/WorldObjectInterface.</p> -<section id="overview-of-the-module-s-functionalities"> -<h2>Overview of the module’s functionalities<a class="headerlink" href="#overview-of-the-module-s-functionalities" title="Link to this heading">ïƒ</a></h2> -<section id="longitudinal-dynamics"> -<h3>Longitudinal dynamics<a class="headerlink" href="#longitudinal-dynamics" title="Link to this heading">ïƒ</a></h3> -<p>The core element of all longitudinal calculations in this model are speed and acceleration. To determine the change of speed <img class="math" src="../../../_images/math/bee30f2cce9bda089aca48016006f43c7a1a00ab.png" alt="\Delta v"/> and the vehicles velocity <img class="math" src="../../../_images/math/a4c9a91b43ea371c8bcbd8c0401c992fa26de3d6.png" alt="v_{act_{i}}"/> of the current time step <img class="math" src="../../../_images/math/5aa339d4daf45a810dda332e3c80a0698e526e04.png" alt="i"/> the actual acceleration <img class="math" src="../../../_images/math/7b0abc6d78537d753de9943b9e76fa3301cbb12d.png" alt="a_{act}"/> has to be known.</p> -<p>The module uses a simplified longitudinal dynamics model e.g. it doesn’t factor in rotational inertias.</p> -<p><img class="math" src="../../../_images/math/7b0abc6d78537d753de9943b9e76fa3301cbb12d.png" alt="a_{act}"/> is dependend on the state variables and parameters shown in table 1.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Variable</p></th> -<th class="head"><p>Meaning</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Source</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p><img class="math" src="../../../_images/math/39f561d2298a2b2d3568abd7127f5af5cc75c1d7.png" alt="v_{act_{i-1}}"/></p></td> -<td><p>currently saved velocity of agent</p></td> -<td><p>m/s</p></td> -<td><p>WorldObjectInterface</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/5c9798f1510af6753c9eb7b2c5d58b140b69f161.png" alt="pos_{actuator}"/></p></td> -<td><p>position of accelerator/brake pedal</p></td> -<td></td> -<td><p>Algorithm_Longitudinal</p></td> -</tr> -<tr class="row-even"><td><p><img class="math" src="../../../_images/math/e6de55aefd90417b1eeeeca680f4de59c48f92d2.png" alt="gear"/></p></td> -<td><p>chosen gear</p></td> -<td></td> -<td><p>Algorithm_Longitudinal</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/73c99fa583ee6f327c55a4cab30cf8f2fb882b6d.png" alt="i_{g} (gear)"/></p></td> -<td><p>gear ratio of current gear</p></td> -<td></td> -<td><p>vehicleModelParameters</p></td> -</tr> -<tr class="row-even"><td><p><img class="math" src="../../../_images/math/27e857287a96f2b9a75e247a301de99d8abcbcaf.png" alt="i_{a}"/></p></td> -<td><p>gear ratio of axle</p></td> -<td></td> -<td><p>vehicleModelParameters</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/ebc09278ad5cb7f72bfa499d1ac0a95d01089631.png" alt="M_{eng,max}"/></p></td> -<td><p>maximum torque of the vehicle engine</p></td> -<td><p>Nm</p></td> -<td><p>vehicleModelParameters</p></td> -</tr> -<tr class="row-even"><td><p><img class="math" src="../../../_images/math/de3b7384cfeaffe57a5f76636b9bb260f64cc2ad.png" alt="n_{eng,max}"/></p></td> -<td><p>maximum engine speed</p></td> -<td><p>1/min</p></td> -<td><p>vehicleModelParameters</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/d84bc4f13818666efe972485ffa26ce9163877a0.png" alt="n_{eng,min}"/></p></td> -<td><p>minimum engine speed</p></td> -<td><p>1/min</p></td> -<td><p>vehicleModelParameters</p></td> -</tr> -<tr class="row-even"><td><p><img class="math" src="../../../_images/math/37e8317b2e01ed1fe34f29869ff8f5d2cdfa78eb.png" alt="r_{stat}"/></p></td> -<td><p>static wheel radius</p></td> -<td><p>m</p></td> -<td><p>vehicleModelParameters</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/91d00c99266d7225ea2e8cc6f4ee54e734da9323.png" alt="m_{vehicle}"/></p></td> -<td><p>vehicle mass</p></td> -<td><p>kg</p></td> -<td><p>vehicleModelParameters</p></td> -</tr> -<tr class="row-even"><td><p><img class="math" src="../../../_images/math/880b25263bdfd625f9e5c24adabbc774dd57fcb8.png" alt="c_{W}"/></p></td> -<td><p>air drag coefficient</p></td> -<td></td> -<td><p>vehicleModelParameters</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/83ec55125f12779059d3ff3c74a47aeea3399c26.png" alt="c_{R}"/></p></td> -<td><p>rolling resistance tire</p></td> -<td></td> -<td><p>vehicleModelParameters</p></td> -</tr> -<tr class="row-even"><td><p><img class="math" src="../../../_images/math/afa636aa8aff638847a1b0215abddcd70e3f75fc.png" alt="A_{proj}"/></p></td> -<td><p>front surface</p></td> -<td><p>m²</p></td> -<td><p>vehicleModelParameters</p></td> -</tr> -</tbody> -</table> -<p>First variables are used to calculate the current engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> . -To do so the speed of the wheels <img class="math" src="../../../_images/math/8a61447e565069614e8fb432e81f2ff844b08063.png" alt="n_{wheel}"/> is determined via the vehicle velocity and static wheel radius:</p> -<div class="math"> -<p><img src="../../../_images/math/c6fe88e7f81a21f602311d08ad53cad221819c17.png" alt="n_{wheel} = \frac{v_{act_{i-1}}}{r_{stat}} \cdot \frac{60}{2 \cdot \pi}"/></p> -</div><p>The powertrain model in the following image is used to further derive the engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> using the gear ratio <img class="math" src="../../../_images/math/73c99fa583ee6f327c55a4cab30cf8f2fb882b6d.png" alt="i_{g} (gear)"/> of the currently engaged gear and axle ratio <img class="math" src="../../../_images/math/27e857287a96f2b9a75e247a301de99d8abcbcaf.png" alt="i_{a}"/> .</p> -<figure class="align-default" id="id1"> -<span id="image-powertrainmodel2"></span><img alt="Illustration of the powertrain model and its parameters and state variables" src="../../../_images/PowertrainModel.svg" /><figcaption> -<p><span class="caption-text">Illustration of the powertrain model and its parameters and state variables</span><a class="headerlink" href="#id1" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<div class="math"> -<p><img src="../../../_images/math/186ca8cd801e8f6918af48eb6a945071e28a2ae0.png" alt="n_{eng} = n_{wheel} \cdot i_{a} \cdot i_{g} (gear)"/></p> -</div><p>The maximum torque <img class="math" src="../../../_images/math/3e4e0d087096eb420c02ba6cc2b4197ff56a209e.png" alt="M_{eng,max} (n_{eng})"/> at the current engine speed is determined using the engine torque map shown in the following image:</p> -<figure class="align-default" id="id2"> -<img alt="Simplified Engine Map" src="../../../_images/EngineMapCalculated.svg" /><figcaption> -<p><span class="caption-text">Simplified Engine Map</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<p>At this point the module differentiates between deceleration and acceleration by checking whether the value of <img class="math" src="../../../_images/math/5c9798f1510af6753c9eb7b2c5d58b140b69f161.png" alt="pos_{actuator}"/> is positive or negative. -Negative values indicate the use of the brake pedal between 0-100% while positive values represent the use of the accelerator pedal.</p> -<p><strong>Driving resistance:</strong> There are driving resistances to be considered during the drive due to the rolling resistance of tires and air resistance which -could be calculated according to the follwing relations in fluid mechanics, where <img class="math" src="../../../_images/math/bb66f0561aa819e3a61f40b57423779d4449ee7b.png" alt="\rho_{air}"/> stands for air density in <img class="math" src="../../../_images/math/572e08c231b6275e31637c1762f65228f6814965.png" alt="kg / m^3"/> :</p> -<div class="math"> -<p><img src="../../../_images/math/5d85248d3b87830ed3c7ef892134340a1814df3f.png" alt="a_{AirDrag} = - \frac{\rho_{air} \cdot c_{w} \cdot A_{proj} \cdot v_{act_{i-a}}^2}{2 \cdot m_{vehicle}}"/></p> -</div><div class="math"> -<p><img src="../../../_images/math/9e843b243e089427f0f03e68f6c20339afaff026.png" alt="a_{RollingDrag} = c_{R} \cdot 9.81 \frac{m}{s^2}"/></p> -</div><p>The rolling resistance of vehicle is currently set as a dummy value (0.0125), because the related value is not in the catalog of vehicle models yet and -therefore it still can not be tapped in interface.</p> -<p><strong>Decelerating:</strong> When decelerating <img class="math" src="../../../_images/math/7b0abc6d78537d753de9943b9e76fa3301cbb12d.png" alt="a_{act}"/> is the sum of the acceleration resulting from engine drag <img class="math" src="../../../_images/math/ee2ba61fbaf6c9b13c767d5736b69aacb3651125.png" alt="a_{drag}"/> and acceleration from braking <img class="math" src="../../../_images/math/e8de268f33225ec875a9286c75c8a9db2eb8a11a.png" alt="a_{brake}"/> . -Whenever the driver is braking the module assumes that the engine is dragging with a moment equal to 10% of the maximum torque at the current engine speed.</p> -<div class="math"> -<p><img src="../../../_images/math/a9f707ea9d502e5790314de3e761f5a0e70c8517.png" alt="M_{drag}(n_{eng}) = - 0.1 \cdot M_{eng,max}(n_{eng})"/></p> -</div><div class="math"> -<p><img src="../../../_images/math/894013d346d3f6084c024a5242ef0348bffe9045.png" alt="M_{wheel} = \frac{M_{drag}(n_{eng})}{i_{a} \cdot i_{g}(gear)}"/></p> -</div><div class="math"> -<p><img src="../../../_images/math/0ae69fbf18a11201f8a93d3bc6a3122ebf6e8ac6.png" alt="F_{wheel} = \frac{M_{wheel}}{r_{stat}}"/></p> -</div><div class="math"> -<p><img src="../../../_images/math/d947549fa7cd5a3b90c765827234dd49051b9f86.png" alt="a_{drag} = \frac{F_{wheel}}{m_{vehicle}}"/></p> -</div><p>The maximum braking deceleration is set to <img class="math" src="../../../_images/math/37111a2184c2be43f7b3fe1e0e04c07b4e6be554.png" alt="a_{brake,max} = 9.81 m/s^2"/>. The actual braking power is proportional to the position of the braking pedal.</p> -<div class="math"> -<p><img src="../../../_images/math/060c673f214ca23089ee3cc239773684631c3399.png" alt="a_{brake} = pos_{actuator} \cdot a_{brake,max}"/></p> -</div><div class="math"> -<p><img src="../../../_images/math/f8d7df9afad3166f2b0384393c96c1b9ca1ccd73.png" alt="a_{act} = a_{drag} + a_{brake}"/></p> -</div><p><strong>Acceleration:</strong> When the driver applies pressure on the accelerator the applied engine torque <img class="math" src="../../../_images/math/bfb515fe7446f9459350a2aee09a4a80bff7a857.png" alt="M_{eng,act}"/> is calculated as proportional to the accelerator pedal position and the span between engine drag and maximum engine torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/>(<img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> ) at the current engine speed.</p> -<div class="math"> -<p><img src="../../../_images/math/24b413265db20d60d79af3a8b4f014d54dd6fbfa.png" alt="M_{eng}(n_{eng}) = M_{drag}(n_eng) + pos_{actuator}(M_{eng,max}(n_{eng}) - M_{drag}(n_{eng}))"/></p> -</div><div class="math"> -<p><img src="../../../_images/math/e67ebc69b4822d8b0a9ac32a5e44bd412dc4530d.png" alt="M_{wheel} = \frac{M_{eng,act}}{i_{a} \cdot i_{g}(gear)}"/></p> -</div><div class="math"> -<p><img src="../../../_images/math/6626abca692e313e86ca6d9648b1a44848413f18.png" alt="F_{wheel} = \frac{M_{eng,act}}{r_{stat}}"/></p> -</div><div class="math"> -<p><img src="../../../_images/math/b344d51cc9ada34a9dda96ea1d74c8cd4cfd40fb.png" alt="a_{act} = \frac{F_{wheel}}{m_{vehicle}}"/></p> -</div><p>Once the acceleration of the vehicle is known the change in velocity is determined by its discrete time integral.</p> -<div class="math"> -<p><img src="../../../_images/math/9988102bf519586a1a00784b7bd8270af26d2f19.png" alt="\Delta v = a_{act} \cdot t_{cycle}"/></p> -</div><p>The sum of the previous velocity and change in velocity result in the actual vehicle velocity of the current time step:</p> -<div class="math"> -<p><img src="../../../_images/math/a66c0776e2797799b3482188a68ea464966c2f2e.png" alt="v_{act_{i}} = v_{act_{i-1}} + \Delta v"/></p> -</div></section> -<section id="lateral-dynamics"> -<h3>Lateral dynamics<a class="headerlink" href="#lateral-dynamics" title="Link to this heading">ïƒ</a></h3> -<p>The lateral dynamics model is based on the Ackermann model which reduces the steering kinematics to a single surrogate front wheel. Considering the relatively small steering angles when driving on the highway this simplification is deemed suitable. -The heading is updated using the previous heading and the change in yaw due to the steering wheel angle which is converted into a yaw rate using the simplified Ackermann model shown in the following image.</p> -<figure class="align-default" id="id3"> -<span id="image-ackermannmodel"></span><img alt="Illustration of the Ackermann model" src="../../../_images/AckermannModel.svg" /><figcaption> -<p><span class="caption-text">Illustration of the Ackermann model</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> -</figcaption> -</figure> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Variable</p></th> -<th class="head"><p>Meaning</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Source</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p><img class="math" src="../../../_images/math/264888dd4a4ab3d816ed5c325af60a02201fb97d.png" alt="\delta_{h}"/></p></td> -<td><p>steering wheel angle</p></td> -<td><p>rad</p></td> -<td><p>Algorithm_Lateral</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/33e5a161c226746b5f858520b66ab3b727990525.png" alt="\Phi_{act_{i-1}}"/></p></td> -<td><p>heading at previous time step</p></td> -<td><p>rad</p></td> -<td><p>WorldObjectInterface</p></td> -</tr> -<tr class="row-even"><td><p><img class="math" src="../../../_images/math/4b005afb1bbdb9c3e7f2e6ae503ab9b842b73950.png" alt="i_{s}"/></p></td> -<td><p>steering ratio</p></td> -<td></td> -<td><p>vehicleModelParameters</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/3789a783f205339f47c886c78ba14bc944845b91.png" alt="l_{wheelbase}"/></p></td> -<td><p>wheelbase</p></td> -<td><p>m</p></td> -<td><p>vehicleModelParameters</p></td> -</tr> -<tr class="row-even"><td><p><img class="math" src="../../../_images/math/82f8146372613edd07fa9be8b9227bdde1c42ac4.png" alt="\Delta s"/></p></td> -<td><p>distance travelled since last time step</p></td> -<td><p>m</p></td> -<td><p>previously calculated in the module</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/1e9a3c535b3949ccd3eb83a4d5d12930474263ff.png" alt="t_{cycle}"/></p></td> -<td><p>cycle time</p></td> -<td><p>ms</p></td> -<td><p>ModelInterface</p></td> -</tr> -</tbody> -</table> -<p>The steering wheel angle <img class="math" src="../../../_images/math/264888dd4a4ab3d816ed5c325af60a02201fb97d.png" alt="\delta_{h}"/> is proportional to the front wheel angle <img class="math" src="../../../_images/math/652b9d8b65c10aed0fdcdbde47396c879ed5bd33.png" alt="\delta"/> :</p> -<div class="math"> -<p><img src="../../../_images/math/424c1a175a5c76c81deb6e4042c75f50e956dd11.png" alt="\delta = \frac{\delta_{h}}{i_{s}}"/></p> -</div><p>The Ackermann model provides the geometric connection between the front wheel angle and the resulting curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> :</p> -<div class="math"> -<p><img src="../../../_images/math/815f71b583a7c8c8849b594c4c8457f3d9d1a3de.png" alt="\kappa = \frac{tan(\delta)}{l_{wheelbase}}"/></p> -</div><p>The combination of curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> and driven distance at that curvature <img class="math" src="../../../_images/math/82f8146372613edd07fa9be8b9227bdde1c42ac4.png" alt="\Delta s"/> result in the change of the heading <img class="math" src="../../../_images/math/2de70bff0cd28ce132a5b2bc1af61ea0952a801a.png" alt="\Delta \Phi"/>:</p> -<div class="math"> -<p><img src="../../../_images/math/d74a416e1db39b7b85110d7ae6ef18db4883bdb9.png" alt="\Delta \Phi = atan(\kappa \cdot \Delta s)"/></p> -</div><p>The new heading <img class="math" src="../../../_images/math/a4012f826966de9f110274ceb2a787af289d6302.png" alt="\Phi_{act_{i}}"/> is the old heading <img class="math" src="../../../_images/math/409d43055a295e61738c90074520ffeedaba02c6.png" alt="\Phi_{act{i-1}}"/> plus the previously calculated change in heading <img class="math" src="../../../_images/math/2de70bff0cd28ce132a5b2bc1af61ea0952a801a.png" alt="\Delta \Phi"/> :</p> -<div class="math"> -<p><img src="../../../_images/math/fb3ac93e4fcdd8aa908eaaf9e6ee33da73961444.png" alt="\Phi_{act_{i}} = \Phi_{act_{i-1}} + \Delta \Phi"/></p> -</div></section> -<section id="updating-position"> -<h3>Updating position<a class="headerlink" href="#updating-position" title="Link to this heading">ïƒ</a></h3> -<p>Once the new vehicle speed <img class="math" src="../../../_images/math/a4c9a91b43ea371c8bcbd8c0401c992fa26de3d6.png" alt="v_{act_{i}}"/> is determined the distance travelled during the last timestep <img class="math" src="../../../_images/math/82f8146372613edd07fa9be8b9227bdde1c42ac4.png" alt="\Delta s"/> is determined:</p> -<div class="math"> -<p><img src="../../../_images/math/27768e5c81b3213969e180c799ad3fe899393aae.png" alt="\Delta s = v_{act_{i}} \cdot t_{cycle}"/></p> -</div><p>Using the actual vehicle yaw angle in the road coordinate <img class="math" src="../../../_images/math/33e5a161c226746b5f858520b66ab3b727990525.png" alt="\Phi_{act_{i-1}}"/> the vehicles new x- and y-coordinates are calculated:</p> -<div class="math"> -<p><img src="../../../_images/math/61190de62458a3f64f789d9e487b86686c3089a3.png" alt="x_{agent_{i}} = x_{agent_{i-1}} + \Delta s \cdot cos(\Phi_{act_{i-1}})"/></p> -</div><div class="math"> -<p><img src="../../../_images/math/8cc9781565d5e94551e510e5227826abb62d8fbf.png" alt="y_{agent_{i}} = y_{agent_{i-1}} + \Delta s \cdot sin(\Phi_{act_{i-1}})"/></p> -</div></section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="driver.html" class="btn btn-neutral float-left" title="Driver" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="dynamics_scenario.html" class="btn btn-neutral float-right" title="Dynamics_Scenario" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Dynamics_RegularDriving — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../../_static/doctools.js?v=888ff710"></script> + <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../../genindex.html" /> + <link rel="search" title="Search" href="../../../search.html" /> + <link rel="next" title="Dynamics_Scenario" href="dynamics_scenario.html" /> + <link rel="prev" title="Driver" href="driver.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../../index.html" class="icon icon-home"> + openPASS + <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> +<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> +<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> +<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> +<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> +<li class="toctree-l4 current"><a class="current reference internal" href="#">Dynamics_RegularDriving</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> +<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> +<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> + <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> + <li class="breadcrumb-item active">Dynamics_RegularDriving</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../../_sources/user_guide/sim_user_guide/components/dynamics_regular_driving.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="dynamics-regulardriving"> +<span id="dynamics-regular-driving"></span><h1>Dynamics_RegularDriving<a class="headerlink" href="#dynamics-regulardriving" title="Link to this heading">ïƒ</a></h1> +<p>This module is responsible for the vehicle dynamics under normal driving conditions. +It receives a signal from the lateral dynamics module <a class="reference internal" href="algorithm_lateral.html#algorithm-lateral"><span class="std std-ref">Algorithm_Lateral</span></a> containing the steering wheel angle. +Accelerator pedal position, brake pedal position and the currently engaged gear are fetched from the signal sent by the longitudinal dynamics module <a class="reference internal" href="algorithm_longitudinal.html#algorithm-longitudinal"><span class="std std-ref">Algorithm_Longitudinal</span></a>. +The module is using these inputs and the vehicle parameters from <a class="reference internal" href="../../../advanced_topics/simulator/agent_components.html#parameters-vehicle"><span class="std std-ref">Parameters_Vehicle</span></a> to determine the resulting vehicle speed, yaw angle and absolute position in the road coordinate system. +The calculated values are passed on to the simulation framework/WorldObjectInterface.</p> +<section id="overview-of-the-module-s-functionalities"> +<h2>Overview of the module’s functionalities<a class="headerlink" href="#overview-of-the-module-s-functionalities" title="Link to this heading">ïƒ</a></h2> +<section id="longitudinal-dynamics"> +<h3>Longitudinal dynamics<a class="headerlink" href="#longitudinal-dynamics" title="Link to this heading">ïƒ</a></h3> +<p>The core element of all longitudinal calculations in this model are speed and acceleration. To determine the change of speed <img class="math" src="../../../_images/math/bee30f2cce9bda089aca48016006f43c7a1a00ab.png" alt="\Delta v"/> and the vehicles velocity <img class="math" src="../../../_images/math/a4c9a91b43ea371c8bcbd8c0401c992fa26de3d6.png" alt="v_{act_{i}}"/> of the current time step <img class="math" src="../../../_images/math/5aa339d4daf45a810dda332e3c80a0698e526e04.png" alt="i"/> the actual acceleration <img class="math" src="../../../_images/math/7b0abc6d78537d753de9943b9e76fa3301cbb12d.png" alt="a_{act}"/> has to be known.</p> +<p>The module uses a simplified longitudinal dynamics model e.g. it doesn’t factor in rotational inertias.</p> +<p><img class="math" src="../../../_images/math/7b0abc6d78537d753de9943b9e76fa3301cbb12d.png" alt="a_{act}"/> is dependend on the state variables and parameters shown in table 1.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Variable</p></th> +<th class="head"><p>Meaning</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Source</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p><img class="math" src="../../../_images/math/39f561d2298a2b2d3568abd7127f5af5cc75c1d7.png" alt="v_{act_{i-1}}"/></p></td> +<td><p>currently saved velocity of agent</p></td> +<td><p>m/s</p></td> +<td><p>WorldObjectInterface</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/5c9798f1510af6753c9eb7b2c5d58b140b69f161.png" alt="pos_{actuator}"/></p></td> +<td><p>position of accelerator/brake pedal</p></td> +<td></td> +<td><p>Algorithm_Longitudinal</p></td> +</tr> +<tr class="row-even"><td><p><img class="math" src="../../../_images/math/e6de55aefd90417b1eeeeca680f4de59c48f92d2.png" alt="gear"/></p></td> +<td><p>chosen gear</p></td> +<td></td> +<td><p>Algorithm_Longitudinal</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/73c99fa583ee6f327c55a4cab30cf8f2fb882b6d.png" alt="i_{g} (gear)"/></p></td> +<td><p>gear ratio of current gear</p></td> +<td></td> +<td><p>vehicleModelParameters</p></td> +</tr> +<tr class="row-even"><td><p><img class="math" src="../../../_images/math/27e857287a96f2b9a75e247a301de99d8abcbcaf.png" alt="i_{a}"/></p></td> +<td><p>gear ratio of axle</p></td> +<td></td> +<td><p>vehicleModelParameters</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/ebc09278ad5cb7f72bfa499d1ac0a95d01089631.png" alt="M_{eng,max}"/></p></td> +<td><p>maximum torque of the vehicle engine</p></td> +<td><p>Nm</p></td> +<td><p>vehicleModelParameters</p></td> +</tr> +<tr class="row-even"><td><p><img class="math" src="../../../_images/math/de3b7384cfeaffe57a5f76636b9bb260f64cc2ad.png" alt="n_{eng,max}"/></p></td> +<td><p>maximum engine speed</p></td> +<td><p>1/min</p></td> +<td><p>vehicleModelParameters</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/d84bc4f13818666efe972485ffa26ce9163877a0.png" alt="n_{eng,min}"/></p></td> +<td><p>minimum engine speed</p></td> +<td><p>1/min</p></td> +<td><p>vehicleModelParameters</p></td> +</tr> +<tr class="row-even"><td><p><img class="math" src="../../../_images/math/37e8317b2e01ed1fe34f29869ff8f5d2cdfa78eb.png" alt="r_{stat}"/></p></td> +<td><p>static wheel radius</p></td> +<td><p>m</p></td> +<td><p>vehicleModelParameters</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/91d00c99266d7225ea2e8cc6f4ee54e734da9323.png" alt="m_{vehicle}"/></p></td> +<td><p>vehicle mass</p></td> +<td><p>kg</p></td> +<td><p>vehicleModelParameters</p></td> +</tr> +<tr class="row-even"><td><p><img class="math" src="../../../_images/math/880b25263bdfd625f9e5c24adabbc774dd57fcb8.png" alt="c_{W}"/></p></td> +<td><p>air drag coefficient</p></td> +<td></td> +<td><p>vehicleModelParameters</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/83ec55125f12779059d3ff3c74a47aeea3399c26.png" alt="c_{R}"/></p></td> +<td><p>rolling resistance tire</p></td> +<td></td> +<td><p>vehicleModelParameters</p></td> +</tr> +<tr class="row-even"><td><p><img class="math" src="../../../_images/math/afa636aa8aff638847a1b0215abddcd70e3f75fc.png" alt="A_{proj}"/></p></td> +<td><p>front surface</p></td> +<td><p>m²</p></td> +<td><p>vehicleModelParameters</p></td> +</tr> +</tbody> +</table> +<p>First variables are used to calculate the current engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> . +To do so the speed of the wheels <img class="math" src="../../../_images/math/8a61447e565069614e8fb432e81f2ff844b08063.png" alt="n_{wheel}"/> is determined via the vehicle velocity and static wheel radius:</p> +<div class="math"> +<p><img src="../../../_images/math/c6fe88e7f81a21f602311d08ad53cad221819c17.png" alt="n_{wheel} = \frac{v_{act_{i-1}}}{r_{stat}} \cdot \frac{60}{2 \cdot \pi}"/></p> +</div><p>The powertrain model in the following image is used to further derive the engine speed <img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> using the gear ratio <img class="math" src="../../../_images/math/73c99fa583ee6f327c55a4cab30cf8f2fb882b6d.png" alt="i_{g} (gear)"/> of the currently engaged gear and axle ratio <img class="math" src="../../../_images/math/27e857287a96f2b9a75e247a301de99d8abcbcaf.png" alt="i_{a}"/> .</p> +<figure class="align-default" id="id1"> +<span id="image-powertrainmodel2"></span><img alt="Illustration of the powertrain model and its parameters and state variables" src="../../../_images/PowertrainModel.svg" /><figcaption> +<p><span class="caption-text">Illustration of the powertrain model and its parameters and state variables</span><a class="headerlink" href="#id1" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<div class="math"> +<p><img src="../../../_images/math/186ca8cd801e8f6918af48eb6a945071e28a2ae0.png" alt="n_{eng} = n_{wheel} \cdot i_{a} \cdot i_{g} (gear)"/></p> +</div><p>The maximum torque <img class="math" src="../../../_images/math/3e4e0d087096eb420c02ba6cc2b4197ff56a209e.png" alt="M_{eng,max} (n_{eng})"/> at the current engine speed is determined using the engine torque map shown in the following image:</p> +<figure class="align-default" id="id2"> +<img alt="Simplified Engine Map" src="../../../_images/EngineMapCalculated.svg" /><figcaption> +<p><span class="caption-text">Simplified Engine Map</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<p>At this point the module differentiates between deceleration and acceleration by checking whether the value of <img class="math" src="../../../_images/math/5c9798f1510af6753c9eb7b2c5d58b140b69f161.png" alt="pos_{actuator}"/> is positive or negative. +Negative values indicate the use of the brake pedal between 0-100% while positive values represent the use of the accelerator pedal.</p> +<p><strong>Driving resistance:</strong> There are driving resistances to be considered during the drive due to the rolling resistance of tires and air resistance which +could be calculated according to the follwing relations in fluid mechanics, where <img class="math" src="../../../_images/math/bb66f0561aa819e3a61f40b57423779d4449ee7b.png" alt="\rho_{air}"/> stands for air density in <img class="math" src="../../../_images/math/572e08c231b6275e31637c1762f65228f6814965.png" alt="kg / m^3"/> :</p> +<div class="math"> +<p><img src="../../../_images/math/5d85248d3b87830ed3c7ef892134340a1814df3f.png" alt="a_{AirDrag} = - \frac{\rho_{air} \cdot c_{w} \cdot A_{proj} \cdot v_{act_{i-a}}^2}{2 \cdot m_{vehicle}}"/></p> +</div><div class="math"> +<p><img src="../../../_images/math/9e843b243e089427f0f03e68f6c20339afaff026.png" alt="a_{RollingDrag} = c_{R} \cdot 9.81 \frac{m}{s^2}"/></p> +</div><p>The rolling resistance of vehicle is currently set as a dummy value (0.0125), because the related value is not in the catalog of vehicle models yet and +therefore it still can not be tapped in interface.</p> +<p><strong>Decelerating:</strong> When decelerating <img class="math" src="../../../_images/math/7b0abc6d78537d753de9943b9e76fa3301cbb12d.png" alt="a_{act}"/> is the sum of the acceleration resulting from engine drag <img class="math" src="../../../_images/math/ee2ba61fbaf6c9b13c767d5736b69aacb3651125.png" alt="a_{drag}"/> and acceleration from braking <img class="math" src="../../../_images/math/e8de268f33225ec875a9286c75c8a9db2eb8a11a.png" alt="a_{brake}"/> . +Whenever the driver is braking the module assumes that the engine is dragging with a moment equal to 10% of the maximum torque at the current engine speed.</p> +<div class="math"> +<p><img src="../../../_images/math/a9f707ea9d502e5790314de3e761f5a0e70c8517.png" alt="M_{drag}(n_{eng}) = - 0.1 \cdot M_{eng,max}(n_{eng})"/></p> +</div><div class="math"> +<p><img src="../../../_images/math/894013d346d3f6084c024a5242ef0348bffe9045.png" alt="M_{wheel} = \frac{M_{drag}(n_{eng})}{i_{a} \cdot i_{g}(gear)}"/></p> +</div><div class="math"> +<p><img src="../../../_images/math/0ae69fbf18a11201f8a93d3bc6a3122ebf6e8ac6.png" alt="F_{wheel} = \frac{M_{wheel}}{r_{stat}}"/></p> +</div><div class="math"> +<p><img src="../../../_images/math/d947549fa7cd5a3b90c765827234dd49051b9f86.png" alt="a_{drag} = \frac{F_{wheel}}{m_{vehicle}}"/></p> +</div><p>The maximum braking deceleration is set to <img class="math" src="../../../_images/math/37111a2184c2be43f7b3fe1e0e04c07b4e6be554.png" alt="a_{brake,max} = 9.81 m/s^2"/>. The actual braking power is proportional to the position of the braking pedal.</p> +<div class="math"> +<p><img src="../../../_images/math/060c673f214ca23089ee3cc239773684631c3399.png" alt="a_{brake} = pos_{actuator} \cdot a_{brake,max}"/></p> +</div><div class="math"> +<p><img src="../../../_images/math/f8d7df9afad3166f2b0384393c96c1b9ca1ccd73.png" alt="a_{act} = a_{drag} + a_{brake}"/></p> +</div><p><strong>Acceleration:</strong> When the driver applies pressure on the accelerator the applied engine torque <img class="math" src="../../../_images/math/bfb515fe7446f9459350a2aee09a4a80bff7a857.png" alt="M_{eng,act}"/> is calculated as proportional to the accelerator pedal position and the span between engine drag and maximum engine torque <img class="math" src="../../../_images/math/fb0d511283503b5b3a7208be5b3d6ede3fee25a6.png" alt="M_{eng}"/>(<img class="math" src="../../../_images/math/7488c00111382f5f04d931d6f3ecb4435438ffad.png" alt="n_{eng}"/> ) at the current engine speed.</p> +<div class="math"> +<p><img src="../../../_images/math/24b413265db20d60d79af3a8b4f014d54dd6fbfa.png" alt="M_{eng}(n_{eng}) = M_{drag}(n_eng) + pos_{actuator}(M_{eng,max}(n_{eng}) - M_{drag}(n_{eng}))"/></p> +</div><div class="math"> +<p><img src="../../../_images/math/e67ebc69b4822d8b0a9ac32a5e44bd412dc4530d.png" alt="M_{wheel} = \frac{M_{eng,act}}{i_{a} \cdot i_{g}(gear)}"/></p> +</div><div class="math"> +<p><img src="../../../_images/math/6626abca692e313e86ca6d9648b1a44848413f18.png" alt="F_{wheel} = \frac{M_{eng,act}}{r_{stat}}"/></p> +</div><div class="math"> +<p><img src="../../../_images/math/b344d51cc9ada34a9dda96ea1d74c8cd4cfd40fb.png" alt="a_{act} = \frac{F_{wheel}}{m_{vehicle}}"/></p> +</div><p>Once the acceleration of the vehicle is known the change in velocity is determined by its discrete time integral.</p> +<div class="math"> +<p><img src="../../../_images/math/9988102bf519586a1a00784b7bd8270af26d2f19.png" alt="\Delta v = a_{act} \cdot t_{cycle}"/></p> +</div><p>The sum of the previous velocity and change in velocity result in the actual vehicle velocity of the current time step:</p> +<div class="math"> +<p><img src="../../../_images/math/a66c0776e2797799b3482188a68ea464966c2f2e.png" alt="v_{act_{i}} = v_{act_{i-1}} + \Delta v"/></p> +</div></section> +<section id="lateral-dynamics"> +<h3>Lateral dynamics<a class="headerlink" href="#lateral-dynamics" title="Link to this heading">ïƒ</a></h3> +<p>The lateral dynamics model is based on the Ackermann model which reduces the steering kinematics to a single surrogate front wheel. Considering the relatively small steering angles when driving on the highway this simplification is deemed suitable. +The heading is updated using the previous heading and the change in yaw due to the steering wheel angle which is converted into a yaw rate using the simplified Ackermann model shown in the following image.</p> +<figure class="align-default" id="id3"> +<span id="image-ackermannmodel"></span><img alt="Illustration of the Ackermann model" src="../../../_images/AckermannModel.svg" /><figcaption> +<p><span class="caption-text">Illustration of the Ackermann model</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> +</figcaption> +</figure> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Variable</p></th> +<th class="head"><p>Meaning</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Source</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p><img class="math" src="../../../_images/math/264888dd4a4ab3d816ed5c325af60a02201fb97d.png" alt="\delta_{h}"/></p></td> +<td><p>steering wheel angle</p></td> +<td><p>rad</p></td> +<td><p>Algorithm_Lateral</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/33e5a161c226746b5f858520b66ab3b727990525.png" alt="\Phi_{act_{i-1}}"/></p></td> +<td><p>heading at previous time step</p></td> +<td><p>rad</p></td> +<td><p>WorldObjectInterface</p></td> +</tr> +<tr class="row-even"><td><p><img class="math" src="../../../_images/math/4b005afb1bbdb9c3e7f2e6ae503ab9b842b73950.png" alt="i_{s}"/></p></td> +<td><p>steering ratio</p></td> +<td></td> +<td><p>vehicleModelParameters</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/3789a783f205339f47c886c78ba14bc944845b91.png" alt="l_{wheelbase}"/></p></td> +<td><p>wheelbase</p></td> +<td><p>m</p></td> +<td><p>vehicleModelParameters</p></td> +</tr> +<tr class="row-even"><td><p><img class="math" src="../../../_images/math/82f8146372613edd07fa9be8b9227bdde1c42ac4.png" alt="\Delta s"/></p></td> +<td><p>distance travelled since last time step</p></td> +<td><p>m</p></td> +<td><p>previously calculated in the module</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/1e9a3c535b3949ccd3eb83a4d5d12930474263ff.png" alt="t_{cycle}"/></p></td> +<td><p>cycle time</p></td> +<td><p>ms</p></td> +<td><p>ModelInterface</p></td> +</tr> +</tbody> +</table> +<p>The steering wheel angle <img class="math" src="../../../_images/math/264888dd4a4ab3d816ed5c325af60a02201fb97d.png" alt="\delta_{h}"/> is proportional to the front wheel angle <img class="math" src="../../../_images/math/652b9d8b65c10aed0fdcdbde47396c879ed5bd33.png" alt="\delta"/> :</p> +<div class="math"> +<p><img src="../../../_images/math/424c1a175a5c76c81deb6e4042c75f50e956dd11.png" alt="\delta = \frac{\delta_{h}}{i_{s}}"/></p> +</div><p>The Ackermann model provides the geometric connection between the front wheel angle and the resulting curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> :</p> +<div class="math"> +<p><img src="../../../_images/math/815f71b583a7c8c8849b594c4c8457f3d9d1a3de.png" alt="\kappa = \frac{tan(\delta)}{l_{wheelbase}}"/></p> +</div><p>The combination of curvature <img class="math" src="../../../_images/math/261e3eb56c1757dd003745ee4cc53aa595565af1.png" alt="\kappa"/> and driven distance at that curvature <img class="math" src="../../../_images/math/82f8146372613edd07fa9be8b9227bdde1c42ac4.png" alt="\Delta s"/> result in the change of the heading <img class="math" src="../../../_images/math/2de70bff0cd28ce132a5b2bc1af61ea0952a801a.png" alt="\Delta \Phi"/>:</p> +<div class="math"> +<p><img src="../../../_images/math/d74a416e1db39b7b85110d7ae6ef18db4883bdb9.png" alt="\Delta \Phi = atan(\kappa \cdot \Delta s)"/></p> +</div><p>The new heading <img class="math" src="../../../_images/math/a4012f826966de9f110274ceb2a787af289d6302.png" alt="\Phi_{act_{i}}"/> is the old heading <img class="math" src="../../../_images/math/409d43055a295e61738c90074520ffeedaba02c6.png" alt="\Phi_{act{i-1}}"/> plus the previously calculated change in heading <img class="math" src="../../../_images/math/2de70bff0cd28ce132a5b2bc1af61ea0952a801a.png" alt="\Delta \Phi"/> :</p> +<div class="math"> +<p><img src="../../../_images/math/fb3ac93e4fcdd8aa908eaaf9e6ee33da73961444.png" alt="\Phi_{act_{i}} = \Phi_{act_{i-1}} + \Delta \Phi"/></p> +</div></section> +<section id="updating-position"> +<h3>Updating position<a class="headerlink" href="#updating-position" title="Link to this heading">ïƒ</a></h3> +<p>Once the new vehicle speed <img class="math" src="../../../_images/math/a4c9a91b43ea371c8bcbd8c0401c992fa26de3d6.png" alt="v_{act_{i}}"/> is determined the distance travelled during the last timestep <img class="math" src="../../../_images/math/82f8146372613edd07fa9be8b9227bdde1c42ac4.png" alt="\Delta s"/> is determined:</p> +<div class="math"> +<p><img src="../../../_images/math/27768e5c81b3213969e180c799ad3fe899393aae.png" alt="\Delta s = v_{act_{i}} \cdot t_{cycle}"/></p> +</div><p>Using the actual vehicle yaw angle in the road coordinate <img class="math" src="../../../_images/math/33e5a161c226746b5f858520b66ab3b727990525.png" alt="\Phi_{act_{i-1}}"/> the vehicles new x- and y-coordinates are calculated:</p> +<div class="math"> +<p><img src="../../../_images/math/61190de62458a3f64f789d9e487b86686c3089a3.png" alt="x_{agent_{i}} = x_{agent_{i-1}} + \Delta s \cdot cos(\Phi_{act_{i-1}})"/></p> +</div><div class="math"> +<p><img src="../../../_images/math/8cc9781565d5e94551e510e5227826abb62d8fbf.png" alt="y_{agent_{i}} = y_{agent_{i-1}} + \Delta s \cdot sin(\Phi_{act_{i-1}})"/></p> +</div></section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="driver.html" class="btn btn-neutral float-left" title="Driver" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="dynamics_scenario.html" class="btn btn-neutral float-right" title="Dynamics_Scenario" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/sim_user_guide/components/dynamics_scenario.html b/content/html/user_guide/sim_user_guide/components/dynamics_scenario.html index da988cfa5c75c3959704bed4ff505c0a46f79d77..4e7b9a25475e27d4a1aefdb837a193d1d1efcab5 100644 --- a/content/html/user_guide/sim_user_guide/components/dynamics_scenario.html +++ b/content/html/user_guide/sim_user_guide/components/dynamics_scenario.html @@ -1,218 +1,219 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Dynamics_Scenario — openPASS Documentation</title> - <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../../_static/doctools.js?v=888ff710"></script> - <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../../genindex.html" /> - <link rel="search" title="Search" href="../../../search.html" /> - <link rel="next" title="Sensor_Driver" href="sensor_driver.html" /> - <link rel="prev" title="Dynamics_RegularDriving" href="dynamics_regular_driving.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../../index.html" class="icon icon-home"> - openPASS - <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> -<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> -<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> -<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> -<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> -<li class="toctree-l4 current"><a class="current reference internal" href="#">Dynamics_Scenario</a></li> -<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> -<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> - <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> - <li class="breadcrumb-item active">Dynamics_Scenario</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../../_sources/user_guide/sim_user_guide/components/dynamics_scenario.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="dynamics-scenario"> -<span id="id1"></span><h1>Dynamics_Scenario<a class="headerlink" href="#dynamics-scenario" title="Link to this heading">ïƒ</a></h1> -<p>This module acts as a direct implementation of external scenario actions, requested through <cite>ControlStrategies</cite> defined in the <cite>Mantle API <https://gitlab.eclipse.org/eclipse/openpass/scenario_api></cite>. -As the MantleAPI is not an official standard, the module currently follows a “standard conform†interpretation based on <cite>openSCENARIO V1.1 <https://www.asam.net/standards/detail/openscenario/></cite>.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Due to the nature of <strong>openPASS</strong> actions that are set by the scenario engine in one timestep, will be visible in the simulation output starting with the next timestep, -because all states are only syncronized at the end of a timestep</p> -</div> -<p>In every timestep one strategy for each MovementDomain (longitudinal and lateral) is active. -If the scenario engine sets a new strategy for a MovementDomain the previous strategy for this MovementDomain is stopped. -A strategy can also apply to both MovementDomains (meaning it is the only active strategy). -If a strategy is finished (except KeepVelocity and KeepLaneOffset which are never finished), this is reported back to the scenario engine.</p> -<section id="defaultstrategies"> -<h2>DefaultStrategies<a class="headerlink" href="#defaultstrategies" title="Link to this heading">ïƒ</a></h2> -<section id="keepvelocity-longitudinal"> -<h3>KeepVelocity - longitudinal<a class="headerlink" href="#keepvelocity-longitudinal" title="Link to this heading">ïƒ</a></h3> -<p>During this strategy the velocity is constant (same as at the time when this strategy is set). -This is the default longitudinal strategy, if no other longitudinal strategy is set.</p> -</section> -<section id="keeplaneoffset-lateral"> -<h3>KeepLaneOffset - lateral<a class="headerlink" href="#keeplaneoffset-lateral" title="Link to this heading">ïƒ</a></h3> -<p>During this strategy the agent will drive along the lane with a constant offset (same as at the time when this strategy is set). -This is the default lateral strategy, if no other lateral strategy is set.</p> -</section> -</section> -<section id="strategies"> -<h2>Strategies<a class="headerlink" href="#strategies" title="Link to this heading">ïƒ</a></h2> -<section id="followvelocityspline-longitudinal"> -<h3>FollowVelocitySpline - longitudinal<a class="headerlink" href="#followvelocityspline-longitudinal" title="Link to this heading">ïƒ</a></h3> -<p>A velocity spline defines a function over time of the agent velocity. -This function is a piecewise polynomial of degree 3. -This strategy will be set for SpeedActions with DynamicsShape other than step.</p> -</section> -<section id="performchangelane-lateral"> -<h3>PerformChangeLane - lateral<a class="headerlink" href="#performchangelane-lateral" title="Link to this heading">ïƒ</a></h3> -<p>This strategy will have the agent switching lanes while keeping a constant longitudinal velocity (in s direction). -It will be set for LaneChangeActions where the target lane is not the current lane. -At the momement only DynamicsShape sinusoidal and DynamicsDimension distance or time is supported.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>In the current implementation both movement domains are touched, even if a longitudinal movement controller is active. -This means that the velocity of the longitudinal is ignored while the lane change is executed. -This may result in a jump of the velocity at the end of the lane change.</p> -</div> -</section> -<section id="followtrajectory-both"> -<h3>FollowTrajectory - both<a class="headerlink" href="#followtrajectory-both" title="Link to this heading">ïƒ</a></h3> -<p>A trajectory defines the position and orientation of the agent at defined times. -If a timestep lies between the trajectory points the position is linearly interpolated. -This strategy will be set for FollowTrajectoryActions. -TrajectoryFollowingMode is not supported and the agent will always strictly adhere to the trajectory.</p> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="dynamics_regular_driving.html" class="btn btn-neutral float-left" title="Dynamics_RegularDriving" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="sensor_driver.html" class="btn btn-neutral float-right" title="Sensor_Driver" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Dynamics_Scenario — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../../_static/doctools.js?v=888ff710"></script> + <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../../genindex.html" /> + <link rel="search" title="Search" href="../../../search.html" /> + <link rel="next" title="Sensor_Driver" href="sensor_driver.html" /> + <link rel="prev" title="Dynamics_RegularDriving" href="dynamics_regular_driving.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../../index.html" class="icon icon-home"> + openPASS + <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> +<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> +<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> +<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> +<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> +<li class="toctree-l4 current"><a class="current reference internal" href="#">Dynamics_Scenario</a></li> +<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> +<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> + <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> + <li class="breadcrumb-item active">Dynamics_Scenario</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../../_sources/user_guide/sim_user_guide/components/dynamics_scenario.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="dynamics-scenario"> +<span id="id1"></span><h1>Dynamics_Scenario<a class="headerlink" href="#dynamics-scenario" title="Link to this heading">ïƒ</a></h1> +<p>This module acts as a direct implementation of external scenario actions, requested through <cite>ControlStrategies</cite> defined in the <cite>Mantle API <https://gitlab.eclipse.org/eclipse/openpass/scenario_api></cite>. +As the MantleAPI is not an official standard, the module currently follows a “standard conform†interpretation based on <cite>openSCENARIO V1.1 <https://www.asam.net/standards/detail/openscenario/></cite>.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Due to the nature of <strong>openPASS</strong> actions that are set by the scenario engine in one timestep, will be visible in the simulation output starting with the next timestep, +because all states are only syncronized at the end of a timestep</p> +</div> +<p>In every timestep one strategy for each MovementDomain (longitudinal and lateral) is active. +If the scenario engine sets a new strategy for a MovementDomain the previous strategy for this MovementDomain is stopped. +A strategy can also apply to both MovementDomains (meaning it is the only active strategy). +If a strategy is finished (except KeepVelocity and KeepLaneOffset which are never finished), this is reported back to the scenario engine.</p> +<section id="defaultstrategies"> +<h2>DefaultStrategies<a class="headerlink" href="#defaultstrategies" title="Link to this heading">ïƒ</a></h2> +<section id="keepvelocity-longitudinal"> +<h3>KeepVelocity - longitudinal<a class="headerlink" href="#keepvelocity-longitudinal" title="Link to this heading">ïƒ</a></h3> +<p>During this strategy the velocity is constant (same as at the time when this strategy is set). +This is the default longitudinal strategy, if no other longitudinal strategy is set.</p> +</section> +<section id="keeplaneoffset-lateral"> +<h3>KeepLaneOffset - lateral<a class="headerlink" href="#keeplaneoffset-lateral" title="Link to this heading">ïƒ</a></h3> +<p>During this strategy the agent will drive along the lane with a constant offset (same as at the time when this strategy is set). +This is the default lateral strategy, if no other lateral strategy is set.</p> +</section> +</section> +<section id="strategies"> +<h2>Strategies<a class="headerlink" href="#strategies" title="Link to this heading">ïƒ</a></h2> +<section id="followvelocityspline-longitudinal"> +<h3>FollowVelocitySpline - longitudinal<a class="headerlink" href="#followvelocityspline-longitudinal" title="Link to this heading">ïƒ</a></h3> +<p>A velocity spline defines a function over time of the agent velocity. +This function is a piecewise polynomial of degree 3. +This strategy will be set for SpeedActions with DynamicsShape other than step.</p> +</section> +<section id="performchangelane-lateral"> +<h3>PerformChangeLane - lateral<a class="headerlink" href="#performchangelane-lateral" title="Link to this heading">ïƒ</a></h3> +<p>This strategy will have the agent switching lanes while keeping a constant longitudinal velocity (in s direction). +It will be set for LaneChangeActions where the target lane is not the current lane. +At the momement only DynamicsShape sinusoidal and DynamicsDimension distance or time is supported.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>In the current implementation both movement domains are touched, even if a longitudinal movement controller is active. +This means that the velocity of the longitudinal is ignored while the lane change is executed. +This may result in a jump of the velocity at the end of the lane change.</p> +</div> +</section> +<section id="followtrajectory-both"> +<h3>FollowTrajectory - both<a class="headerlink" href="#followtrajectory-both" title="Link to this heading">ïƒ</a></h3> +<p>A trajectory defines the position and orientation of the agent at defined times. +If a timestep lies between the trajectory points the position is linearly interpolated. +This strategy will be set for FollowTrajectoryActions. +TrajectoryFollowingMode is not supported and the agent will always strictly adhere to the trajectory.</p> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="dynamics_regular_driving.html" class="btn btn-neutral float-left" title="Dynamics_RegularDriving" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="sensor_driver.html" class="btn btn-neutral float-right" title="Sensor_Driver" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/sim_user_guide/components/sensor_driver.html b/content/html/user_guide/sim_user_guide/components/sensor_driver.html index 3b522696bb62a29521c5cb784d1bb5226a389e20..3cbc4187673b22664504f6528642da003508270b 100644 --- a/content/html/user_guide/sim_user_guide/components/sensor_driver.html +++ b/content/html/user_guide/sim_user_guide/components/sensor_driver.html @@ -1,468 +1,469 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Sensor_Driver — openPASS Documentation</title> - <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../../_static/doctools.js?v=888ff710"></script> - <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../../genindex.html" /> - <link rel="search" title="Search" href="../../../search.html" /> - <link rel="next" title="Spawner" href="spawner.html" /> - <link rel="prev" title="Dynamics_Scenario" href="dynamics_scenario.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../../index.html" class="icon icon-home"> - openPASS - <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> -<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> -<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> -<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> -<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> -<li class="toctree-l4 current"><a class="current reference internal" href="#">Sensor_Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> -<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> - <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> - <li class="breadcrumb-item active">Sensor_Driver</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../../_sources/user_guide/sim_user_guide/components/sensor_driver.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="sensor-driver"> -<span id="id1"></span><h1>Sensor_Driver<a class="headerlink" href="#sensor-driver" title="Link to this heading">ïƒ</a></h1> -<p>This module collects and distributes data from the WorldInterface and AgentInterface concerning the own vehicle, traffic rule -and geometry information and surrounding object. It creates a data struct to store the world and agent data of the own vehicle, -traffic rule and geometry information, other objects and surrounding vehicles.</p> -<section id="components-of-the-module"> -<h2>Components of the module<a class="headerlink" href="#components-of-the-module" title="Link to this heading">ïƒ</a></h2> -<p>The information collected by SensorDriver consists of generally four different data structs:</p> -<ul class="simple"> -<li><p><a class="reference internal" href="#sensor-driver-own-vehicle-states"><span class="std std-ref">OwnVehicleStates</span></a> includes all information about the vehicle of the driver (e.g. speed, acceleration, …)</p></li> -<li><p><a class="reference internal" href="#sensor-driver-traffic-rule-information"><span class="std std-ref">TrafficRuleInformation</span></a> includes information about the static environment (e.g. traffic signs, lane markings, …)</p></li> -<li><p><a class="reference internal" href="#sensor-driver-geometry-information"><span class="std std-ref">GeometryInformation</span></a> includes information about surrounding lanes that describe its geometric features</p></li> -<li><p><a class="reference internal" href="#sensor-driver-surrounding-objects"><span class="std std-ref">SurroundingObjects</span></a> includes information about objects surrounding the own agent as seen by the driver</p></li> -</ul> -<section id="ownvehiclestates"> -<span id="sensor-driver-own-vehicle-states"></span><h3>OwnVehicleStates<a class="headerlink" href="#ownvehiclestates" title="Link to this heading">ïƒ</a></h3> -<p>The Information of the own vehicle are based on the following general <strong>struct OwnVehicleInformation</strong> :</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Variable</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -<th class="head"><p>Default value</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>absoluteVelocity</p></td> -<td><p>Double</p></td> -<td><p>m/s</p></td> -<td><p>Velocity of agent</p></td> -<td><p>-999</p></td> -</tr> -<tr class="row-odd"><td><p>acceleration</p></td> -<td><p>Double</p></td> -<td><p>m/s²</p></td> -<td><p>Acceleration of agent</p></td> -<td><p>-999</p></td> -</tr> -<tr class="row-even"><td><p>lateralPosition</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>t-coordinate</p></td> -<td><p>-999</p></td> -</tr> -<tr class="row-odd"><td><p>heading</p></td> -<td><p>Double</p></td> -<td><p>rad</p></td> -<td><p>Heading relative to lane</p></td> -<td><p>-999</p></td> -</tr> -<tr class="row-even"><td><p>steeringWheelAngle</p></td> -<td><p>Double</p></td> -<td><p>rad</p></td> -<td><p>Angle of the steering wheel</p></td> -<td><p>-999</p></td> -</tr> -<tr class="row-odd"><td><p>distanceToLaneBoundaryLeft</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Distance between the left front point and the left boundary of the lane it is in</p></td> -<td><p>-999</p></td> -</tr> -<tr class="row-even"><td><p>distanceToLaneBoundaryRight</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Distance between the right front point and the right boundary of the lane it is in</p></td> -<td><p>-999</p></td> -</tr> -<tr class="row-odd"><td><p>collision</p></td> -<td><p>Boolean</p></td> -<td></td> -<td><p>Whether this agent has collided with another object</p></td> -<td><p>false</p></td> -</tr> -</tbody> -</table> -</section> -<section id="trafficruleinformation"> -<span id="sensor-driver-traffic-rule-information"></span><h3>TrafficRuleInformation<a class="headerlink" href="#trafficruleinformation" title="Link to this heading">ïƒ</a></h3> -<p>The struct TrafficRuleInformation contains infrastructure information of surrounding lanes that are used to establish traffic rules.</p> -<p>The general structure is shown in the following table.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Variable</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>laneLeft</p></td> -<td><p>Data about the lane to left (in driving direction) of the mainLane</p></td> -</tr> -<tr class="row-odd"><td><p>laneEgo</p></td> -<td><p>Data about the lane the where the middle of the front of the agent is (i.e. mainLane)</p></td> -</tr> -<tr class="row-even"><td><p>laneRight</p></td> -<td><p>Data about the lane to right (in driving direction) of the mainLane</p></td> -</tr> -<tr class="row-odd"><td><p>laneMarkingsLeft</p></td> -<td><p>List of lane markings on the left side of mainLane</p></td> -</tr> -<tr class="row-even"><td><p>laneMarkingsRight</p></td> -<td><p>List of lane markings on the right side of mainLane</p></td> -</tr> -<tr class="row-odd"><td><p>laneMarkingsLeftOfLeftLane</p></td> -<td><p>List of lane markings on the left side of lane to the left</p></td> -</tr> -<tr class="row-even"><td><p>laneMarkingsRightOfRightLane</p></td> -<td><p>List of lane markings on the right side of lane to the right</p></td> -</tr> -</tbody> -</table> -<p>The basis for the respective variables is the following general struct <strong>LaneInformationTrafficRules</strong>, which is used to trasport data of a lane concerning traffic rules as seen by the driver.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Variable</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>trafficSigns</p></td> -<td><p>Vector of all traffic signs valid for this lane inside the visibility distance</p></td> -</tr> -<tr class="row-odd"><td><p>trafficLights</p></td> -<td><p>Vector of all traffic lights valid for this lane inside the visibility distance</p></td> -</tr> -</tbody> -</table> -</section> -<section id="geometryinformation"> -<span id="sensor-driver-geometry-information"></span><h3>GeometryInformation<a class="headerlink" href="#geometryinformation" title="Link to this heading">ïƒ</a></h3> -<p>The struct GeometryInformation contains infrastructure information of surrounding lanes that describe its geometric features.</p> -<p>The general structure is shown in the following table.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Variable</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>visibilityDistance</p></td> -<td><p>Current maximum visibility distance as specified by the world</p></td> -</tr> -<tr class="row-odd"><td><p>laneLeft</p></td> -<td><p>Data about the lane to left (in driving direction) of the mainLane</p></td> -</tr> -<tr class="row-even"><td><p>laneEgo</p></td> -<td><p>Data about the lane the where the middle of the front of the agent is (i.e. mainLane)</p></td> -</tr> -<tr class="row-odd"><td><p>laneRight</p></td> -<td><p>Data about the lane to right (in driving direction) of the mainLane</p></td> -</tr> -</tbody> -</table> -<p>The basis for the respective variables is the following general struct <strong>LaneInformationGeometry</strong>, which is used to transport data of a lane concerning its geometric features as seen by the driver.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Variable</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -<th class="head"><p>Default value</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>exists</p></td> -<td><p>Boolean</p></td> -<td></td> -<td><p>Whether there is a lane on this position</p></td> -<td><p>false</p></td> -</tr> -<tr class="row-odd"><td><p>curvature</p></td> -<td><p>Double</p></td> -<td><p>1/m</p></td> -<td><p>Curvature at current s position (default if not existing)</p></td> -<td><p>-999</p></td> -</tr> -<tr class="row-even"><td><p>width</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Width at current s position (default if not existing)</p></td> -<td><p>-999</p></td> -</tr> -<tr class="row-odd"><td><p>distanceToEndOfLane</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Distance from current position to the end of the lane or -infinity if the end is farther away than the visibility distance</p></td> -<td><p>-999</p></td> -</tr> -</tbody> -</table> -</section> -<section id="surroundingobjects"> -<span id="sensor-driver-surrounding-objects"></span><h3>SurroundingObjects<a class="headerlink" href="#surroundingobjects" title="Link to this heading">ïƒ</a></h3> -<p>This struct SurroundingObjects contains data of the objects surrounding the own agent as seen by the driver. For all cases mainLaneId is used as own lane.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Variable</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>objectFront</p></td> -<td><p>Next object in the same lane</p></td> -</tr> -<tr class="row-odd"><td><p>objectRear</p></td> -<td><p>Closest object behind the agent in the same lane</p></td> -</tr> -<tr class="row-even"><td><p>objectFrontLeft</p></td> -<td><p>Next object in the lane to the left</p></td> -</tr> -<tr class="row-odd"><td><p>objectRearLeft</p></td> -<td><p>Closest object behind the agent in the lane to the left</p></td> -</tr> -<tr class="row-even"><td><p>objectFrontRight</p></td> -<td><p>Next object in the lane to the right</p></td> -</tr> -<tr class="row-odd"><td><p>objectRearRight</p></td> -<td><p>Closest object behind the agent in the lane to the right</p></td> -</tr> -</tbody> -</table> -<p>The basis for the respective variables is the following general struct <strong>ObjectInformation</strong>, which is used to transport data of an object as seen by the driver:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Variable</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -<th class="head"><p>Default value</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>id</p></td> -<td><p>Integer</p></td> -<td></td> -<td><p>Id of the object</p></td> -<td><p>-1 (not existing)</p></td> -</tr> -<tr class="row-odd"><td><p>exist</p></td> -<td><p>Boolean</p></td> -<td></td> -<td><p>False if there is no object in this position</p></td> -<td><p>false</p></td> -</tr> -<tr class="row-even"><td><p>isStatic</p></td> -<td><p>Boolean</p></td> -<td></td> -<td><p>True if stationary object, false if agent</p></td> -<td><p>false</p></td> -</tr> -<tr class="row-odd"><td><p>absoluteVelocity</p></td> -<td><p>Double</p></td> -<td><p>m/s</p></td> -<td><p>Absolute velocity of the agent</p></td> -<td><p>-999 (object is not an agent)</p></td> -</tr> -<tr class="row-even"><td><p>acceleration</p></td> -<td><p>Double</p></td> -<td><p>m/s²</p></td> -<td><p>Acceleration of the agent</p></td> -<td><p>-999 (object is not an agent)</p></td> -</tr> -<tr class="row-odd"><td><p>heading</p></td> -<td><p>Double</p></td> -<td><p>rad</p></td> -<td><p>Heading relative to the street</p></td> -<td><p>-999 (not existing)</p></td> -</tr> -<tr class="row-even"><td><p>length</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Length of object</p></td> -<td><p>-999 (not existing)</p></td> -</tr> -<tr class="row-odd"><td><p>width</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Width of object</p></td> -<td><p>-999 (not existing)</p></td> -</tr> -<tr class="row-even"><td><p>height</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Heigth of object</p></td> -<td><p>-999 (not existing)</p></td> -</tr> -<tr class="row-odd"><td><p>relativeLongitudinalDistance</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Relative distance along the road (i.e. in direction s) between own agent and object</p></td> -<td><p>-999 (not existing)</p></td> -</tr> -<tr class="row-even"><td><p>relativeLateralDistance</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Relative distance at right angle to the road (i.e in direction t) between own agent and object</p></td> -<td><p>-999 (not existing)</p></td> -</tr> -</tbody> -</table> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="dynamics_scenario.html" class="btn btn-neutral float-left" title="Dynamics_Scenario" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="spawner.html" class="btn btn-neutral float-right" title="Spawner" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Sensor_Driver — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../../_static/doctools.js?v=888ff710"></script> + <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../../genindex.html" /> + <link rel="search" title="Search" href="../../../search.html" /> + <link rel="next" title="Spawner" href="spawner.html" /> + <link rel="prev" title="Dynamics_Scenario" href="dynamics_scenario.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../../index.html" class="icon icon-home"> + openPASS + <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> +<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> +<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> +<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> +<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> +<li class="toctree-l4 current"><a class="current reference internal" href="#">Sensor_Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> +<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> + <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> + <li class="breadcrumb-item active">Sensor_Driver</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../../_sources/user_guide/sim_user_guide/components/sensor_driver.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="sensor-driver"> +<span id="id1"></span><h1>Sensor_Driver<a class="headerlink" href="#sensor-driver" title="Link to this heading">ïƒ</a></h1> +<p>This module collects and distributes data from the WorldInterface and AgentInterface concerning the own vehicle, traffic rule +and geometry information and surrounding object. It creates a data struct to store the world and agent data of the own vehicle, +traffic rule and geometry information, other objects and surrounding vehicles.</p> +<section id="components-of-the-module"> +<h2>Components of the module<a class="headerlink" href="#components-of-the-module" title="Link to this heading">ïƒ</a></h2> +<p>The information collected by SensorDriver consists of generally four different data structs:</p> +<ul class="simple"> +<li><p><a class="reference internal" href="#sensor-driver-own-vehicle-states"><span class="std std-ref">OwnVehicleStates</span></a> includes all information about the vehicle of the driver (e.g. speed, acceleration, …)</p></li> +<li><p><a class="reference internal" href="#sensor-driver-traffic-rule-information"><span class="std std-ref">TrafficRuleInformation</span></a> includes information about the static environment (e.g. traffic signs, lane markings, …)</p></li> +<li><p><a class="reference internal" href="#sensor-driver-geometry-information"><span class="std std-ref">GeometryInformation</span></a> includes information about surrounding lanes that describe its geometric features</p></li> +<li><p><a class="reference internal" href="#sensor-driver-surrounding-objects"><span class="std std-ref">SurroundingObjects</span></a> includes information about objects surrounding the own agent as seen by the driver</p></li> +</ul> +<section id="ownvehiclestates"> +<span id="sensor-driver-own-vehicle-states"></span><h3>OwnVehicleStates<a class="headerlink" href="#ownvehiclestates" title="Link to this heading">ïƒ</a></h3> +<p>The Information of the own vehicle are based on the following general <strong>struct OwnVehicleInformation</strong> :</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Variable</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +<th class="head"><p>Default value</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>absoluteVelocity</p></td> +<td><p>Double</p></td> +<td><p>m/s</p></td> +<td><p>Velocity of agent</p></td> +<td><p>-999</p></td> +</tr> +<tr class="row-odd"><td><p>acceleration</p></td> +<td><p>Double</p></td> +<td><p>m/s²</p></td> +<td><p>Acceleration of agent</p></td> +<td><p>-999</p></td> +</tr> +<tr class="row-even"><td><p>lateralPosition</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>t-coordinate</p></td> +<td><p>-999</p></td> +</tr> +<tr class="row-odd"><td><p>heading</p></td> +<td><p>Double</p></td> +<td><p>rad</p></td> +<td><p>Heading relative to lane</p></td> +<td><p>-999</p></td> +</tr> +<tr class="row-even"><td><p>steeringWheelAngle</p></td> +<td><p>Double</p></td> +<td><p>rad</p></td> +<td><p>Angle of the steering wheel</p></td> +<td><p>-999</p></td> +</tr> +<tr class="row-odd"><td><p>distanceToLaneBoundaryLeft</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Distance between the left front point and the left boundary of the lane it is in</p></td> +<td><p>-999</p></td> +</tr> +<tr class="row-even"><td><p>distanceToLaneBoundaryRight</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Distance between the right front point and the right boundary of the lane it is in</p></td> +<td><p>-999</p></td> +</tr> +<tr class="row-odd"><td><p>collision</p></td> +<td><p>Boolean</p></td> +<td></td> +<td><p>Whether this agent has collided with another object</p></td> +<td><p>false</p></td> +</tr> +</tbody> +</table> +</section> +<section id="trafficruleinformation"> +<span id="sensor-driver-traffic-rule-information"></span><h3>TrafficRuleInformation<a class="headerlink" href="#trafficruleinformation" title="Link to this heading">ïƒ</a></h3> +<p>The struct TrafficRuleInformation contains infrastructure information of surrounding lanes that are used to establish traffic rules.</p> +<p>The general structure is shown in the following table.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Variable</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>laneLeft</p></td> +<td><p>Data about the lane to left (in driving direction) of the mainLane</p></td> +</tr> +<tr class="row-odd"><td><p>laneEgo</p></td> +<td><p>Data about the lane the where the middle of the front of the agent is (i.e. mainLane)</p></td> +</tr> +<tr class="row-even"><td><p>laneRight</p></td> +<td><p>Data about the lane to right (in driving direction) of the mainLane</p></td> +</tr> +<tr class="row-odd"><td><p>laneMarkingsLeft</p></td> +<td><p>List of lane markings on the left side of mainLane</p></td> +</tr> +<tr class="row-even"><td><p>laneMarkingsRight</p></td> +<td><p>List of lane markings on the right side of mainLane</p></td> +</tr> +<tr class="row-odd"><td><p>laneMarkingsLeftOfLeftLane</p></td> +<td><p>List of lane markings on the left side of lane to the left</p></td> +</tr> +<tr class="row-even"><td><p>laneMarkingsRightOfRightLane</p></td> +<td><p>List of lane markings on the right side of lane to the right</p></td> +</tr> +</tbody> +</table> +<p>The basis for the respective variables is the following general struct <strong>LaneInformationTrafficRules</strong>, which is used to trasport data of a lane concerning traffic rules as seen by the driver.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Variable</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>trafficSigns</p></td> +<td><p>Vector of all traffic signs valid for this lane inside the visibility distance</p></td> +</tr> +<tr class="row-odd"><td><p>trafficLights</p></td> +<td><p>Vector of all traffic lights valid for this lane inside the visibility distance</p></td> +</tr> +</tbody> +</table> +</section> +<section id="geometryinformation"> +<span id="sensor-driver-geometry-information"></span><h3>GeometryInformation<a class="headerlink" href="#geometryinformation" title="Link to this heading">ïƒ</a></h3> +<p>The struct GeometryInformation contains infrastructure information of surrounding lanes that describe its geometric features.</p> +<p>The general structure is shown in the following table.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Variable</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>visibilityDistance</p></td> +<td><p>Current maximum visibility distance as specified by the world</p></td> +</tr> +<tr class="row-odd"><td><p>laneLeft</p></td> +<td><p>Data about the lane to left (in driving direction) of the mainLane</p></td> +</tr> +<tr class="row-even"><td><p>laneEgo</p></td> +<td><p>Data about the lane the where the middle of the front of the agent is (i.e. mainLane)</p></td> +</tr> +<tr class="row-odd"><td><p>laneRight</p></td> +<td><p>Data about the lane to right (in driving direction) of the mainLane</p></td> +</tr> +</tbody> +</table> +<p>The basis for the respective variables is the following general struct <strong>LaneInformationGeometry</strong>, which is used to transport data of a lane concerning its geometric features as seen by the driver.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Variable</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +<th class="head"><p>Default value</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>exists</p></td> +<td><p>Boolean</p></td> +<td></td> +<td><p>Whether there is a lane on this position</p></td> +<td><p>false</p></td> +</tr> +<tr class="row-odd"><td><p>curvature</p></td> +<td><p>Double</p></td> +<td><p>1/m</p></td> +<td><p>Curvature at current s position (default if not existing)</p></td> +<td><p>-999</p></td> +</tr> +<tr class="row-even"><td><p>width</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Width at current s position (default if not existing)</p></td> +<td><p>-999</p></td> +</tr> +<tr class="row-odd"><td><p>distanceToEndOfLane</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Distance from current position to the end of the lane or +infinity if the end is farther away than the visibility distance</p></td> +<td><p>-999</p></td> +</tr> +</tbody> +</table> +</section> +<section id="surroundingobjects"> +<span id="sensor-driver-surrounding-objects"></span><h3>SurroundingObjects<a class="headerlink" href="#surroundingobjects" title="Link to this heading">ïƒ</a></h3> +<p>This struct SurroundingObjects contains data of the objects surrounding the own agent as seen by the driver. For all cases mainLaneId is used as own lane.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Variable</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>objectFront</p></td> +<td><p>Next object in the same lane</p></td> +</tr> +<tr class="row-odd"><td><p>objectRear</p></td> +<td><p>Closest object behind the agent in the same lane</p></td> +</tr> +<tr class="row-even"><td><p>objectFrontLeft</p></td> +<td><p>Next object in the lane to the left</p></td> +</tr> +<tr class="row-odd"><td><p>objectRearLeft</p></td> +<td><p>Closest object behind the agent in the lane to the left</p></td> +</tr> +<tr class="row-even"><td><p>objectFrontRight</p></td> +<td><p>Next object in the lane to the right</p></td> +</tr> +<tr class="row-odd"><td><p>objectRearRight</p></td> +<td><p>Closest object behind the agent in the lane to the right</p></td> +</tr> +</tbody> +</table> +<p>The basis for the respective variables is the following general struct <strong>ObjectInformation</strong>, which is used to transport data of an object as seen by the driver:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Variable</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +<th class="head"><p>Default value</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>id</p></td> +<td><p>Integer</p></td> +<td></td> +<td><p>Id of the object</p></td> +<td><p>-1 (not existing)</p></td> +</tr> +<tr class="row-odd"><td><p>exist</p></td> +<td><p>Boolean</p></td> +<td></td> +<td><p>False if there is no object in this position</p></td> +<td><p>false</p></td> +</tr> +<tr class="row-even"><td><p>isStatic</p></td> +<td><p>Boolean</p></td> +<td></td> +<td><p>True if stationary object, false if agent</p></td> +<td><p>false</p></td> +</tr> +<tr class="row-odd"><td><p>absoluteVelocity</p></td> +<td><p>Double</p></td> +<td><p>m/s</p></td> +<td><p>Absolute velocity of the agent</p></td> +<td><p>-999 (object is not an agent)</p></td> +</tr> +<tr class="row-even"><td><p>acceleration</p></td> +<td><p>Double</p></td> +<td><p>m/s²</p></td> +<td><p>Acceleration of the agent</p></td> +<td><p>-999 (object is not an agent)</p></td> +</tr> +<tr class="row-odd"><td><p>heading</p></td> +<td><p>Double</p></td> +<td><p>rad</p></td> +<td><p>Heading relative to the street</p></td> +<td><p>-999 (not existing)</p></td> +</tr> +<tr class="row-even"><td><p>length</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Length of object</p></td> +<td><p>-999 (not existing)</p></td> +</tr> +<tr class="row-odd"><td><p>width</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Width of object</p></td> +<td><p>-999 (not existing)</p></td> +</tr> +<tr class="row-even"><td><p>height</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Heigth of object</p></td> +<td><p>-999 (not existing)</p></td> +</tr> +<tr class="row-odd"><td><p>relativeLongitudinalDistance</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Relative distance along the road (i.e. in direction s) between own agent and object</p></td> +<td><p>-999 (not existing)</p></td> +</tr> +<tr class="row-even"><td><p>relativeLateralDistance</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Relative distance at right angle to the road (i.e in direction t) between own agent and object</p></td> +<td><p>-999 (not existing)</p></td> +</tr> +</tbody> +</table> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="dynamics_scenario.html" class="btn btn-neutral float-left" title="Dynamics_Scenario" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="spawner.html" class="btn btn-neutral float-right" title="Spawner" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/sim_user_guide/components/spawner.html b/content/html/user_guide/sim_user_guide/components/spawner.html index 2a94ab5373d3be126899dd93312ff5a599570fa8..2d37010a0190057c6dc495c459859c1329126cf4 100644 --- a/content/html/user_guide/sim_user_guide/components/spawner.html +++ b/content/html/user_guide/sim_user_guide/components/spawner.html @@ -1,477 +1,478 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Spawner — openPASS Documentation</title> - <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../../_static/doctools.js?v=888ff710"></script> - <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../../genindex.html" /> - <link rel="search" title="Search" href="../../../search.html" /> - <link rel="next" title="VehicleComponents" href="vehicle.html" /> - <link rel="prev" title="Sensor_Driver" href="sensor_driver.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../../index.html" class="icon icon-home"> - openPASS - <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> -<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> -<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> -<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> -<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> -<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> -<li class="toctree-l4 current"><a class="current reference internal" href="#">Spawner</a></li> -<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> - <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> - <li class="breadcrumb-item active">Spawner</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../../_sources/user_guide/sim_user_guide/components/spawner.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="spawner"> -<span id="components-spawner"></span><h1>Spawner<a class="headerlink" href="#spawner" title="Link to this heading">ïƒ</a></h1> -<p>Spawners are responsible to populate the world. -In order to do so, several spawners can be used.</p> -<section id="prerunspawner"> -<span id="components-prerunspawner"></span><h2>PreRunSpawner<a class="headerlink" href="#prerunspawner" title="Link to this heading">ïƒ</a></h2> -<p>The PreRunSpawner is responsible for populating the scenery/world with Common-Agents before the simulator starts. -This Spawner only acts once before the simulator starts and is not active during the simulation run. -The PreRunSpawner needs a list of SpawnZones that define where it will spawn agents and a list of weighted <a class="reference internal" href="#components-trafficgroups"><span class="std std-ref">TrafficGroups</span></a> that defines the type and parameters of the spawned agents. -The SpawnZones have the following parameters:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Parameter</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>optional</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Roads</p></td> -<td><p>StringVector</p></td> -<td></td> -<td><p>no</p></td> -<td><p>List of linked Roads on which to spawn Agents. -Intermediate roads may be omitted. -If a road is not linked to the previous in the list (or doesn’t exist), this road and the roads after it are ignored. -This means in particular, that if the first road in the list does not exist, the entire SpawnZone is ignored.</p></td> -</tr> -<tr class="row-odd"><td><p>Lanes</p></td> -<td><p>IntVector</p></td> -<td></td> -<td><p>yes</p></td> -<td><p>The LaneIDs of the Lanes of the Road on which to spawn Agents (given on SStart). -Inexistent lanes are ignored. -If omitted all lanes are used.</p></td> -</tr> -<tr class="row-even"><td><p>SStart</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>yes</p></td> -<td><p>The S position on the first road specifying the start of the range within which to spawn Agents -If omitted the whole road is included</p></td> -</tr> -<tr class="row-odd"><td><p>SEnd</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>yes</p></td> -<td><p>The S position on the last road specifying the start of the range within which to spawn Agents</p></td> -</tr> -<tr class="row-even"><td><p>SLength</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>yes</p></td> -<td><p>Length of spawned area calculated from SStart -This is ignored if SEnd is explicitly defined. -If neither is given the whole road is included</p></td> -</tr> -</tbody> -</table> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Lanes of two SpawnZones should not intersect each other. The behavior in this case is undefined. The PreRunSpawner is not required to fill the SpawnZones in the given order.</p> -</div> -<p>SStart, SEnd and SLength may be out of range for the road. -In this case they are cropped such that the spawn range is maximum within the road’s bounds. -It is also possible to define the MinimumSeparationBuffer either as fixed parameter of type double or as stochastic distribution:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Parameter</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>optional</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>MinimumSeparationBuffer</p></td> -<td><p>Double (or any stochastic distribution)</p></td> -<td><p>m</p></td> -<td><p>yes</p></td> -<td><p>Required minimum distance on lane between two agents</p></td> -</tr> -</tbody> -</table> -<p>If the MinimumSeparationBuffer isn’t defined the default value of 5m is used.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"DefaultPreRunCommon"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><List</span><span class="w"> </span><span class="na">Name=</span><span class="s">"SpawnZones"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ListItem></span> -<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Roads"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><IntVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Lanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"-1,-2,-3,-4,-5"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"SStart"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"SEnd"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1000.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ListItem></span> -<span class="w"> </span><span class="nt"></List></span> -<span class="w"> </span><span class="nt"><List</span><span class="w"> </span><span class="na">Name=</span><span class="s">"TrafficGroups"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ListItem></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Weight"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"4"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Reference</span><span class="w"> </span><span class="na">Type=</span><span class="s">"TrafficGroup"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"LightVehicles"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ListItem></span> -<span class="w"> </span><span class="nt"><ListItem></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Weight"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Reference</span><span class="w"> </span><span class="na">Type=</span><span class="s">"TrafficGroup"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"HeavyVehicles"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ListItem></span> -<span class="w"> </span><span class="nt"></List></span> -<span class="w"> </span><span class="nt"><NormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"MinimumSeparationBuffer"</span><span class="w"> </span><span class="na">Mean=</span><span class="s">"3.47"</span><span class="w"> </span><span class="na">SD=</span><span class="s">"1.13"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"2.0"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"6.0"</span><span class="nt">/></span> -<span class="nt"></Profile></span> -</pre></div> -</div> -<p>The PreRunCommonSpawner will spawn common agents on the specified Lanes of the specified continuous Road sequence (= RoadStream) inside the specified s interval based on the parameters of the TrafficGroups. -The following restrictions apply:</p> -<ul> -<li><dl class="simple"> -<dt>The PreRunCommonSpawner only spawns on the following <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> lane types:</dt><dd><ul class="simple"> -<li><p>Driving</p></li> -<li><p>OnRamp</p></li> -<li><p>OffRamp</p></li> -<li><p>ConnectingRamp</p></li> -</ul> -</dd> -</dl> -</li> -<li><p>If the ScenarioSpawner spawned Scenario Agents (including the Ego agent) before this Spawner is triggered (in the intended order of these Spawners), ranges between the Scenario Agents are invalid for spawning by this Spawner. -The spawn ranges will only be augmented by Scenario Agents on the same Lane. -As such, there are 7 different potential scenarios that may arise in terms of how the valid spawn ranges of the spawner may be impacted:</p> -<ol class="arabic"> -<li><p><strong>Two Scenario Agents on the same Lane</strong></p> -<p>One before S-Start position and one after S-End position: -This invalidates the entirety of the spawning range; no agents may be spawned here</p> -</li> -<li><p><strong>Two Scenario Agents on the same Lane</strong></p> -<p>One between S-Start position and S-End position and one either before S-Start or after S-End: -The only valid spawn range is that on the opposite side of the in-specified-range Agent from the outside-specified-range agent</p> -</li> -<li><p><strong>Two Scenario Agents on the same Lane</strong></p> -<p>Both within the specified S-Start and S-End positions -The valid spawn ranges are between S-Start and the first car and between the second car and S-End</p> -</li> -<li><p><strong>Two Scenario Agents on the same Lane</strong></p> -<p>Both outside the specified S-Start and S-End positions on the same side (both before S-Start or both after S-End): -The specified spawn range is entirely valid</p> -</li> -<li><p><strong>One Scenario Agent on the same Lane</strong></p> -<p>Within specified S-Start and S-End positions: -The valid spawn ranges include all but the bounds of the Agent within the specified S-Start and S-End positions</p> -</li> -<li><p><strong>One Scenario Agent on the same Lane</strong></p> -<p>Outside specified S-Start and S-End positions: -The specified spawn range is entirely valid</p> -</li> -<li><p><strong>No Scenario Agents on the same Lane</strong></p> -<p>The specified spawn range is entirely valid</p> -</li> -</ol> -</li> -<li><p>If only non-existent lanes on SStart are specified, no spawning will occur</p></li> -<li><p>If some specified lanes exist and some are non-existent, spawning will occur for the lanes which do exist</p></li> -</ul> -<p>Once the spawning ranges are determined the PreRunSpawner will spawn for each spawning area based on the following logic:</p> -<ol class="arabic simple"> -<li><p>First the agentprofile needs to be determined. If the current spawn position evaluate to a right lane, the pool from which the agentprofile is drafted is extended by all traffic groups which contain the RightLaneOnly flag set to true.</p></li> -<li><p>Then the time gap between the new agent and the closest existing agent is sampled.</p></li> -<li><p>Afterwards the velocity of the new agent is being sampled under consideration of the homogeneity.</p></li> -<li><p>The gap and velocity are used to calculate the distance between the new agent and the next agent in this spawnarea. Here a minimum distance of 5m between agents is required.</p></li> -<li><p>A random route is sampled starting at the appropriate road</p></li> -<li><p>Based on the distance and the velocity the TTC (2s) conditions are evaluated.If the TTC is critical the spawn velocity is reduced to fulfill the TTC requirements.</p></li> -<li><p>As a final step the spawnzone evaluates the spawncoordinates. If they are valid the agent is created, else the spawnzone moves on to the next spawning range.</p></li> -</ol> -</section> -<section id="runtimespawner"> -<span id="components-runtimespawner"></span><h2>RuntimeSpawner<a class="headerlink" href="#runtimespawner" title="Link to this heading">ïƒ</a></h2> -<p>The RuntimeSpawner (included in library “SpawnerRuntimeCommon_OSIâ€) is responsible for maintaining a populated scenery throughout the simulation runtime. -It acts at each timestep throughout the simulation run and attempts to spawn Common Agents at the specified location(s). -The RuntimeSpawner needs a list of SpawnZones that define where it will spawn agents and a list of weighted <a class="reference internal" href="#components-trafficgroups"><span class="std std-ref">TrafficGroups</span></a> that defines the type and parameters of the spawned agents. -The SpawnZones have the following parameters:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Parameter</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Roads</p></td> -<td><p>StringVector</p></td> -<td></td> -<td><p>The RoadIDs of the Roads on which to spawn Agents</p></td> -</tr> -<tr class="row-odd"><td><p>Lanes</p></td> -<td><p>IntVector</p></td> -<td></td> -<td><p>The LaneIDs of the Lanes of the Road on which to spawn Agents</p></td> -</tr> -<tr class="row-even"><td><p>S-Position</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>The S position specifying at which point to spawn Agents</p></td> -</tr> -</tbody> -</table> -<p>It is also possible to define the MinimumSeparationBuffer either as fixed parameter of type double or as stochastic distribution:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Parameter</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>optional</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>MinimumSeparationBuffer</p></td> -<td><p>Double (or any stochastic distribution)</p></td> -<td><p>m</p></td> -<td><p>yes</p></td> -<td><p>Required minimum distance on lane between two agents</p></td> -</tr> -</tbody> -</table> -<p>If the MinimumSeparationBuffer isn’t defined the default value of 5m is used.</p> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"DefaultRuntimeCommon"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><List</span><span class="w"> </span><span class="na">Name=</span><span class="s">"SpawnPoints"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ListItem></span> -<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Roads"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><IntVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Lanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"-1,-2,-3,-4,-5"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"SCoordinate"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ListItem></span> -<span class="w"> </span><span class="nt"></List></span> -<span class="w"> </span><span class="nt"><List</span><span class="w"> </span><span class="na">Name=</span><span class="s">"TrafficGroups"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ListItem></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Weight"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"4"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Reference</span><span class="w"> </span><span class="na">Type=</span><span class="s">"TrafficGroup"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"LightVehicles"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ListItem></span> -<span class="w"> </span><span class="nt"><ListItem></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Weight"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Reference</span><span class="w"> </span><span class="na">Type=</span><span class="s">"TrafficGroup"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"HeavyVehicles"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ListItem></span> -<span class="w"> </span><span class="nt"></List></span> -<span class="w"> </span><span class="nt"><NormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"MinimumSeparationBuffer"</span><span class="w"> </span><span class="na">Mean=</span><span class="s">"3.47"</span><span class="w"> </span><span class="na">SD=</span><span class="s">"1.13"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"2.0"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"6.0"</span><span class="nt">/></span> -<span class="nt"></Profile></span> -</pre></div> -</div> -<p>The RuntimeSpawner will spawn based on the following logic:</p> -<ul class="simple"> -<li><p>First the agentprofile needs to be determined. If the current spawn position evaluates to a right lane, the pool from which the agentprofile is drafted is extended by all traffic groups which contain the RightLaneOnly flag set to true.</p></li> -<li><p>Then the gap between the spawn time of the new agent and the previously spawned agent is sampled.</p></li> -<li><p>Afterwards the velocity of the new agent is being sampled under consideration of the homogeneity.</p></li> -<li><p>A random route is sampled starting at the appropriate road</p></li> -<li><p>Once the timely gap expires, the spawnpoint evaluate if the TTC (2s) conditions and a minimum required distance between agents (5m) are met. If the TTC is critical the spawn velocity is reduced to fullfill the TTC requriements. If the minimum distance is not fullfilled, the agent will be held back.</p></li> -<li><p>If all requirements were fullfilled the agent is spawned.</p></li> -</ul> -<p>The RuntimeSpawner only spawns on the following <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> lane types: Driving, OnRamp</p> -</section> -<section id="trafficgroups"> -<span id="components-trafficgroups"></span><h2>TrafficGroups<a class="headerlink" href="#trafficgroups" title="Link to this heading">ïƒ</a></h2> -<p>Both the <a class="reference internal" href="#components-prerunspawner"><span class="std std-ref">PreRunSpawner</span></a> and the <a class="reference internal" href="#components-runtimespawner"><span class="std std-ref">RuntimeSpawner</span></a> need one or more TrafficGroup. -These are typically defined in a separate ProfileGroup of type “TrafficGroup†and then reference by the spawner profile. -In this way both spawner can use the same TrafficGroups.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Parameter</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>AgentProfiles</p></td> -<td><p><List></p></td> -<td></td> -<td><p>A set of <ListItem>s which define potential AgentProfile values for the Agents spawned in the SpawnArea and the probability at which the TrafficVolume will be selected</p></td> -</tr> -<tr class="row-odd"><td><p>Velocity</p></td> -<td><p>Distribution</p></td> -<td><p>m/s</p></td> -<td><p>A stochastic distribution describing the velocity of the spawned Agents</p></td> -</tr> -<tr class="row-even"><td><p>TGap</p></td> -<td><p>Distribution</p></td> -<td><p>s</p></td> -<td><p>A stochastic distribution describing the time gap between spawned Agents</p></td> -</tr> -<tr class="row-odd"><td><p>Homogeneity</p></td> -<td><p>DoubleVector</p></td> -<td></td> -<td><p>OPTIONAL: A vector describing the velocity increments for left lanes</p></td> -</tr> -<tr class="row-even"><td><p>RightLaneOnly</p></td> -<td><p>Bool</p></td> -<td></td> -<td><p>OPTIONAL: A flag determining whether this TrafficGroup can only be applied to the right most lane</p></td> -</tr> -</tbody> -</table> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"LightVehicles"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><List</span><span class="w"> </span><span class="na">Name=</span><span class="s">"AgentProfiles"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><ListItem></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Name"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"LuxuryClassCarAgent"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Weight"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.4"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ListItem></span> -<span class="w"> </span><span class="nt"><ListItem></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Name"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"MiddleClassCarAgent"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Weight"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.6"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></ListItem></span> -<span class="w"> </span><span class="nt"></List></span> -<span class="w"> </span><span class="nt"><NormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Velocity"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"43.685"</span><span class="w"> </span><span class="na">Mean=</span><span class="s">"31.475"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"19.265"</span><span class="w"> </span><span class="na">SD=</span><span class="s">"6.105"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><LogNormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"TGap"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"80"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">Mu=</span><span class="s">"1.5"</span><span class="w"> </span><span class="na">Sigma=</span><span class="s">"1.7"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><DoubleVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Homogeneity"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.820, 1.0"</span><span class="nt">/></span> -<span class="nt"></Profile></span> -</pre></div> -</div> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="sensor_driver.html" class="btn btn-neutral float-left" title="Sensor_Driver" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="vehicle.html" class="btn btn-neutral float-right" title="VehicleComponents" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Spawner — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../../_static/doctools.js?v=888ff710"></script> + <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../../genindex.html" /> + <link rel="search" title="Search" href="../../../search.html" /> + <link rel="next" title="VehicleComponents" href="vehicle.html" /> + <link rel="prev" title="Sensor_Driver" href="sensor_driver.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../../index.html" class="icon icon-home"> + openPASS + <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> +<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> +<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> +<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> +<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> +<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> +<li class="toctree-l4 current"><a class="current reference internal" href="#">Spawner</a></li> +<li class="toctree-l4"><a class="reference internal" href="vehicle.html">VehicleComponents</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> + <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> + <li class="breadcrumb-item active">Spawner</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../../_sources/user_guide/sim_user_guide/components/spawner.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="spawner"> +<span id="components-spawner"></span><h1>Spawner<a class="headerlink" href="#spawner" title="Link to this heading">ïƒ</a></h1> +<p>Spawners are responsible to populate the world. +In order to do so, several spawners can be used.</p> +<section id="prerunspawner"> +<span id="components-prerunspawner"></span><h2>PreRunSpawner<a class="headerlink" href="#prerunspawner" title="Link to this heading">ïƒ</a></h2> +<p>The PreRunSpawner is responsible for populating the scenery/world with Common-Agents before the simulator starts. +This Spawner only acts once before the simulator starts and is not active during the simulation run. +The PreRunSpawner needs a list of SpawnZones that define where it will spawn agents and a list of weighted <a class="reference internal" href="#components-trafficgroups"><span class="std std-ref">TrafficGroups</span></a> that defines the type and parameters of the spawned agents. +The SpawnZones have the following parameters:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Parameter</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>optional</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Roads</p></td> +<td><p>StringVector</p></td> +<td></td> +<td><p>no</p></td> +<td><p>List of linked Roads on which to spawn Agents. +Intermediate roads may be omitted. +If a road is not linked to the previous in the list (or doesn’t exist), this road and the roads after it are ignored. +This means in particular, that if the first road in the list does not exist, the entire SpawnZone is ignored.</p></td> +</tr> +<tr class="row-odd"><td><p>Lanes</p></td> +<td><p>IntVector</p></td> +<td></td> +<td><p>yes</p></td> +<td><p>The LaneIDs of the Lanes of the Road on which to spawn Agents (given on SStart). +Inexistent lanes are ignored. +If omitted all lanes are used.</p></td> +</tr> +<tr class="row-even"><td><p>SStart</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>yes</p></td> +<td><p>The S position on the first road specifying the start of the range within which to spawn Agents +If omitted the whole road is included</p></td> +</tr> +<tr class="row-odd"><td><p>SEnd</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>yes</p></td> +<td><p>The S position on the last road specifying the start of the range within which to spawn Agents</p></td> +</tr> +<tr class="row-even"><td><p>SLength</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>yes</p></td> +<td><p>Length of spawned area calculated from SStart +This is ignored if SEnd is explicitly defined. +If neither is given the whole road is included</p></td> +</tr> +</tbody> +</table> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Lanes of two SpawnZones should not intersect each other. The behavior in this case is undefined. The PreRunSpawner is not required to fill the SpawnZones in the given order.</p> +</div> +<p>SStart, SEnd and SLength may be out of range for the road. +In this case they are cropped such that the spawn range is maximum within the road’s bounds. +It is also possible to define the MinimumSeparationBuffer either as fixed parameter of type double or as stochastic distribution:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Parameter</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>optional</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>MinimumSeparationBuffer</p></td> +<td><p>Double (or any stochastic distribution)</p></td> +<td><p>m</p></td> +<td><p>yes</p></td> +<td><p>Required minimum distance on lane between two agents</p></td> +</tr> +</tbody> +</table> +<p>If the MinimumSeparationBuffer isn’t defined the default value of 5m is used.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"DefaultPreRunCommon"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><List</span><span class="w"> </span><span class="na">Name=</span><span class="s">"SpawnZones"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ListItem></span> +<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Roads"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><IntVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Lanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"-1,-2,-3,-4,-5"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"SStart"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"SEnd"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1000.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ListItem></span> +<span class="w"> </span><span class="nt"></List></span> +<span class="w"> </span><span class="nt"><List</span><span class="w"> </span><span class="na">Name=</span><span class="s">"TrafficGroups"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ListItem></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Weight"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"4"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Reference</span><span class="w"> </span><span class="na">Type=</span><span class="s">"TrafficGroup"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"LightVehicles"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ListItem></span> +<span class="w"> </span><span class="nt"><ListItem></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Weight"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Reference</span><span class="w"> </span><span class="na">Type=</span><span class="s">"TrafficGroup"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"HeavyVehicles"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ListItem></span> +<span class="w"> </span><span class="nt"></List></span> +<span class="w"> </span><span class="nt"><NormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"MinimumSeparationBuffer"</span><span class="w"> </span><span class="na">Mean=</span><span class="s">"3.47"</span><span class="w"> </span><span class="na">SD=</span><span class="s">"1.13"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"2.0"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"6.0"</span><span class="nt">/></span> +<span class="nt"></Profile></span> +</pre></div> +</div> +<p>The PreRunCommonSpawner will spawn common agents on the specified Lanes of the specified continuous Road sequence (= RoadStream) inside the specified s interval based on the parameters of the TrafficGroups. +The following restrictions apply:</p> +<ul> +<li><dl class="simple"> +<dt>The PreRunCommonSpawner only spawns on the following <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> lane types:</dt><dd><ul class="simple"> +<li><p>Driving</p></li> +<li><p>OnRamp</p></li> +<li><p>OffRamp</p></li> +<li><p>ConnectingRamp</p></li> +</ul> +</dd> +</dl> +</li> +<li><p>If the ScenarioSpawner spawned Scenario Agents (including the Ego agent) before this Spawner is triggered (in the intended order of these Spawners), ranges between the Scenario Agents are invalid for spawning by this Spawner. +The spawn ranges will only be augmented by Scenario Agents on the same Lane. +As such, there are 7 different potential scenarios that may arise in terms of how the valid spawn ranges of the spawner may be impacted:</p> +<ol class="arabic"> +<li><p><strong>Two Scenario Agents on the same Lane</strong></p> +<p>One before S-Start position and one after S-End position: +This invalidates the entirety of the spawning range; no agents may be spawned here</p> +</li> +<li><p><strong>Two Scenario Agents on the same Lane</strong></p> +<p>One between S-Start position and S-End position and one either before S-Start or after S-End: +The only valid spawn range is that on the opposite side of the in-specified-range Agent from the outside-specified-range agent</p> +</li> +<li><p><strong>Two Scenario Agents on the same Lane</strong></p> +<p>Both within the specified S-Start and S-End positions +The valid spawn ranges are between S-Start and the first car and between the second car and S-End</p> +</li> +<li><p><strong>Two Scenario Agents on the same Lane</strong></p> +<p>Both outside the specified S-Start and S-End positions on the same side (both before S-Start or both after S-End): +The specified spawn range is entirely valid</p> +</li> +<li><p><strong>One Scenario Agent on the same Lane</strong></p> +<p>Within specified S-Start and S-End positions: +The valid spawn ranges include all but the bounds of the Agent within the specified S-Start and S-End positions</p> +</li> +<li><p><strong>One Scenario Agent on the same Lane</strong></p> +<p>Outside specified S-Start and S-End positions: +The specified spawn range is entirely valid</p> +</li> +<li><p><strong>No Scenario Agents on the same Lane</strong></p> +<p>The specified spawn range is entirely valid</p> +</li> +</ol> +</li> +<li><p>If only non-existent lanes on SStart are specified, no spawning will occur</p></li> +<li><p>If some specified lanes exist and some are non-existent, spawning will occur for the lanes which do exist</p></li> +</ul> +<p>Once the spawning ranges are determined the PreRunSpawner will spawn for each spawning area based on the following logic:</p> +<ol class="arabic simple"> +<li><p>First the agentprofile needs to be determined. If the current spawn position evaluate to a right lane, the pool from which the agentprofile is drafted is extended by all traffic groups which contain the RightLaneOnly flag set to true.</p></li> +<li><p>Then the time gap between the new agent and the closest existing agent is sampled.</p></li> +<li><p>Afterwards the velocity of the new agent is being sampled under consideration of the homogeneity.</p></li> +<li><p>The gap and velocity are used to calculate the distance between the new agent and the next agent in this spawnarea. Here a minimum distance of 5m between agents is required.</p></li> +<li><p>A random route is sampled starting at the appropriate road</p></li> +<li><p>Based on the distance and the velocity the TTC (2s) conditions are evaluated.If the TTC is critical the spawn velocity is reduced to fulfill the TTC requirements.</p></li> +<li><p>As a final step the spawnzone evaluates the spawncoordinates. If they are valid the agent is created, else the spawnzone moves on to the next spawning range.</p></li> +</ol> +</section> +<section id="runtimespawner"> +<span id="components-runtimespawner"></span><h2>RuntimeSpawner<a class="headerlink" href="#runtimespawner" title="Link to this heading">ïƒ</a></h2> +<p>The RuntimeSpawner (included in library “SpawnerRuntimeCommon_OSIâ€) is responsible for maintaining a populated scenery throughout the simulation runtime. +It acts at each timestep throughout the simulation run and attempts to spawn Common Agents at the specified location(s). +The RuntimeSpawner needs a list of SpawnZones that define where it will spawn agents and a list of weighted <a class="reference internal" href="#components-trafficgroups"><span class="std std-ref">TrafficGroups</span></a> that defines the type and parameters of the spawned agents. +The SpawnZones have the following parameters:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Parameter</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Roads</p></td> +<td><p>StringVector</p></td> +<td></td> +<td><p>The RoadIDs of the Roads on which to spawn Agents</p></td> +</tr> +<tr class="row-odd"><td><p>Lanes</p></td> +<td><p>IntVector</p></td> +<td></td> +<td><p>The LaneIDs of the Lanes of the Road on which to spawn Agents</p></td> +</tr> +<tr class="row-even"><td><p>S-Position</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>The S position specifying at which point to spawn Agents</p></td> +</tr> +</tbody> +</table> +<p>It is also possible to define the MinimumSeparationBuffer either as fixed parameter of type double or as stochastic distribution:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Parameter</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>optional</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>MinimumSeparationBuffer</p></td> +<td><p>Double (or any stochastic distribution)</p></td> +<td><p>m</p></td> +<td><p>yes</p></td> +<td><p>Required minimum distance on lane between two agents</p></td> +</tr> +</tbody> +</table> +<p>If the MinimumSeparationBuffer isn’t defined the default value of 5m is used.</p> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"DefaultRuntimeCommon"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><List</span><span class="w"> </span><span class="na">Name=</span><span class="s">"SpawnPoints"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ListItem></span> +<span class="w"> </span><span class="nt"><StringVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Roads"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><IntVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Lanes"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"-1,-2,-3,-4,-5"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"SCoordinate"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ListItem></span> +<span class="w"> </span><span class="nt"></List></span> +<span class="w"> </span><span class="nt"><List</span><span class="w"> </span><span class="na">Name=</span><span class="s">"TrafficGroups"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ListItem></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Weight"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"4"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Reference</span><span class="w"> </span><span class="na">Type=</span><span class="s">"TrafficGroup"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"LightVehicles"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ListItem></span> +<span class="w"> </span><span class="nt"><ListItem></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Weight"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Reference</span><span class="w"> </span><span class="na">Type=</span><span class="s">"TrafficGroup"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"HeavyVehicles"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ListItem></span> +<span class="w"> </span><span class="nt"></List></span> +<span class="w"> </span><span class="nt"><NormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"MinimumSeparationBuffer"</span><span class="w"> </span><span class="na">Mean=</span><span class="s">"3.47"</span><span class="w"> </span><span class="na">SD=</span><span class="s">"1.13"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"2.0"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"6.0"</span><span class="nt">/></span> +<span class="nt"></Profile></span> +</pre></div> +</div> +<p>The RuntimeSpawner will spawn based on the following logic:</p> +<ul class="simple"> +<li><p>First the agentprofile needs to be determined. If the current spawn position evaluates to a right lane, the pool from which the agentprofile is drafted is extended by all traffic groups which contain the RightLaneOnly flag set to true.</p></li> +<li><p>Then the gap between the spawn time of the new agent and the previously spawned agent is sampled.</p></li> +<li><p>Afterwards the velocity of the new agent is being sampled under consideration of the homogeneity.</p></li> +<li><p>A random route is sampled starting at the appropriate road</p></li> +<li><p>Once the timely gap expires, the spawnpoint evaluate if the TTC (2s) conditions and a minimum required distance between agents (5m) are met. If the TTC is critical the spawn velocity is reduced to fullfill the TTC requriements. If the minimum distance is not fullfilled, the agent will be held back.</p></li> +<li><p>If all requirements were fullfilled the agent is spawned.</p></li> +</ul> +<p>The RuntimeSpawner only spawns on the following <a class="reference external" href="https://www.asam.net/standards/detail/opendrive/">OpenDRIVE</a> lane types: Driving, OnRamp</p> +</section> +<section id="trafficgroups"> +<span id="components-trafficgroups"></span><h2>TrafficGroups<a class="headerlink" href="#trafficgroups" title="Link to this heading">ïƒ</a></h2> +<p>Both the <a class="reference internal" href="#components-prerunspawner"><span class="std std-ref">PreRunSpawner</span></a> and the <a class="reference internal" href="#components-runtimespawner"><span class="std std-ref">RuntimeSpawner</span></a> need one or more TrafficGroup. +These are typically defined in a separate ProfileGroup of type “TrafficGroup†and then reference by the spawner profile. +In this way both spawner can use the same TrafficGroups.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Parameter</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>AgentProfiles</p></td> +<td><p><List></p></td> +<td></td> +<td><p>A set of <ListItem>s which define potential AgentProfile values for the Agents spawned in the SpawnArea and the probability at which the TrafficVolume will be selected</p></td> +</tr> +<tr class="row-odd"><td><p>Velocity</p></td> +<td><p>Distribution</p></td> +<td><p>m/s</p></td> +<td><p>A stochastic distribution describing the velocity of the spawned Agents</p></td> +</tr> +<tr class="row-even"><td><p>TGap</p></td> +<td><p>Distribution</p></td> +<td><p>s</p></td> +<td><p>A stochastic distribution describing the time gap between spawned Agents</p></td> +</tr> +<tr class="row-odd"><td><p>Homogeneity</p></td> +<td><p>DoubleVector</p></td> +<td></td> +<td><p>OPTIONAL: A vector describing the velocity increments for left lanes</p></td> +</tr> +<tr class="row-even"><td><p>RightLaneOnly</p></td> +<td><p>Bool</p></td> +<td></td> +<td><p>OPTIONAL: A flag determining whether this TrafficGroup can only be applied to the right most lane</p></td> +</tr> +</tbody> +</table> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"LightVehicles"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><List</span><span class="w"> </span><span class="na">Name=</span><span class="s">"AgentProfiles"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><ListItem></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Name"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"LuxuryClassCarAgent"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Weight"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.4"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ListItem></span> +<span class="w"> </span><span class="nt"><ListItem></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Name"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"MiddleClassCarAgent"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Weight"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.6"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></ListItem></span> +<span class="w"> </span><span class="nt"></List></span> +<span class="w"> </span><span class="nt"><NormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Velocity"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"43.685"</span><span class="w"> </span><span class="na">Mean=</span><span class="s">"31.475"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"19.265"</span><span class="w"> </span><span class="na">SD=</span><span class="s">"6.105"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><LogNormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"TGap"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"80"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"0.5"</span><span class="w"> </span><span class="na">Mu=</span><span class="s">"1.5"</span><span class="w"> </span><span class="na">Sigma=</span><span class="s">"1.7"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><DoubleVector</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Homogeneity"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.820, 1.0"</span><span class="nt">/></span> +<span class="nt"></Profile></span> +</pre></div> +</div> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="sensor_driver.html" class="btn btn-neutral float-left" title="Sensor_Driver" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="vehicle.html" class="btn btn-neutral float-right" title="VehicleComponents" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/sim_user_guide/components/vehicle.html b/content/html/user_guide/sim_user_guide/components/vehicle.html index 0c7413496a28607d0ddf2a78c9a05724d4493780..73af370fc959aae3546197c029735bd6f7f717c3 100644 --- a/content/html/user_guide/sim_user_guide/components/vehicle.html +++ b/content/html/user_guide/sim_user_guide/components/vehicle.html @@ -1,1435 +1,1442 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>VehicleComponents — openPASS Documentation</title> - <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../../_static/doctools.js?v=888ff710"></script> - <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../../genindex.html" /> - <link rel="search" title="Search" href="../../../search.html" /> - <link rel="next" title="Simulator" href="../../../advanced_topics/20_simulator_advanced.html" /> - <link rel="prev" title="Spawner" href="spawner.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../../index.html" class="icon icon-home"> - openPASS - <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> -<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> -<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> -<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> -<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> -<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> -<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> -<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> -<li class="toctree-l4 current"><a class="current reference internal" href="#">VehicleComponents</a></li> -</ul> -</li> -</ul> -</li> -</ul> -</li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> - <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> - <li class="breadcrumb-item active">VehicleComponents</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../../_sources/user_guide/sim_user_guide/components/vehicle.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="vehiclecomponents"> -<span id="components-vehiclecomponents"></span><h1>VehicleComponents<a class="headerlink" href="#vehiclecomponents" title="Link to this heading">ïƒ</a></h1> -<section id="aeb"> -<span id="components-aeb"></span><h2>AEB<a class="headerlink" href="#aeb" title="Link to this heading">ïƒ</a></h2> -<p>The Autonomous Emergency Braking system checks if a collision is likely to occur in the near future and, if necessary, brakes to avoid the collision. -In each timestep, the system evaluates all objects detected by a Sensor and calculates the time to collision (TTC) for this object based on the perceived movement of the object. -If, for any object, the TTC is lower than the threshold of the component, then the component gets activated. The system deactivates if the TTC is larger than 1,5 times the threshold of the component.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>CollisionDetectionLongitudinalBoundary</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Additional length added the vehicle boundary when checking for collision detection</p></td> -</tr> -<tr class="row-odd"><td><p>CollisionDetectionLateralBoundary</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Additional width added the vehicle boundary when checking for collision detection</p></td> -</tr> -<tr class="row-even"><td><p>TTC</p></td> -<td><p>Double</p></td> -<td><p>s</p></td> -<td><p>Time to collision which is used to trigger AEB</p></td> -</tr> -<tr class="row-odd"><td><p>Acceleration</p></td> -<td><p>Double</p></td> -<td><p>m/s²</p></td> -<td><p>Braking acceleration when activated</p></td> -</tr> -</tbody> -</table> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"AEB"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Type=</span><span class="s">"AEB"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"AEB1"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"CollisionDetectionLongitudinalBoundary"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"4.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"CollisionDetectionLateralBoundary"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1.5"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"TTC"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"2.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Acceleration"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"-2"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Profile></span> -<span class="w"> </span>... -<span class="nt"></ProfileGroup></span> -</pre></div> -</div> -</section> -<section id="dynamicstrajectoryfollower"> -<span id="components-trajectoryfollower"></span><h2>DynamicsTrajectoryFollower<a class="headerlink" href="#dynamicstrajectoryfollower" title="Link to this heading">ïƒ</a></h2> -<p>This module forces agents to drive according to a specific trajectory. The trajectory is defined in the scenario. This module is disabled by default and is activated if a trajectory from <a class="reference external" href="https://www.asam.net/standards/detail/openscenario/">OpenSCENARIO</a> is triggered. -It is always important that the trajectories matches the current scenery file, otherwise the Agent could be placed outside of valid lanes. If the agent gets placed on a invalid position, it will be deleted.</p> -<p>All attributes are required.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>AutomaticDeactivation</p></td> -<td><p>Bool</p></td> -<td><p>If true, the trajectory follower relinquishes control of the vehicle after the final instruction in the TrajectoryFile. -If false, it stops at the last point of the trajectory.</p></td> -</tr> -<tr class="row-odd"><td><p>EnforceTrajectory</p></td> -<td><p>Bool</p></td> -<td><p>If true, the trajectory follower overrides external input related to the vehicle’s travel.</p></td> -</tr> -</tbody> -</table> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"DynamicsTrajectoryFollower"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"BasicTrajectoryFollower"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"AutomaticDeactivation"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"EnforceTrajectory"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Profile></span> -<span class="nt"></ProfileGroup></span> -</pre></div> -</div> -</section> -<section id="fmu-wrapper"> -<span id="components-fmuwrapper"></span><h2>FMU Wrapper<a class="headerlink" href="#fmu-wrapper" title="Link to this heading">ïƒ</a></h2> -<p>The FMU Wrapper provides a connection to arbitrary FMUs (Functional Mock-up Unit). -An FMU has to be compatible with the FMI 1.0 or the FMI 2.0 specification (Functional Mock-up Interface) and has to be ABI (Application Binary Interface) compatible with the opSimulation binary.</p> -<p>Additional reading about FMI is provided by the FMI standard website at <a class="reference external" href="https://fmi-standard.org/">https://fmi-standard.org/</a>. -For interfacing the FMUs in openPASS, the Modelon FMI Library is used, which is recommended on the FMI standard website. See <a class="reference external" href="https://jmodelica.org/">https://jmodelica.org/</a>.</p> -<p><strong>FMU package format</strong></p> -<p>FMI defines a packaging format for FMUs. -The used container format is ZIP. -It basically contains - among other parts - the compiled FMU code (as <code class="docutils literal notranslate"><span class="pre">*.dll</span></code> or <code class="docutils literal notranslate"><span class="pre">*.so</span></code>, depending on the platform) and the <code class="docutils literal notranslate"><span class="pre">modelDescription.xml</span></code>. -Latter provides meta-data about the FMU, i. e. -- Author information -- Model name, identifier and description -- Generation timestamp -- Name and datatype of model variables (inputs and outputs)</p> -<p><strong>Architectural overview</strong></p> -<p>The wrapper is instantiated as a component of an agent. -It reads the input variables for the FMU from the simulation and provides it the FMU and reads the output of the FMU and forwards it via signals to other agent components.</p> -<img alt="|op| FMU wrapper architectural overview" src="../../../_images/FmuWrapperOverview.svg" /><p><strong>Framework channels</strong></p> -<p>The wrapper can use input and output signals via <em>Channels</em> as every other agent component does. -Framework channels (signals) can provide data and can also be written to by the wrapper. -In addition, the wrapper is able to access the c AgentInterface and c WorldInterface methods.</p> -<p><strong>FMI variables</strong></p> -<p>Communication with the FMU happens via FMI variables (inputs and outputs). -The wrapper will read in available variables from <code class="docutils literal notranslate"><span class="pre">modelDescription.xml</span></code> in the FMU package. -These variables need to be mapped to variables and signals of openPASS in the VehicleComponentProfile.</p> -<p>FMI 1.0 supports these standard datatypes: -- bool -- integer -- real -- string</p> -<p>By using OSMP, three integer values can be used to support full osi messages</p> -<p><strong>Configuration</strong></p> -<p>Configuration of a particular FMU takes place in <code class="docutils literal notranslate"><span class="pre">ProfilesCatalog.xml</span></code>. -An example of a static system configuration can be found here “sim/contrib/examples/Configurations/StaticOSMPSensorDataToTrafficUpdateStepperâ€.</p> -<p>The following parameters are always required for the FmuWrapper. Depending on the FmuHandler additional parameters may be needed.</p> -<table class="tight-table docutils align-default" id="fmuwrapper-basic-configuration"> -<thead> -<tr class="row-odd"><th class="head"><p>Key</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Default</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>FmuPath</p></td> -<td><p>string</p></td> -<td><p>-</p></td> -<td><p>Path to FMU file, either absolute or relative to the simulator’s configuration directory.</p></td> -</tr> -<tr class="row-odd"><td><p>Logging</p></td> -<td><p>bool</p></td> -<td><p>true</p></td> -<td><p>If set to true, FMU initialization and execution task are logged to a text file.</p></td> -</tr> -<tr class="row-even"><td><p>CsvOutput</p></td> -<td><p>bool</p></td> -<td><p>true</p></td> -<td><p>If set to true, FMI outputs are logged to a CSV file.</p></td> -</tr> -</tbody> -</table> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"FMU1"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"FMU"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FmuPath"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"OSMPSDToTUS.fmu"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Logging"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"CsvOutput"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Input_OSMPSensorDataIn"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"SensorData"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Input_OSMPSensorViewInConfig"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"SensorViewConfig"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Output_OSMPTrafficUpdateOut"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"TrafficUpdate"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Output_OSMPSensorViewInConfigRequest"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"SensorViewConfigRequest"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"WriteJson_SensorData"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"WriteJson_TrafficUpdate"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Profile></span> -<span class="nt"></ProfileGroup></span> -</pre></div> -</div> -<p>Upon instantiation of the FMU wrapper, it will extract the FMU ZIP file to a temporary directory. -Then the <code class="docutils literal notranslate"><span class="pre">modelDescription.xml</span></code> is parsed and the FMU is checked for compatibility.</p> -<p>If the parameter <code class="docutils literal notranslate"><span class="pre">CsvOutput</span></code> is set to <cite>true</cite>, a subfolder “FmuWrapper/Agent<ID>†will be created in the simulator’s “results†directory. -“<ID>†is replaced with the agent id. -FMI output data will be logged to a file inside this directory. -The filename consists of the FMU’s name and extension “csvâ€. -This output can then be used for visualization in a spreadsheet application or it may be processed in any other way.</p> -<p>Same goes for parameter <code class="docutils literal notranslate"><span class="pre">Logging</span></code> (having “log†as output file extension).</p> -<p><strong>Primitive Datatypes</strong></p> -<p>The FMU Wrapper allows to link Simulink models or any other FMU to <strong>openPASS</strong>. -It lets the user link any input variables of the FMU to values of the Agent in the simulation and any output values of the FMU to signals, that are forwarded to other <strong>openPASS</strong> components. -These mappings are defined with the following optional parameters.</p> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Be careful with the size of integer data types when used in Matlab/Simulink. The FMU integer data type shall always be 32 bit or bigger, e.g. for IDs.</p> -</div> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Key</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Parameter_<em>varName</em></p></td> -<td><p>any</p></td> -<td><p>Mapping of a fixed value (bool, integer, double, string) to an FMU input:</p> -<ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">varName</span></code> references an FMI input variable.</p></li> -<li><p>The type of the parameter has to match the FMI variable type.</p></li> -</ul> -</td> -</tr> -<tr class="row-odd"><td><p>Parameter_AssignSpecial_<em>varName</em></p></td> -<td><p>any</p></td> -<td><p>Mapping of a specific value of the simulation to an FMU input, assigned only once at FMU initialization:</p> -<ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">varName</span></code> references an FMI input variable.</p></li> -<li><p>The parameter is always of type string.</p></li> -<li><p>The value of this parameter has to be one of the types specified in the <a class="reference internal" href="#special-simulation-values">Special simulation values</a> table below, -which will also determine the required type of the FMI variable.</p></li> -</ul> -</td> -</tr> -<tr class="row-even"><td><p>Input_<em>varName</em></p></td> -<td><p>string</p></td> -<td><p>Mapping of a specific value of the simulation to an FMU input:</p> -<ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">varName</span></code> references an FMI input variable.</p></li> -<li><p>The value of this parameter has to be one of the types specified in the <a class="reference internal" href="#input-simulation-values">Input simulation values</a> table below.</p></li> -</ul> -</td> -</tr> -<tr class="row-odd"><td><p>Output_<em>varName</em></p></td> -<td><p>string</p></td> -<td><p>Mapping of a FMU output to a specific field in a specific signal:</p> -<ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">varName</span></code> references an FMI output variable.</p></li> -<li><p>The value of this parameter has to be one of the types specified in the <a class="reference internal" href="#output-simulation-signals">Output simulation signals</a> table below.</p></li> -</ul> -</td> -</tr> -</tbody> -</table> -<p>The allowed special simulation values are as follows:</p> -<table class="tight-table docutils align-default" id="special-simulation-values"> -<thead> -<tr class="row-odd"><th class="head"><p>Type</p></th> -<th class="head"><p>FMU Variable Type</p></th> -<th class="head"><p>Calculation</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>RandomSeed</p></td> -<td><p>Integer</p></td> -<td><p>The random seed of the current simulation run.</p></td> -</tr> -<tr class="row-odd"><td><p>ConfigPath</p></td> -<td><p>String</p></td> -<td><p>Config directory supplied to opSimulation (or the corresponding default value)</p></td> -</tr> -<tr class="row-even"><td><p>OutputPath</p></td> -<td><p>String</p></td> -<td><p>An output path unique to this FmuWrapper instance. -The path will always refer to a directory below the simulator’s current result folder. -This directory is not necessarily created by the FmuWrapper, depending on the setting of -<cite>CsvOutput</cite> and <cite>Logging</cite> parameters (see <a class="reference internal" href="#fmuwrapper-basic-configuration">FmuWrapper basic configuration</a>).</p></td> -</tr> -<tr class="row-odd"><td><p>MaxSteering</p></td> -<td><p>Real</p></td> -<td><p>The <cite>max_steering</cite> property of an agent’s front axle as defined in OpenSCENARIO (catalog).</p></td> -</tr> -<tr class="row-even"><td><p>SteeringRatio</p></td> -<td><p>Real</p></td> -<td><p>The steering ratio of the vehicle model. -Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name -<code class="docutils literal notranslate"><span class="pre">SteeringRatio</span></code> and the value has to be a valid floating point expression.</p></td> -</tr> -<tr class="row-odd"><td><p>NumberOfGears</p></td> -<td><p>Integer</p></td> -<td><p>The number of gears of the vehicle model. -Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name -<code class="docutils literal notranslate"><span class="pre">NumberOfGears</span></code> and the value has to be a valid integer.</p></td> -</tr> -<tr class="row-even"><td><p>GearRatio<em>N</em></p></td> -<td><p>Real</p></td> -<td><p>The ratio of the Nth gear. -Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name -<code class="docutils literal notranslate"><span class="pre">GearRatioN</span></code> and the value has to be a valid floating point expression. -<em>N</em> is allowed to be in the range 1-9.</p></td> -</tr> -</tbody> -</table> -<p>The allowed inputs (simulation values) are as follows:</p> -<table class="tight-table docutils align-default" id="input-simulation-values"> -<thead> -<tr class="row-odd"><th class="head"><p>Type</p></th> -<th class="head"><p>FMU Variable Type</p></th> -<th class="head"><p>Calculation</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>VelocityEgo</p></td> -<td><p>Real</p></td> -<td><p>Absolute velocity (length of the velocity vector) at reference point</p></td> -</tr> -<tr class="row-odd"><td><p>AccelerationEgo</p></td> -<td><p>Real</p></td> -<td><p>Longitudinal acceleration at reference point</p></td> -</tr> -<tr class="row-even"><td><p>CentripetalAccelerationEgo</p></td> -<td><p>Real</p></td> -<td><p>Centripetal acceleration at reference point</p></td> -</tr> -<tr class="row-odd"><td><p>SteeringWheelEgo</p></td> -<td><p>Real</p></td> -<td><p>Angle of the steering wheel (in radian)</p></td> -</tr> -<tr class="row-even"><td><p>AccelerationPedalPositionEgo</p></td> -<td><p>Real</p></td> -<td><p>Position of the acceleration pedal in the interval [0, 1]</p></td> -</tr> -<tr class="row-odd"><td><p>BrakePedalPositionEgo</p></td> -<td><p>Real</p></td> -<td><p>Position of the brake pedal in the interval [0, 1]</p></td> -</tr> -<tr class="row-even"><td><p>DistanceRefToFrontEdgeEgo</p></td> -<td><p>Real</p></td> -<td><p>Distance between the reference point and the front of the agent (static)</p></td> -</tr> -<tr class="row-odd"><td><p>PositionXEgo</p></td> -<td><p>Real</p></td> -<td><p>X position of the reference point</p></td> -</tr> -<tr class="row-even"><td><p>PositionYEgo</p></td> -<td><p>Real</p></td> -<td><p>Y position of the reference point</p></td> -</tr> -<tr class="row-odd"><td><p>YawEgo</p></td> -<td><p>Real</p></td> -<td><p>Yaw of the reference point</p></td> -</tr> -<tr class="row-even"><td><p>LaneEgo</p></td> -<td><p>Integer</p></td> -<td><p>Lane id of the front center on the route (0, if off route)</p></td> -</tr> -<tr class="row-odd"><td><p>PositionSEgo</p></td> -<td><p>Real</p></td> -<td><p>S position of the reference point on the route (0, if off route)</p></td> -</tr> -<tr class="row-even"><td><p>PositionTEgo</p></td> -<td><p>Real</p></td> -<td><p>T position of the reference point on the route (0, if off route)</p></td> -</tr> -<tr class="row-odd"><td><p>ExistenceFront</p></td> -<td><p>Boolean</p></td> -<td><p>true, if there is a object in front on the own lane (any range), false otherwise</p></td> -</tr> -<tr class="row-even"><td><p>PositionXFront</p></td> -<td><p>Real</p></td> -<td><p>X position of front object reference point (0, if no front object)</p></td> -</tr> -<tr class="row-odd"><td><p>PositionYFront</p></td> -<td><p>Real</p></td> -<td><p>Y position of front object reference point (0, if no front object)</p></td> -</tr> -<tr class="row-even"><td><p>YawFront</p></td> -<td><p>Real</p></td> -<td><p>Yaw of front object reference point (0, if no front object)</p></td> -</tr> -<tr class="row-odd"><td><p>PositionSFront</p></td> -<td><p>Real</p></td> -<td><p>S position of front object reference point on ego route (0, if no front object)</p></td> -</tr> -<tr class="row-even"><td><p>PositionTFront</p></td> -<td><p>Real</p></td> -<td><p>T position of front object reference point on ego route (0, if no front object)</p></td> -</tr> -<tr class="row-odd"><td><p>RelativeDistanceFront</p></td> -<td><p>Real</p></td> -<td><p>Net distance to front object along route (0, if no front object)</p></td> -</tr> -<tr class="row-even"><td><p>WidthFront</p></td> -<td><p>Real</p></td> -<td><p>Width of front object (0, if no front object)</p></td> -</tr> -<tr class="row-odd"><td><p>LengthFront</p></td> -<td><p>Real</p></td> -<td><p>Length of front object (0, if no front object)</p></td> -</tr> -<tr class="row-even"><td><p>DistanceRefToFrontEdgeFront</p></td> -<td><p>Real</p></td> -<td><p>Distance between the reference point and the front of the front object (0, if no front object)</p></td> -</tr> -<tr class="row-odd"><td><p>VelocityFront</p></td> -<td><p>Real</p></td> -<td><p>Absolute velocity of front object at reference point (0, if no front object)</p></td> -</tr> -<tr class="row-even"><td><p>LaneFront</p></td> -<td><p>Integer</p></td> -<td><p>Lane id of the reference point of the front object on the ego route (0, if no front object)</p></td> -</tr> -<tr class="row-odd"><td><p>ExistenceFrontFront</p></td> -<td><p>Boolean</p></td> -<td><p>true, if there are at least two objects in front on the own lane (any range), false otherwise</p></td> -</tr> -<tr class="row-even"><td><p>PositionXFrontFront</p></td> -<td><p>Real</p></td> -<td><p>X position of second front object reference point (0, if no second front object)</p></td> -</tr> -<tr class="row-odd"><td><p>PositionYFrontFront</p></td> -<td><p>Real</p></td> -<td><p>Y position of second front object reference point (0, if no second front object)</p></td> -</tr> -<tr class="row-even"><td><p>RelativeDistanceFrontFront</p></td> -<td><p>Real</p></td> -<td><p>Net distance to second front object reference point (0, if no second front object)</p></td> -</tr> -<tr class="row-odd"><td><p>VelocityFrontFront</p></td> -<td><p>Real</p></td> -<td><p>Absolute velocity of second front object reference point (0, if no second front object)</p></td> -</tr> -<tr class="row-even"><td><p>LaneFrontFront</p></td> -<td><p>Integer</p></td> -<td><p>Lane id of the reference point of second front object reference point (0, if no second front object)</p></td> -</tr> -<tr class="row-odd"><td><p>LaneCountLeft</p></td> -<td><p>Integer</p></td> -<td><p>Number of lanes to the left of front center of type Driving, Exit, Entry, OnRamp or OffRamp</p></td> -</tr> -<tr class="row-even"><td><p>LaneCountRight</p></td> -<td><p>Integer</p></td> -<td><p>Number of lanes to the right of front center of type Driving, Exit, Entry, OnRamp or OffRamp</p></td> -</tr> -<tr class="row-odd"><td><p>SpeedLimit_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Speed limit in effect in distance <em>X</em> meters from front center (999, if no speed limit)</p></td> -</tr> -<tr class="row-even"><td><p>RoadCurvature_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Road curvature in distance <em>X</em> meters from front center</p></td> -</tr> -</tbody> -</table> -<ul class="simple"> -<li><p><strong>reference point</strong>: Center of the rear axle</p></li> -<li><p><strong>front center</strong>: Center of the front of the bounding box of the object</p></li> -</ul> -<p>If the FmuWrapper is linked to at least one sensor with InputId “Cameraâ€, the following additional inputs are available. -The objects seen by this sensor(s) are sorted by distance from the agent and accessed by indices starting from 0. -For each object the values listed in the following table are available where <em>X</em> is the index of the object (between 0 and 9). -If there are less objects than <em>X</em>, a default value is set (-1 for the Id, 0 for the other values). -Only the list of objects is taken from the sensor. -The values are then calculated by the FmuWrapper (not from the SensorData).</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Type</p></th> -<th class="head"><p>FMU Variable Type</p></th> -<th class="head"><p>Calculation</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>SensorFusionObjectId_<em>X</em></p></td> -<td><p>Integer</p></td> -<td><p>Id of the object</p></td> -</tr> -<tr class="row-odd"><td><p>SensorFusionNumberOfDetectingSensors_<em>X</em></p></td> -<td><p>Integer</p></td> -<td><p>Number of sensors detecting the object</p></td> -</tr> -<tr class="row-even"><td><p>SensorFusionRelativeS_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Distance between reference points along route (NaN, if object not on route)</p></td> -</tr> -<tr class="row-odd"><td><p>SensorFusionRelativeNetS_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Net distance along route (NaN, if object not on route)</p></td> -</tr> -<tr class="row-even"><td><p>SensorFusionRelativeT_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Lateral obstruction for front center (NaN, if object not on route) (see <a class="reference internal" href="../../../advanced_topics/simulator/world_osi.html#world-getobstruction"><span class="std std-ref">GetObstruction</span></a>)</p></td> -</tr> -<tr class="row-odd"><td><p>SensorFusionRelativeX_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Relative distance between reference points in x in world coordinates</p></td> -</tr> -<tr class="row-even"><td><p>SensorFusionRelativeY_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Relative distance between reference points in y in world coordinates</p></td> -</tr> -<tr class="row-odd"><td><p>SensorFusionRelativeNetLeft_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Lateral obstruction for leftmost point (NaN, if object not on route)</p></td> -</tr> -<tr class="row-even"><td><p>SensorFusionRelativeNetRight_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Lateral obstruction for rightmost point (NaN, if object not on route)</p></td> -</tr> -<tr class="row-odd"><td><p>SensorFusionRelativeNetX_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Net distance between bounding boxes in x in world coordinates</p></td> -</tr> -<tr class="row-even"><td><p>SensorFusionRelativeNetY_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Net distance between bounding boxes in y in world coordinates</p></td> -</tr> -<tr class="row-odd"><td><p>SensorFusionLane_<em>X</em></p></td> -<td><p>Integer</p></td> -<td><p>Lane of front center</p></td> -</tr> -<tr class="row-even"><td><p>SensorFusionVelocity_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Absolute velocity at reference point</p></td> -</tr> -<tr class="row-odd"><td><p>SensorFusionVelocityX_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Velocity in x at reference point in world coordinates</p></td> -</tr> -<tr class="row-even"><td><p>SensorFusionVelocityY_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Velocity in y at reference point in world coordinates</p></td> -</tr> -<tr class="row-odd"><td><p>SensorFusionYaw_<em>X</em></p></td> -<td><p>Real</p></td> -<td><p>Yaw in world coordinates</p></td> -</tr> -</tbody> -</table> -<p>The FMU wrapper can output one or more of these signals: -AccelerationSignal, LongitudinalSignal, SteeringSignal and DynamicsSignal</p> -<p>The name of the signal field has to be specified after the signal name. -This means the output type is one of the following:</p> -<table class="tight-table docutils align-default" id="output-simulation-signals"> -<thead> -<tr class="row-odd"><th class="head"><p>Type</p></th> -<th class="head"><p>FMU Variable Type</p></th> -<th class="head"><p>Enum Values</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>ComponentState</p></td> -<td><p>Enum</p></td> -<td><p>Undefined, Disabled, Armed, Acting</p></td> -</tr> -<tr class="row-odd"><td><p>AccelerationSignal_Acceleration</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>LongitudinalSignal_AccPedalPos</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>LongitudinalSignal_BrakePedalPos</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>LongitudinalSignal_Gear</p></td> -<td><p>Int</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>SteeringSignal_SteeringWheelAngle</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>DynamicsSignal_Acceleration</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>DynamicsSignal_Velocity</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>DynamicsSignal_PositionX</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>DynamicsSignal_PositionY</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>DynamicsSignal_Yaw</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>DynamicsSignal_YawRate</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>DynamicsSignal_YawAcceleration</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>DynamicsSignal_SteeringWheelAngle</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>DynamicsSignal_CentripetalAcceleration</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-odd"><td><p>DynamicsSignal_TravelDistance</p></td> -<td><p>Real</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>CompCtrlSignal_MovementDomain</p></td> -<td><p>Enum</p></td> -<td><p>Undefined, Lateral, Longitudinal, Both</p></td> -</tr> -<tr class="row-odd"><td><p>CompCtrlSignal_WarningActivity</p></td> -<td><p>Bool</p></td> -<td></td> -</tr> -<tr class="row-even"><td><p>CompCtrlSignal_WarningLevel</p></td> -<td><p>Enum</p></td> -<td><p>INFO, WARNING</p></td> -</tr> -<tr class="row-odd"><td><p>CompCtrlSignal_WarningType</p></td> -<td><p>Enum</p></td> -<td><p>OPTIC, ACOUSTIC, HAPTIC</p></td> -</tr> -<tr class="row-even"><td><p>CompCtrlSignal_WarningIntensity</p></td> -<td><p>Enum</p></td> -<td><p>LOW, MEDIUM, HIGH</p></td> -</tr> -<tr class="row-odd"><td><p>CompCtrlSignal_WarningDirection</p></td> -<td><p>Enum</p></td> -<td></td> -</tr> -</tbody> -</table> -<p>If one of these fields of a signal (except ComponentState) is mapped to an FMU variable, all fields of this signal have to be mapped. -If the ComponentState is mapped to a FMU variable, it is used for all signals, otherwise it defaults to Acting.</p> -<p><strong>OSI Data</strong></p> -<p>OSMP (OsiSensorModelPackaging) is a package layer specification for the Open Simulation Interface (OSI). -It allows to pass input to the FMU as OSI messages as well as receive output as OSI message. -For more information on OSMP see <a class="reference external" href="https://github.com/OpenSimulationInterface/osi-sensor-model-packaging">https://github.com/OpenSimulationInterface/osi-sensor-model-packaging</a>.</p> -<p>The FmuHandler has the following additional (optional) parameters:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Key</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>Init_<em>var_name</em></p></td> -<td><p>string</p></td> -<td><p><em>var_name</em> references an FMU variable (as defined in FMU’s modelDescription.xml) to which a specific OSI message is sent during initialization Allowed values: <cite>GroundTruth</cite></p></td> -</tr> -<tr class="row-odd"><td><p>Input_<em>var_name</em></p></td> -<td><p>string</p></td> -<td><p><em>var_name</em> references an FMU variable (as defined in FMU’s modelDescription.xml) to which a specific OSI message is sent Allowed values: <cite>SensorView</cite>, <cite>SensorViewConfig</cite>, <cite>SensorData</cite>, <cite>TrafficCommand</cite></p></td> -</tr> -<tr class="row-even"><td><p>Output_<em>var_name</em></p></td> -<td><p>string</p></td> -<td><p><em>var_name</em> references an FMU variable (as defined in FMU’s modelDescription.xml) from which a specific OSI message is received Allowed values: <cite>SensorViewConfigRequest</cite>, <cite>SensorData</cite>, <cite>TrafficUpdate</cite></p></td> -</tr> -<tr class="row-odd"><td><p>Parameter_<em>var_name</em></p></td> -<td><p>any</p></td> -<td><p>The value of the parameter is assigned to the FMU variable <em>var_name</em></p></td> -</tr> -<tr class="row-even"><td><p>Parameter_<em>transformation</em>[<em>mapping</em> ]_<em>name</em></p></td> -<td><p>string/string/any*</p></td> -<td><p>Same as Parameter_<em>name</em> but with an preceding <em>transformation</em> according to a <em>mapping</em>. <br> Currently, only mappings between the same types are supported. <br> *;When using <cite>TransformList</cite> as <em>transformation</em>, the type of the data is expected to be a string and the string must be a comma separated list of values. <br> <br> Allowed values: <br> <em>transformation</em>: <cite>Transform</cite>, <cite>TransformList</cite> <br> <em>mapping</em>: <cite>ScenarioName>Id</cite> <br> <br> Example: <cite>Parameter_TransformList[ScenarioName>Id]_*name*</cite></p></td> -</tr> -<tr class="row-odd"><td><p>WriteJson_<em>var_name</em></p></td> -<td><p>bool</p></td> -<td><p>If true the osi message specified by <em>var_name</em> is written to a json file</p></td> -</tr> -<tr class="row-even"><td><p>WriteTrace_<em>var_name</em></p></td> -<td><p>bool</p></td> -<td><p>If true the osi message specified by <em>var_name</em> is written to the trace file</p></td> -</tr> -<tr class="row-odd"><td><p>EnforceDoubleBuffering</p></td> -<td><p>bool</p></td> -<td><p>If true the wrapper will throw an error if FMU doesn’t use double buffering. Defaults to false.</p></td> -</tr> -</tbody> -</table> -<p>The type of OSI messages the FmuHandler sends and receives is defined by its parameters. Only messages for which an FMU variable is given in the configuration are sent/received. -An additional parameter defines whether the message should be logged as JSON file for every agent and every timestep (see table above).</p> -<p>Currently these messages are supported:</p> -<ul class="simple"> -<li><p>SensorView: SensorView generated from the GroundTruth with this agent is host vehicle.</p></li> -<li><p>SensorViewConfig, SensorViewConfigRequest: Configuration of a sensor according to OSMP.</p></li> -<li><p>TrafficCommand: Trajectory from <a class="reference external" href="https://www.asam.net/standards/detail/openscenario/">OpenSCENARIO</a>, that will be converted into a TrafficCommand.</p></li> -<li><p>SensorData: Output of a sensor. Can be input and/or output of an FMU. Received SensorData is forwarded to other components as SensorDataSignal.</p></li> -<li><p>TrafficUpdate: Will be converted to a DynamicsSignal, AccelerationSignal, SteeringSignal or LongitudinalSignal. If the update is empty, the signal will have ComponentState::Disabled. If it is only partially filled, the missing values for the DynamicsSignal will be set to the current state.</p></li> -<li><p>GroundTruth: Will be used as groundtruth information for everything that exists in the simulation world.</p></li> -</ul> -<p><strong>FmuVariables</strong></p> -<p>FmuVariables can have different variability and causality.</p> -<ul class="simple"> -<li><p>There are the following causalities: Input, Output, Parameter and CalculatedParameter</p></li> -<li><p>Input or outputs can have the variability constant, fixed, discrete or continuous</p></li> -<li><p>Parameter or CalculatedParameter can have the variability constant, fixed or tunable</p></li> -</ul> -<p>In openPASS we have the initialization phase, which is only called once. In that phase first readValues is called. -Then parameter values are synchronized between different config files. The following priority is used for the synchronization:</p> -<p>modelDescription < systemConfig < SSP config.</p> -<p>Afterwards still in the initialization phase writeValues is called. -During the whole simulation in openPASS all the trigger functions are called each time step. -For the FMU component we call WriteValues before trigger and readValues afterwards. -For the first two time steps we have the following calls for read- and writeValues:</p> -<blockquote> -<div><ol class="arabic simple"> -<li><p>ReadValues (Init)</p></li> -<li><p>WriteValues (Init)</p></li> -<li><p>WriteValues</p></li> -<li><p>Trigger</p></li> -<li><p>ReadValues</p></li> -<li><p>WriteValues</p></li> -<li><p>Trigger</p></li> -<li><p>ReadValues</p></li> -</ol> -</div></blockquote> -<p>Depending on them, FmuVariables are written/read to/from the FMU on different occasions, which is shown in the following table.</p> -<table class="docutils align-default" id="id1"> -<caption><span class="caption-text">Write- and ReadValues depending on variability and causality</span><a class="headerlink" href="#id1" title="Link to this table">ïƒ</a></caption> -<colgroup> -<col style="width: 20.0%" /> -<col style="width: 20.0%" /> -<col style="width: 20.0%" /> -<col style="width: 20.0%" /> -<col style="width: 20.0%" /> -</colgroup> -<thead> -<tr class="row-odd"><th class="head stub"></th> -<th class="head"><p>ReadValues - Init</p></th> -<th class="head"><p>WriteValues - Init</p></th> -<th class="head"><p>WriteValues - Trigger</p></th> -<th class="head"><p>ReadValues - Trigger</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><th class="stub"><p>Input - fixed</p></th> -<td><p>x</p></td> -<td><p>x</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><th class="stub"><p>Input - discrete or continuous</p></th> -<td><p>x</p></td> -<td><p>x</p></td> -<td><p>x</p></td> -<td></td> -</tr> -<tr class="row-even"><th class="stub"><p>Output - fixed</p></th> -<td><p>x</p></td> -<td></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><th class="stub"><p>Output - discrete or continuous</p></th> -<td><p>x</p></td> -<td></td> -<td></td> -<td><p>x</p></td> -</tr> -<tr class="row-even"><th class="stub"><p>Parameter - fixed</p></th> -<td><p>x</p></td> -<td><p>x</p></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><th class="stub"><p>Parameter - tunable</p></th> -<td><p>x</p></td> -<td><p>x</p></td> -<td><p>x</p></td> -<td></td> -</tr> -<tr class="row-even"><th class="stub"><p>CalculatedParameter - fixed</p></th> -<td><p>x</p></td> -<td></td> -<td></td> -<td></td> -</tr> -<tr class="row-odd"><th class="stub"><p>CalculatedParameter - tunable</p></th> -<td><p>x</p></td> -<td></td> -<td></td> -<td><p>x</p></td> -</tr> -</tbody> -</table> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>For alle kinds of Input, Output, Parameter and CalculatedParameter there exists the variablity “constantâ€. -All constant values are only read into openPASS once at the initialization phase. -Never will these values be written onto the FMU.</p> -</div> -</section> -<section id="sensorgeometric2d"> -<span id="components-geometric2d"></span><h2>SensorGeometric2D<a class="headerlink" href="#sensorgeometric2d" title="Link to this heading">ïƒ</a></h2> -<p>This sensor is selected, when a sensor is parameterized as ProfileGroup “Geometric2Dâ€.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Parameter</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>DetectionRange</p></td> -<td><p>Double</p></td> -<td><p>m</p></td> -<td><p>Detection range</p></td> -</tr> -<tr class="row-odd"><td><p>EnableVisualObstruction</p></td> -<td><p>Bool</p></td> -<td></td> -<td><p>Activates 2D sensor obstruction calculation</p></td> -</tr> -<tr class="row-even"><td><p>FailureProbability</p></td> -<td><p>Double</p></td> -<td></td> -<td><p>Probability object is not detected although it is visible</p></td> -</tr> -<tr class="row-odd"><td><p>Latency</p></td> -<td><p>Double</p></td> -<td><p>s</p></td> -<td><p>Delay the sensor output</p></td> -</tr> -<tr class="row-even"><td><p>DetectionDelayTime</p></td> -<td><p>Double</p></td> -<td><p>s</p></td> -<td><p>Time an object needs to be in detection range before it is detected (optional)</p></td> -</tr> -<tr class="row-odd"><td><p>MaxDropOutTime</p></td> -<td><p>Double</p></td> -<td><p>s</p></td> -<td><p>Time after which delay for undetected object starts anew (optional)</p></td> -</tr> -<tr class="row-even"><td><p>OpeningAngleH</p></td> -<td><p>Double</p></td> -<td><p>rad</p></td> -<td><p>Horizontal opening angle</p></td> -</tr> -<tr class="row-odd"><td><p>RequiredPercentageOfVisibleArea</p></td> -<td><p>Double</p></td> -<td></td> -<td><p>Required percentage of an object within the sensor cone to trigger a detection</p></td> -</tr> -</tbody> -</table> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Geometric2D"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Standard"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"DetectionRange"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"300"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"EnableVisualObstruction"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FailureProbability"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><NormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Latency"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">Mean=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">SD=</span><span class="s">"0.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpeningAngleH"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.35"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"RequiredPercentageOfVisibleArea"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.001"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"DetectionDelayTime"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"MaxDropOutTime"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Profile></span> -<span class="nt"></ProfileGroup></span> -</pre></div> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Sensors also need a mounting position, defined w.r.t. the coordinate system of the vehicle (center of rear axis). -See also <a class="reference internal" href="../../configs/profilescatalog.html#profilescatalog-systemprofiles"><span class="std std-ref">SystemProfiles</span></a>.</p> -</div> -</section> -<section id="receivercar2x"> -<h2>ReceiverCar2X<a class="headerlink" href="#receivercar2x" title="Link to this heading">ïƒ</a></h2> -<p>This type is selected, when a sensor is parameterized as ProfileGroup “ReceiverCar2Xâ€.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Parameter</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>FailureProbability</p></td> -<td><p>Double</p></td> -<td></td> -<td><p>Probability object is not detected although it is visible</p></td> -</tr> -<tr class="row-odd"><td><p>Latency</p></td> -<td><p>Double</p></td> -<td><p>s</p></td> -<td><p>Sensor latency</p></td> -</tr> -<tr class="row-even"><td><p>Sensitivity</p></td> -<td><p>Double</p></td> -<td><p>W/m²</p></td> -<td><p>Sensitivity of the sensor</p></td> -</tr> -</tbody> -</table> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"ReceiverCar2X"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Standard"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><NormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Latency"</span><span class="w"> </span><span class="na">Mean=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">SD=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"0.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FailureProbability"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Sensitivity"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1e-5"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Profile></span> -<span class="nt"></ProfileGroup></span> -</pre></div> -</div> -<p>The moving object is detected if the received SignalStrength is greater than the Sensitivity of the ReceiverCar2X .</p> -<p>The received SignalStrength is calculated by <img class="math" src="../../../_images/math/58936aa7043ecf62ec13166d1c340a6d7369c8fc.png" alt="ss_{\text{received}} = \frac {ss_{\text{sender}}} {4 \cdot pi \cdot d \cdot d}"/>, where the symbols meanings are:</p> -<table class="docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Symbol</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p><img class="math" src="../../../_images/math/9d60d7b2311a5ab7cdaddaa12d7afcea0d61e610.png" alt="ss_{\text{received}}"/></p></td> -<td><p>Received strength of the signal [1/m²]</p></td> -</tr> -<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/b4e3a410356817edeee8a7f41f7a577e2c269c48.png" alt="ss_{\text{sender}}"/></p></td> -<td><p>Sent strength of the signal [1/m²]</p></td> -</tr> -<tr class="row-even"><td><p><img class="math" src="../../../_images/math/badad346f6fbe2e237af99bfbd9a93a4da53a3da.png" alt="d"/></p></td> -<td><p>Distance between the receiver agent and sender [m]</p></td> -</tr> -</tbody> -</table> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>Sensors also need a mounting position, defined w.r.t. the coordinate system of the vehicle (center of rear axis). -See also <a class="reference internal" href="../../configs/profilescatalog.html#profilescatalog-systemprofiles"><span class="std std-ref">SystemProfiles</span></a>.</p> -</div> -</section> -<section id="ssp"> -<h2>SSP<a class="headerlink" href="#ssp" title="Link to this heading">ïƒ</a></h2> -<p>A SSP can be added as vehicle component. It’s a blackbox of one or multiple FMUs.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Parameter</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>SspPath</p></td> -<td><p>String</p></td> -<td><p>path</p></td> -<td><p>config relative path to ssp archive</p></td> -</tr> -</tbody> -</table> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"SSP1"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"SSP"</span><span class="nt">></span> -<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"SspPath"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"ConnectionTest.ssp"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></Profile></span> -<span class="nt"></ProfileGroup></span> -</pre></div> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>To add the ssp component to a system profile do the following: -See also <a class="reference internal" href="../../configs/profilescatalog.html#profilescatalog-systemprofiles"><span class="std std-ref">SystemProfiles</span></a>.</p> -</div> -<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><SystemProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"EgoVehicle"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"1.0"</span><span class="nt">/></span> -<span class="w"> </span><span class="nt"></SystemProfiles></span> -</pre></div> -</div> -</section> -<section id="vehicledynamics"> -<h2>VehicleDynamics<a class="headerlink" href="#vehicledynamics" title="Link to this heading">ïƒ</a></h2> -<p>Components of this group can be used to model the vehicle dynamics. The vehicle dynamics model has a modular design. If necessary, the individual components can be replaced by the user with their own models. The vehicle dynamics model consists of six components listed below:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Component</p></th> -<th class="head"><p>Short Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p><a class="reference internal" href="#components-steeringsystem"><span class="std std-ref">ActionSteeringSystem</span></a></p></td> -<td><p>The steering model transfers the driver’s input into the vehicle’s wheel angle</p></td> -</tr> -<tr class="row-odd"><td><p><a class="reference internal" href="#components-powertrain"><span class="std std-ref">ActionPowertrain</span></a></p></td> -<td><p>The powertrain model converts the accelerator pedal position into wheel drive torques, under consideration of the selected gear</p></td> -</tr> -<tr class="row-even"><td><p><a class="reference internal" href="#components-brakesystem"><span class="std std-ref">ActionBrakeSystem</span></a></p></td> -<td><p>The brake model converts the brake pedal position into wheel brake torques</p></td> -</tr> -<tr class="row-odd"><td><p><a class="reference internal" href="#components-tiremodel"><span class="std std-ref">DynamicsTireModel</span></a></p></td> -<td><p>The tire model converts the predetermined drive and braking torques of the tires into tire longitudinal and lateral forces, under consideration of the wheel angles</p></td> -</tr> -<tr class="row-even"><td><p><a class="reference internal" href="#components-motionmodel"><span class="std std-ref">DynamicsMotionModel</span></a></p></td> -<td><p>The motion model calculates the translational and rotational vehicle movement with the calculated tire forces</p></td> -</tr> -<tr class="row-odd"><td><p><a class="reference internal" href="#components-chassismodel"><span class="std std-ref">DynamicsChassis</span></a></p></td> -<td><p>The chassis model determines the dynamic wheel loads via the vehicle’s longitudinal and lateral acceleration</p></td> -</tr> -</tbody> -</table> -<p>The following figure gives an overview of the driving dynamics components and their signals:</p> -<img alt="|op| Vehicle dynamics overview" src="../../../_images/VehicleDynamicsOverview.svg" /><section id="actionsteeringsystem"> -<span id="components-steeringsystem"></span><h3>ActionSteeringSystem<a class="headerlink" href="#actionsteeringsystem" title="Link to this heading">ïƒ</a></h3> -<p>The steering model obtains the “SteeringRatio†property from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> and uses it to calculate the steering angle of the front wheels. -Both wheels are turned at the same angle. The following parameter can be used to set a static toe and the steering elasticity:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>StaticToe</p></td> -<td><p>VectorDouble</p></td> -<td><p>rad</p></td> -<td><p>Static toe of the wheels (A positive value corresponds to a toe-in; one static toe per axis)</p></td> -</tr> -<tr class="row-odd"><td><p>Elasticity</p></td> -<td><p>VectorDouble</p></td> -<td><p>rad/Nm</p></td> -<td><p>Steering Elasticity (one elasticity per axis)</p></td> -</tr> -<tr class="row-even"><td><p>Caster</p></td> -<td><p>VectorDouble</p></td> -<td><p>m</p></td> -<td><p>Overall Caster of steering system</p></td> -</tr> -</tbody> -</table> -</section> -<section id="actionpowertrain"> -<span id="components-powertrain"></span><h3>ActionPowertrain<a class="headerlink" href="#actionpowertrain" title="Link to this heading">ïƒ</a></h3> -<p>The powertrain model contains an engine model and a gear model. The type of the powertrain can be set using the following parameters:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>TypeDrivetrain</p></td> -<td><p>String</p></td> -<td></td> -<td><p>Type of drivetrain; A selection can be made between front-wheel drive (FWD), rear-wheel drive (RWD) and all-wheel drive (AWD)</p></td> -</tr> -<tr class="row-odd"><td><p>FrontRatioAWD</p></td> -<td><p>Double</p></td> -<td></td> -<td><p>Distribution of the drive torque to the front axle in the case of all-wheel drive (AWD); Range 0-1</p></td> -</tr> -</tbody> -</table> -<p>The wheel speed is converted into an engine speed [Hz] according to the axle ratio and the transmission ratio of the selected gear. -The axle ratio and gear ratios are obtained from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> (“AxleRatio†& “GearRatioâ€). The average value of the powered wheels is used for the determination of the engine speed.</p> -<div class="math"> -<p><img src="../../../_images/math/340d7e571b3feafaa7e510b6c7d1328b1f4c64ad.png" alt="\omega_{engine} = \omega_{wheels,avg} \cdot i_{axle} \cdot i_{gear,selected}"/></p> -</div><p>The maximum possible engine torque [Nm] is limited by the engine power [W] or the maximum engine torque [Nm]. -The engine power and the maximum engine torque are obtained from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> (“MaximumEnginePower†& “MaximumEngineTorqueâ€).</p> -<div class="math"> -<p><img src="../../../_images/math/bb9c6cf90a7cce5208d424db5de2b83f0ef1fddb.png" alt="M_{engine,max,current} = \begin{cases} - \frac{P_{engine,max}}{\omega_{engine}} & \text{ if } \frac{P_{engine,max}}{\omega_{engine}} < M_{engine,max} \\ - M_{engine,max} & \text{ if } \frac{P_{engine,max}}{\omega_{engine}} >= M_{engine,max} - \end{cases}"/></p> -</div><p>When 98% of the maximum speed of the motor is reached (“MaximumEngineSpeed†in the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a>), the engine torque is linearly reduced to 0.</p> -<p>The maximum engine torque is scaled via the accelerator pedal position (input). This value is calculated back to the total wheel drive torque via the gear ratio.</p> -<div class="math"> -<p><img src="../../../_images/math/1f81befb8ab4e6d3af9e6e11361477a156ea9836.png" alt="M_{wheels,current} = M_{engine,max,current} \cdot position_{accelerator pedal} \cdot i_{axle} \cdot i_{gear,selected}"/></p> -</div><p>The wheel total drive torque is evenly distributed to the wheels of an axle according to the definition of the drive type. -With all-wheel drive, the entire wheel drive torque is distributed statically over the defined ratio.</p> -</section> -<section id="actionbrakesystem"> -<span id="components-brakesystem"></span><h3>ActionBrakeSystem<a class="headerlink" href="#actionbrakesystem" title="Link to this heading">ïƒ</a></h3> -<p>The brake model is a linearized model. The brake pedal position is used as input. As output, the model returns the braking torques of the wheels as a vector. -The model considers a response time [ms] and linear factors [m/s³] for the increase and decrease of the braking force.The distribution of braking force between the front and rear axles can be defined statically.</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>FrontAxlePercentage</p></td> -<td><p>Double</p></td> -<td></td> -<td><p>Distribution of the brake torque to the front axle in the case of all-wheel drive (AWD); Range 0-1</p></td> -</tr> -<tr class="row-odd"><td><p>BrakeDecelerationInclineRate</p></td> -<td><p>Double</p></td> -<td><p>m/s³</p></td> -<td><p>Linear Rate of braking force increase</p></td> -</tr> -<tr class="row-even"><td><p>BrakeDecelerationDeclineRate</p></td> -<td><p>Double</p></td> -<td><p>m/s³</p></td> -<td><p>Linear Rate of braking force decrease</p></td> -</tr> -<tr class="row-odd"><td><p>BrakeResponseTimeMs</p></td> -<td><p>Double</p></td> -<td><p>ms</p></td> -<td><p>Brake response time</p></td> -</tr> -</tbody> -</table> -<p>The maximum braking force of the system is determined from the maximum possible deceleration and the mass of the vehicle and is scaled by the brake pedal position (Input). -The maximum possible deceleration and the vehicle mass are obtained from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> (“maxDeceleration†& “massâ€).</p> -<div class="math"> -<p><img src="../../../_images/math/bc08e6aac48aefa03313665a4a532f6a9c5ecd63.png" alt="F_{brake,max} = a_{deceleration,max} \cdot m_{vehicle} \cdot position_{brake pedal}"/></p> -</div><p>When the brake is applied, a deceleration is calculated after the response time has elapsed. Then the braking force is built up linearly until the maximum or requested braking force has been reached.</p> -<div class="math"> -<p><img src="../../../_images/math/f1aece6474c2a5f6a6db0e37b59055fb90810d92.png" alt="F_{brake,current} = rate_{incline} \cdot (t_{brake} - t_{response})"/></p> -</div><p>When the brake is released, the braking force is dissipated with the decline rate until it has dropped to zero. After that, the response time builds up again. -The braking force is divided among the axles according to the parameter “FrontAxlePercentageâ€. Another input allows you to request a prefill that reduces the response time without braking</p> -</section> -<section id="dynamicschassis"> -<span id="components-chassismodel"></span><h3>DynamicsChassis<a class="headerlink" href="#dynamicschassis" title="Link to this heading">ïƒ</a></h3> -<p>The chassis model determines the vertical forces of the four wheels from the longitudinal and lateral acceleration of the vehicle. Constant spring and damper rates are taken into account, which can be defined by the following parameters per axis:</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>SpringCoefficient</p></td> -<td><p>VectorDouble</p></td> -<td><p>N/m</p></td> -<td><p>Constant spring coefficient for each axis</p></td> -</tr> -<tr class="row-odd"><td><p>DamperCoefficient</p></td> -<td><p>VectorDouble</p></td> -<td><p>Ns/m</p></td> -<td><p>Constant damper coefficient for each axis</p></td> -</tr> -</tbody> -</table> -</section> -<section id="dynamicstiremodel"> -<span id="components-tiremodel"></span><h3>DynamicsTireModel<a class="headerlink" href="#dynamicstiremodel" title="Link to this heading">ïƒ</a></h3> -<p>The tire model is freely configurable and includes a degressive behaviour. The tire forces are modeled according to Rill using the TMEasy model. The following parameters can be set for the tire model per axis :</p> -<table class="tight-table docutils align-default"> -<thead> -<tr class="row-odd"><th class="head"><p>Attribute</p></th> -<th class="head"><p>Type</p></th> -<th class="head"><p>Unit</p></th> -<th class="head"><p>Description</p></th> -</tr> -</thead> -<tbody> -<tr class="row-even"><td><p>MuTireMaxXFRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Normalized scaling factor for maximum longitudinal force at reference vertical force</p></td> -</tr> -<tr class="row-odd"><td><p>MuTireMaxX2FRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Normalized scaling factor for maximum longitudinal force at double reference vertical force</p></td> -</tr> -<tr class="row-even"><td><p>MuTireSlideXFRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Normalized scaling factor for sliding longitudinal force at reference vertical force</p></td> -</tr> -<tr class="row-odd"><td><p>MuTireSlideX2FRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Normalized scaling factor for sliding longitudinal force at double reference vertical force</p></td> -</tr> -<tr class="row-even"><td><p>SlipTireMaxXFRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Longitudinal slip at maximum longitudinal force at reference vertical force</p></td> -</tr> -<tr class="row-odd"><td><p>SlipTireMaxX2FRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Longitudinal slip at maximum longitudinal force at double reference vertical force</p></td> -</tr> -<tr class="row-even"><td><p>SlipTireSlideXFRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Longitudinal slip at sliding longitudinal force at reference vertical force</p></td> -</tr> -<tr class="row-odd"><td><p>SlipTireSlideX2FRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Longitudinal slip at sliding longitudinal force at double reference vertical force</p></td> -</tr> -<tr class="row-even"><td><p>F0pXFRef</p></td> -<td><p>VectorDouble</p></td> -<td><p>N</p></td> -<td><p>Initial slope of longitudinal force at reference force</p></td> -</tr> -<tr class="row-odd"><td><p>F0pX2FRef</p></td> -<td><p>VectorDouble</p></td> -<td><p>N</p></td> -<td><p>Initial slope of longitudinal force at double reference force</p></td> -</tr> -<tr class="row-even"><td><p>MuTireMaxYFRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Normalized scaling factor for maximum lateral force at reference vertical force</p></td> -</tr> -<tr class="row-odd"><td><p>MuTireMaxY2FRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Normalized scaling factor for maximum lateral force at double reference vertical force</p></td> -</tr> -<tr class="row-even"><td><p>MuTireSlideYFRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Normalized scaling factor for sliding lateral force at reference vertical force</p></td> -</tr> -<tr class="row-odd"><td><p>MuTireSlideY2FRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Normalized scaling factor for sliding lateral force at double reference vertical force</p></td> -</tr> -<tr class="row-even"><td><p>SlipTireMaxYFRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Lateral slip at maximum lateral force at reference vertical force</p></td> -</tr> -<tr class="row-odd"><td><p>SlipTireMaxY2FRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Lateral slip at maximum lateral force at double reference vertical force</p></td> -</tr> -<tr class="row-even"><td><p>SlipTireSlideYFRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Lateral slip at sliding lateral force at reference vertical force</p></td> -</tr> -<tr class="row-odd"><td><p>SlipTireSlideY2FRef</p></td> -<td><p>VectorDouble</p></td> -<td></td> -<td><p>Lateral slip at sliding lateral force at double reference vertical force</p></td> -</tr> -<tr class="row-even"><td><p>F0pYFRef</p></td> -<td><p>VectorDouble</p></td> -<td><p>N</p></td> -<td><p>Initial slope of lateral force at reference force</p></td> -</tr> -<tr class="row-odd"><td><p>F0pY2FRef</p></td> -<td><p>VectorDouble</p></td> -<td><p>N</p></td> -<td><p>Initial slope of lateral force at double reference force</p></td> -</tr> -<tr class="row-even"><td><p>FRef</p></td> -<td><p>VectorDouble</p></td> -<td><p>N</p></td> -<td><p>Vertical reference force for the tire parameters</p></td> -</tr> -<tr class="row-odd"><td><p>FRefNormalized</p></td> -<td><p>VectorBool</p></td> -<td></td> -<td><p>Should the reference force be scaled with the static vertical tire force?</p></td> -</tr> -<tr class="row-even"><td><p>Inertia</p></td> -<td><p>VectorDouble</p></td> -<td><p>kgm²</p></td> -<td><p>Inertia of tire</p></td> -</tr> -<tr class="row-odd"><td><p>PneumaticTrail</p></td> -<td><p>VectorDouble</p></td> -<td><p>m</p></td> -<td><p>Pneumatic trail of tire</p></td> -</tr> -</tbody> -</table> -<p>The normalized factors refer to the reference vertical force or to the double reference vertical force -The input variables used by the model are tire drive and braking torques as well as the wheel angles and vertical wheel forces. All data is provided as vectors. -The model determines tire forces in the longitudinal and lateral directions as well as the wheel self aligning torques. The wheel self aligning torque is formed from the product of the tire side force and the pneumatic trail. -A linear interpolation is performed between the values for the reference force and the double reference force. If no degressive tire behavior is desired, the parameters for the double reference force must be set identically to the values for the reference force.</p> -<p>All forces are scaled with the coefficient of friction from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> (“FrictionCoefficientâ€).</p> -<p>All further information about the model can be found in the following sources:</p> -<p><a class="reference external" href="https://www.tmeasy.de/">https://www.tmeasy.de/</a></p> -<p>Rill, Georg. (2013). TMeasy – A Handling Tire Model based on a three-dimensional slip approach.</p> -</section> -<section id="dynamicsmotionmodel"> -<span id="components-motionmodel"></span><h3>DynamicsMotionModel<a class="headerlink" href="#dynamicsmotionmodel" title="Link to this heading">ïƒ</a></h3> -<p>The motion model converts the tire forces (input) into a translational and rotational movement of the vehicle. The air resistance of the vehicle is taken into account. For the dynamic calculation, the center of gravity position is taken from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> (“XPositionCOGâ€,â€YPositionCOGâ€), -which indicates the distance of the center of gravity to the center of the rear axle. If this data is not given, the center of gravity is positioned on half wheelbase. For air resistance, the properties “AirDragCoefficient†& “FrontSurface†from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> are used.</p> -<p>For the equations of motion, see relevant vehicle dynamics books such as:</p> -<p>Kücükay, Ferit (2022), “Grundlagen der Fahrzeugtechnikâ€, page 1067 ff</p> -</section> -</section> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="spawner.html" class="btn btn-neutral float-left" title="Spawner" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="../../../advanced_topics/20_simulator_advanced.html" class="btn btn-neutral float-right" title="Simulator" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>VehicleComponents — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../../_static/doctools.js?v=888ff710"></script> + <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../../genindex.html" /> + <link rel="search" title="Search" href="../../../search.html" /> + <link rel="next" title="Simulator" href="../../../advanced_topics/20_simulator_advanced.html" /> + <link rel="prev" title="Spawner" href="spawner.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../../index.html" class="icon icon-home"> + openPASS + <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../../10_overview.html">Overview</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../20_tutorials.html">Tutorials</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../../50_scenario_simulation.html">Simulator</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l2 current"><a class="reference internal" href="../20_components.html">Component View</a><ul class="current"> +<li class="toctree-l3 current"><a class="reference internal" href="../20_components.html#components-in-depth">Components in Depth</a><ul class="current"> +<li class="toctree-l4"><a class="reference internal" href="algorithm_lateral.html">Algorithm_Lateral</a></li> +<li class="toctree-l4"><a class="reference internal" href="algorithm_longitudinal.html">Algorithm_Longitudinal</a></li> +<li class="toctree-l4"><a class="reference internal" href="driver.html">Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_regular_driving.html">Dynamics_RegularDriving</a></li> +<li class="toctree-l4"><a class="reference internal" href="dynamics_scenario.html">Dynamics_Scenario</a></li> +<li class="toctree-l4"><a class="reference internal" href="sensor_driver.html">Sensor_Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="spawner.html">Spawner</a></li> +<li class="toctree-l4 current"><a class="current reference internal" href="#">VehicleComponents</a></li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../../50_scenario_simulation.html">Simulator</a></li> + <li class="breadcrumb-item"><a href="../20_components.html">Component View</a></li> + <li class="breadcrumb-item active">VehicleComponents</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../../_sources/user_guide/sim_user_guide/components/vehicle.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="vehiclecomponents"> +<span id="components-vehiclecomponents"></span><h1>VehicleComponents<a class="headerlink" href="#vehiclecomponents" title="Link to this heading">ïƒ</a></h1> +<section id="aeb"> +<span id="components-aeb"></span><h2>AEB<a class="headerlink" href="#aeb" title="Link to this heading">ïƒ</a></h2> +<p>The Autonomous Emergency Braking system checks if a collision is likely to occur in the near future and, if necessary, brakes to avoid the collision. +In each timestep, the system evaluates all objects detected by a Sensor and calculates the time to collision (TTC) for this object based on the perceived movement of the object. +If, for any object, the TTC is lower than the threshold of the component, then the component gets activated. The system deactivates if the TTC is larger than 1,5 times the threshold of the component.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>CollisionDetectionLongitudinalBoundary</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Additional length added the vehicle boundary when checking for collision detection</p></td> +</tr> +<tr class="row-odd"><td><p>CollisionDetectionLateralBoundary</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Additional width added the vehicle boundary when checking for collision detection</p></td> +</tr> +<tr class="row-even"><td><p>TTC</p></td> +<td><p>Double</p></td> +<td><p>s</p></td> +<td><p>Time to collision which is used to trigger AEB</p></td> +</tr> +<tr class="row-odd"><td><p>Acceleration</p></td> +<td><p>Double</p></td> +<td><p>m/s²</p></td> +<td><p>Braking acceleration when activated</p></td> +</tr> +</tbody> +</table> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"AEB"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Type=</span><span class="s">"AEB"</span><span class="w"> </span><span class="na">Name=</span><span class="s">"AEB1"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"CollisionDetectionLongitudinalBoundary"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"4.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"CollisionDetectionLateralBoundary"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1.5"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"TTC"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"2.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Acceleration"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"-2"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Profile></span> +<span class="w"> </span>... +<span class="nt"></ProfileGroup></span> +</pre></div> +</div> +</section> +<section id="dynamicstrajectoryfollower"> +<span id="components-trajectoryfollower"></span><h2>DynamicsTrajectoryFollower<a class="headerlink" href="#dynamicstrajectoryfollower" title="Link to this heading">ïƒ</a></h2> +<p>This module forces agents to drive according to a specific trajectory. The trajectory is defined in the scenario. This module is disabled by default and is activated if a trajectory from <a class="reference external" href="https://www.asam.net/standards/detail/openscenario/">OpenSCENARIO</a> is triggered. +It is always important that the trajectories matches the current scenery file, otherwise the Agent could be placed outside of valid lanes. If the agent gets placed on a invalid position, it will be deleted.</p> +<p>All attributes are required.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>AutomaticDeactivation</p></td> +<td><p>Bool</p></td> +<td><p>If true, the trajectory follower relinquishes control of the vehicle after the final instruction in the TrajectoryFile. +If false, it stops at the last point of the trajectory.</p></td> +</tr> +<tr class="row-odd"><td><p>EnforceTrajectory</p></td> +<td><p>Bool</p></td> +<td><p>If true, the trajectory follower overrides external input related to the vehicle’s travel.</p></td> +</tr> +</tbody> +</table> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"DynamicsTrajectoryFollower"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"BasicTrajectoryFollower"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"AutomaticDeactivation"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"EnforceTrajectory"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Profile></span> +<span class="nt"></ProfileGroup></span> +</pre></div> +</div> +</section> +<section id="fmu-wrapper"> +<span id="components-fmuwrapper"></span><h2>FMU Wrapper<a class="headerlink" href="#fmu-wrapper" title="Link to this heading">ïƒ</a></h2> +<p>The FMU Wrapper provides a connection to arbitrary FMUs (Functional Mock-up Unit). +An FMU has to be compatible with the FMI 1.0 or the FMI 2.0 specification (Functional Mock-up Interface) and has to be ABI (Application Binary Interface) compatible with the opSimulation binary.</p> +<p>Additional reading about FMI is provided by the FMI standard website at <a class="reference external" href="https://fmi-standard.org/">https://fmi-standard.org/</a>. +For interfacing the FMUs in openPASS, the Modelon FMI Library is used, which is recommended on the FMI standard website. See <a class="reference external" href="https://jmodelica.org/">https://jmodelica.org/</a>.</p> +<p><strong>FMU package format</strong></p> +<p>FMI defines a packaging format for FMUs. +The used container format is ZIP. +It basically contains - among other parts - the compiled FMU code (as <code class="docutils literal notranslate"><span class="pre">*.dll</span></code> or <code class="docutils literal notranslate"><span class="pre">*.so</span></code>, depending on the platform) and the <code class="docutils literal notranslate"><span class="pre">modelDescription.xml</span></code>. +Latter provides meta-data about the FMU, i. e. +- Author information +- Model name, identifier and description +- Generation timestamp +- Name and datatype of model variables (inputs and outputs)</p> +<p><strong>Architectural overview</strong></p> +<p>The wrapper is instantiated as a component of an agent. +It reads the input variables for the FMU from the simulation and provides it the FMU and reads the output of the FMU and forwards it via signals to other agent components.</p> +<img alt="|op| FMU wrapper architectural overview" src="../../../_images/FmuWrapperOverview.svg" /><p><strong>Framework channels</strong></p> +<p>The wrapper can use input and output signals via <em>Channels</em> as every other agent component does. +Framework channels (signals) can provide data and can also be written to by the wrapper. +In addition, the wrapper is able to access the c AgentInterface and c WorldInterface methods.</p> +<p><strong>FMI variables</strong></p> +<p>Communication with the FMU happens via FMI variables (inputs and outputs). +The wrapper will read in available variables from <code class="docutils literal notranslate"><span class="pre">modelDescription.xml</span></code> in the FMU package. +These variables need to be mapped to variables and signals of openPASS in the VehicleComponentProfile.</p> +<p>FMI 1.0 supports these standard datatypes: +- bool +- integer +- real +- string</p> +<p>By using OSMP, three integer values can be used to support full osi messages</p> +<p><strong>Configuration</strong></p> +<p>Configuration of a particular FMU takes place in <code class="docutils literal notranslate"><span class="pre">ProfilesCatalog.xml</span></code>. +An example of a static system configuration can be found here “sim/contrib/examples/Configurations/StaticOSMPSensorDataToTrafficUpdateStepperâ€.</p> +<p>The following parameters are always required for the FmuWrapper. Depending on the FmuHandler additional parameters may be needed.</p> +<table class="tight-table docutils align-default" id="fmuwrapper-basic-configuration"> +<thead> +<tr class="row-odd"><th class="head"><p>Key</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Default</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>FmuPath</p></td> +<td><p>string</p></td> +<td><p>-</p></td> +<td><p>Path to FMU file, either absolute or relative to the simulator’s configuration directory.</p></td> +</tr> +<tr class="row-odd"><td><p>Logging</p></td> +<td><p>bool</p></td> +<td><p>true</p></td> +<td><p>If set to true, FMU initialization and execution task are logged to a text file.</p></td> +</tr> +<tr class="row-even"><td><p>CsvOutput</p></td> +<td><p>bool</p></td> +<td><p>true</p></td> +<td><p>If set to true, FMI outputs are logged to a CSV file.</p></td> +</tr> +</tbody> +</table> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"FMU1"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"FMU"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FmuPath"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"OSMPSDToTUS.fmu"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Logging"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"true"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"CsvOutput"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Input_OSMPSensorDataIn"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"SensorData"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Input_OSMPSensorViewInConfig"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"SensorViewConfig"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Output_OSMPTrafficUpdateOut"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"TrafficUpdate"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Output_OSMPSensorViewInConfigRequest"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"SensorViewConfigRequest"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"WriteJson_SensorData"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"WriteJson_TrafficUpdate"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Profile></span> +<span class="nt"></ProfileGroup></span> +</pre></div> +</div> +<p>Upon instantiation of the FMU wrapper, it will extract the FMU ZIP file to a temporary directory. +Then the <code class="docutils literal notranslate"><span class="pre">modelDescription.xml</span></code> is parsed and the FMU is checked for compatibility.</p> +<p>If the parameter <code class="docutils literal notranslate"><span class="pre">CsvOutput</span></code> is set to <cite>true</cite>, a subfolder “FmuWrapper/Agent<ID>†will be created in the simulator’s “results†directory. +“<ID>†is replaced with the agent id. +FMI output data will be logged to a file inside this directory. +The filename consists of the FMU’s name and extension “csvâ€. +This output can then be used for visualization in a spreadsheet application or it may be processed in any other way.</p> +<p>Same goes for parameter <code class="docutils literal notranslate"><span class="pre">Logging</span></code> (having “log†as output file extension).</p> +<p><strong>Primitive Datatypes</strong></p> +<p>The FMU Wrapper allows to link Simulink models or any other FMU to <strong>openPASS</strong>. +It lets the user link any input variables of the FMU to values of the Agent in the simulation and any output values of the FMU to signals, that are forwarded to other <strong>openPASS</strong> components. +These mappings are defined with the following optional parameters.</p> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Be careful with the size of integer data types when used in Matlab/Simulink. The FMU integer data type shall always be 32 bit or bigger, e.g. for IDs.</p> +</div> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Key</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Parameter_<em>varName</em></p></td> +<td><p>any</p></td> +<td><p>Mapping of a fixed value (bool, integer, double, string) to an FMU input:</p> +<ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">varName</span></code> references an FMI input variable.</p></li> +<li><p>The type of the parameter has to match the FMI variable type.</p></li> +</ul> +</td> +</tr> +<tr class="row-odd"><td><p>Parameter_AssignSpecial_<em>varName</em></p></td> +<td><p>any</p></td> +<td><p>Mapping of a specific value of the simulation to an FMU input, assigned only once at FMU initialization:</p> +<ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">varName</span></code> references an FMI input variable.</p></li> +<li><p>The parameter is always of type string.</p></li> +<li><p>The value of this parameter has to be one of the types specified in the <a class="reference internal" href="#special-simulation-values">Special simulation values</a> table below, +which will also determine the required type of the FMI variable.</p></li> +</ul> +</td> +</tr> +<tr class="row-even"><td><p>Input_<em>varName</em></p></td> +<td><p>string</p></td> +<td><p>Mapping of a specific value of the simulation to an FMU input:</p> +<ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">varName</span></code> references an FMI input variable.</p></li> +<li><p>The value of this parameter has to be one of the types specified in the <a class="reference internal" href="#input-simulation-values">Input simulation values</a> table below.</p></li> +</ul> +</td> +</tr> +<tr class="row-odd"><td><p>Output_<em>varName</em></p></td> +<td><p>string</p></td> +<td><p>Mapping of a FMU output to a specific field in a specific signal:</p> +<ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">varName</span></code> references an FMI output variable.</p></li> +<li><p>The value of this parameter has to be one of the types specified in the <a class="reference internal" href="#output-simulation-signals">Output simulation signals</a> table below.</p></li> +</ul> +</td> +</tr> +</tbody> +</table> +<p>The allowed special simulation values are as follows:</p> +<table class="tight-table docutils align-default" id="special-simulation-values"> +<thead> +<tr class="row-odd"><th class="head"><p>Type</p></th> +<th class="head"><p>FMU Variable Type</p></th> +<th class="head"><p>Calculation</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>RandomSeed</p></td> +<td><p>Integer</p></td> +<td><p>The random seed of the current simulation run.</p></td> +</tr> +<tr class="row-odd"><td><p>ConfigPath</p></td> +<td><p>String</p></td> +<td><p>Config directory supplied to opSimulation (or the corresponding default value)</p></td> +</tr> +<tr class="row-even"><td><p>OutputPath</p></td> +<td><p>String</p></td> +<td><p>An output path unique to this FmuWrapper instance. +The path will always refer to a directory below the simulator’s current result folder. +This directory is not necessarily created by the FmuWrapper, depending on the setting of +<cite>CsvOutput</cite> and <cite>Logging</cite> parameters (see <a class="reference internal" href="#fmuwrapper-basic-configuration">FmuWrapper basic configuration</a>).</p></td> +</tr> +<tr class="row-odd"><td><p>MaxSteering</p></td> +<td><p>Real</p></td> +<td><p>The <cite>max_steering</cite> property of an agent’s front axle as defined in OpenSCENARIO (catalog).</p></td> +</tr> +<tr class="row-even"><td><p>AxleRatio</p></td> +<td><p>Real</p></td> +<td><p>The axle ratio of the vehicle model. +Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name +<code class="docutils literal notranslate"><span class="pre">AxleRatio</span></code> and the value has to be a valid floating point expression.</p></td> +</tr> +<tr class="row-odd"><td><p>SteeringRatio</p></td> +<td><p>Real</p></td> +<td><p>The steering ratio of the vehicle model. +Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name +<code class="docutils literal notranslate"><span class="pre">SteeringRatio</span></code> and the value has to be a valid floating point expression.</p></td> +</tr> +<tr class="row-even"><td><p>NumberOfGears</p></td> +<td><p>Integer</p></td> +<td><p>The number of gears of the vehicle model. +Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name +<code class="docutils literal notranslate"><span class="pre">NumberOfGears</span></code> and the value has to be a valid integer.</p></td> +</tr> +<tr class="row-odd"><td><p>GearRatio<em>N</em></p></td> +<td><p>Real</p></td> +<td><p>The ratio of the Nth gear. +Has to be defined in the properties of the Entity in the OpenSCENARIO catalog with the name +<code class="docutils literal notranslate"><span class="pre">GearRatioN</span></code> and the value has to be a valid floating point expression. +<em>N</em> is allowed to be in the range 1-9.</p></td> +</tr> +</tbody> +</table> +<p>The allowed inputs (simulation values) are as follows:</p> +<table class="tight-table docutils align-default" id="input-simulation-values"> +<thead> +<tr class="row-odd"><th class="head"><p>Type</p></th> +<th class="head"><p>FMU Variable Type</p></th> +<th class="head"><p>Calculation</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>VelocityEgo</p></td> +<td><p>Real</p></td> +<td><p>Absolute velocity (length of the velocity vector) at reference point</p></td> +</tr> +<tr class="row-odd"><td><p>AccelerationEgo</p></td> +<td><p>Real</p></td> +<td><p>Longitudinal acceleration at reference point</p></td> +</tr> +<tr class="row-even"><td><p>CentripetalAccelerationEgo</p></td> +<td><p>Real</p></td> +<td><p>Centripetal acceleration at reference point</p></td> +</tr> +<tr class="row-odd"><td><p>SteeringWheelEgo</p></td> +<td><p>Real</p></td> +<td><p>Angle of the steering wheel (in radian)</p></td> +</tr> +<tr class="row-even"><td><p>AccelerationPedalPositionEgo</p></td> +<td><p>Real</p></td> +<td><p>Position of the acceleration pedal in the interval [0, 1]</p></td> +</tr> +<tr class="row-odd"><td><p>BrakePedalPositionEgo</p></td> +<td><p>Real</p></td> +<td><p>Position of the brake pedal in the interval [0, 1]</p></td> +</tr> +<tr class="row-even"><td><p>DistanceRefToFrontEdgeEgo</p></td> +<td><p>Real</p></td> +<td><p>Distance between the reference point and the front of the agent (static)</p></td> +</tr> +<tr class="row-odd"><td><p>PositionXEgo</p></td> +<td><p>Real</p></td> +<td><p>X position of the reference point</p></td> +</tr> +<tr class="row-even"><td><p>PositionYEgo</p></td> +<td><p>Real</p></td> +<td><p>Y position of the reference point</p></td> +</tr> +<tr class="row-odd"><td><p>YawEgo</p></td> +<td><p>Real</p></td> +<td><p>Yaw of the reference point</p></td> +</tr> +<tr class="row-even"><td><p>LaneEgo</p></td> +<td><p>Integer</p></td> +<td><p>Lane id of the front center on the route (0, if off route)</p></td> +</tr> +<tr class="row-odd"><td><p>PositionSEgo</p></td> +<td><p>Real</p></td> +<td><p>S position of the reference point on the route (0, if off route)</p></td> +</tr> +<tr class="row-even"><td><p>PositionTEgo</p></td> +<td><p>Real</p></td> +<td><p>T position of the reference point on the route (0, if off route)</p></td> +</tr> +<tr class="row-odd"><td><p>ExistenceFront</p></td> +<td><p>Boolean</p></td> +<td><p>true, if there is a object in front on the own lane (any range), false otherwise</p></td> +</tr> +<tr class="row-even"><td><p>PositionXFront</p></td> +<td><p>Real</p></td> +<td><p>X position of front object reference point (0, if no front object)</p></td> +</tr> +<tr class="row-odd"><td><p>PositionYFront</p></td> +<td><p>Real</p></td> +<td><p>Y position of front object reference point (0, if no front object)</p></td> +</tr> +<tr class="row-even"><td><p>YawFront</p></td> +<td><p>Real</p></td> +<td><p>Yaw of front object reference point (0, if no front object)</p></td> +</tr> +<tr class="row-odd"><td><p>PositionSFront</p></td> +<td><p>Real</p></td> +<td><p>S position of front object reference point on ego route (0, if no front object)</p></td> +</tr> +<tr class="row-even"><td><p>PositionTFront</p></td> +<td><p>Real</p></td> +<td><p>T position of front object reference point on ego route (0, if no front object)</p></td> +</tr> +<tr class="row-odd"><td><p>RelativeDistanceFront</p></td> +<td><p>Real</p></td> +<td><p>Net distance to front object along route (0, if no front object)</p></td> +</tr> +<tr class="row-even"><td><p>WidthFront</p></td> +<td><p>Real</p></td> +<td><p>Width of front object (0, if no front object)</p></td> +</tr> +<tr class="row-odd"><td><p>LengthFront</p></td> +<td><p>Real</p></td> +<td><p>Length of front object (0, if no front object)</p></td> +</tr> +<tr class="row-even"><td><p>DistanceRefToFrontEdgeFront</p></td> +<td><p>Real</p></td> +<td><p>Distance between the reference point and the front of the front object (0, if no front object)</p></td> +</tr> +<tr class="row-odd"><td><p>VelocityFront</p></td> +<td><p>Real</p></td> +<td><p>Absolute velocity of front object at reference point (0, if no front object)</p></td> +</tr> +<tr class="row-even"><td><p>LaneFront</p></td> +<td><p>Integer</p></td> +<td><p>Lane id of the reference point of the front object on the ego route (0, if no front object)</p></td> +</tr> +<tr class="row-odd"><td><p>ExistenceFrontFront</p></td> +<td><p>Boolean</p></td> +<td><p>true, if there are at least two objects in front on the own lane (any range), false otherwise</p></td> +</tr> +<tr class="row-even"><td><p>PositionXFrontFront</p></td> +<td><p>Real</p></td> +<td><p>X position of second front object reference point (0, if no second front object)</p></td> +</tr> +<tr class="row-odd"><td><p>PositionYFrontFront</p></td> +<td><p>Real</p></td> +<td><p>Y position of second front object reference point (0, if no second front object)</p></td> +</tr> +<tr class="row-even"><td><p>RelativeDistanceFrontFront</p></td> +<td><p>Real</p></td> +<td><p>Net distance to second front object reference point (0, if no second front object)</p></td> +</tr> +<tr class="row-odd"><td><p>VelocityFrontFront</p></td> +<td><p>Real</p></td> +<td><p>Absolute velocity of second front object reference point (0, if no second front object)</p></td> +</tr> +<tr class="row-even"><td><p>LaneFrontFront</p></td> +<td><p>Integer</p></td> +<td><p>Lane id of the reference point of second front object reference point (0, if no second front object)</p></td> +</tr> +<tr class="row-odd"><td><p>LaneCountLeft</p></td> +<td><p>Integer</p></td> +<td><p>Number of lanes to the left of front center of type Driving, Exit, Entry, OnRamp or OffRamp</p></td> +</tr> +<tr class="row-even"><td><p>LaneCountRight</p></td> +<td><p>Integer</p></td> +<td><p>Number of lanes to the right of front center of type Driving, Exit, Entry, OnRamp or OffRamp</p></td> +</tr> +<tr class="row-odd"><td><p>SpeedLimit_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Speed limit in effect in distance <em>X</em> meters from front center (999, if no speed limit)</p></td> +</tr> +<tr class="row-even"><td><p>RoadCurvature_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Road curvature in distance <em>X</em> meters from front center</p></td> +</tr> +</tbody> +</table> +<ul class="simple"> +<li><p><strong>reference point</strong>: Center of the rear axle</p></li> +<li><p><strong>front center</strong>: Center of the front of the bounding box of the object</p></li> +</ul> +<p>If the FmuWrapper is linked to at least one sensor with InputId “Cameraâ€, the following additional inputs are available. +The objects seen by this sensor(s) are sorted by distance from the agent and accessed by indices starting from 0. +For each object the values listed in the following table are available where <em>X</em> is the index of the object (between 0 and 9). +If there are less objects than <em>X</em>, a default value is set (-1 for the Id, 0 for the other values). +Only the list of objects is taken from the sensor. +The values are then calculated by the FmuWrapper (not from the SensorData).</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Type</p></th> +<th class="head"><p>FMU Variable Type</p></th> +<th class="head"><p>Calculation</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>SensorFusionObjectId_<em>X</em></p></td> +<td><p>Integer</p></td> +<td><p>Id of the object</p></td> +</tr> +<tr class="row-odd"><td><p>SensorFusionNumberOfDetectingSensors_<em>X</em></p></td> +<td><p>Integer</p></td> +<td><p>Number of sensors detecting the object</p></td> +</tr> +<tr class="row-even"><td><p>SensorFusionRelativeS_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Distance between reference points along route (NaN, if object not on route)</p></td> +</tr> +<tr class="row-odd"><td><p>SensorFusionRelativeNetS_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Net distance along route (NaN, if object not on route)</p></td> +</tr> +<tr class="row-even"><td><p>SensorFusionRelativeT_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Lateral obstruction for front center (NaN, if object not on route) (see <a class="reference internal" href="../../../advanced_topics/simulator/world_osi.html#world-getobstruction"><span class="std std-ref">GetObstruction</span></a>)</p></td> +</tr> +<tr class="row-odd"><td><p>SensorFusionRelativeX_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Relative distance between reference points in x in world coordinates</p></td> +</tr> +<tr class="row-even"><td><p>SensorFusionRelativeY_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Relative distance between reference points in y in world coordinates</p></td> +</tr> +<tr class="row-odd"><td><p>SensorFusionRelativeNetLeft_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Lateral obstruction for leftmost point (NaN, if object not on route)</p></td> +</tr> +<tr class="row-even"><td><p>SensorFusionRelativeNetRight_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Lateral obstruction for rightmost point (NaN, if object not on route)</p></td> +</tr> +<tr class="row-odd"><td><p>SensorFusionRelativeNetX_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Net distance between bounding boxes in x in world coordinates</p></td> +</tr> +<tr class="row-even"><td><p>SensorFusionRelativeNetY_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Net distance between bounding boxes in y in world coordinates</p></td> +</tr> +<tr class="row-odd"><td><p>SensorFusionLane_<em>X</em></p></td> +<td><p>Integer</p></td> +<td><p>Lane of front center</p></td> +</tr> +<tr class="row-even"><td><p>SensorFusionVelocity_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Absolute velocity at reference point</p></td> +</tr> +<tr class="row-odd"><td><p>SensorFusionVelocityX_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Velocity in x at reference point in world coordinates</p></td> +</tr> +<tr class="row-even"><td><p>SensorFusionVelocityY_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Velocity in y at reference point in world coordinates</p></td> +</tr> +<tr class="row-odd"><td><p>SensorFusionYaw_<em>X</em></p></td> +<td><p>Real</p></td> +<td><p>Yaw in world coordinates</p></td> +</tr> +</tbody> +</table> +<p>The FMU wrapper can output one or more of these signals: +AccelerationSignal, LongitudinalSignal, SteeringSignal and DynamicsSignal</p> +<p>The name of the signal field has to be specified after the signal name. +This means the output type is one of the following:</p> +<table class="tight-table docutils align-default" id="output-simulation-signals"> +<thead> +<tr class="row-odd"><th class="head"><p>Type</p></th> +<th class="head"><p>FMU Variable Type</p></th> +<th class="head"><p>Enum Values</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>ComponentState</p></td> +<td><p>Enum</p></td> +<td><p>Undefined, Disabled, Armed, Acting</p></td> +</tr> +<tr class="row-odd"><td><p>AccelerationSignal_Acceleration</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>LongitudinalSignal_AccPedalPos</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>LongitudinalSignal_BrakePedalPos</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>LongitudinalSignal_Gear</p></td> +<td><p>Int</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>SteeringSignal_SteeringWheelAngle</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>DynamicsSignal_Acceleration</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>DynamicsSignal_Velocity</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>DynamicsSignal_PositionX</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>DynamicsSignal_PositionY</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>DynamicsSignal_Yaw</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>DynamicsSignal_YawRate</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>DynamicsSignal_YawAcceleration</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>DynamicsSignal_SteeringWheelAngle</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>DynamicsSignal_CentripetalAcceleration</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-odd"><td><p>DynamicsSignal_TravelDistance</p></td> +<td><p>Real</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>CompCtrlSignal_MovementDomain</p></td> +<td><p>Enum</p></td> +<td><p>Undefined, Lateral, Longitudinal, Both</p></td> +</tr> +<tr class="row-odd"><td><p>CompCtrlSignal_WarningActivity</p></td> +<td><p>Bool</p></td> +<td></td> +</tr> +<tr class="row-even"><td><p>CompCtrlSignal_WarningLevel</p></td> +<td><p>Enum</p></td> +<td><p>INFO, WARNING</p></td> +</tr> +<tr class="row-odd"><td><p>CompCtrlSignal_WarningType</p></td> +<td><p>Enum</p></td> +<td><p>OPTIC, ACOUSTIC, HAPTIC</p></td> +</tr> +<tr class="row-even"><td><p>CompCtrlSignal_WarningIntensity</p></td> +<td><p>Enum</p></td> +<td><p>LOW, MEDIUM, HIGH</p></td> +</tr> +<tr class="row-odd"><td><p>CompCtrlSignal_WarningDirection</p></td> +<td><p>Enum</p></td> +<td></td> +</tr> +</tbody> +</table> +<p>If one of these fields of a signal (except ComponentState) is mapped to an FMU variable, all fields of this signal have to be mapped. +If the ComponentState is mapped to a FMU variable, it is used for all signals, otherwise it defaults to Acting.</p> +<p><strong>OSI Data</strong></p> +<p>OSMP (OsiSensorModelPackaging) is a package layer specification for the Open Simulation Interface (OSI). +It allows to pass input to the FMU as OSI messages as well as receive output as OSI message. +For more information on OSMP see <a class="reference external" href="https://github.com/OpenSimulationInterface/osi-sensor-model-packaging">https://github.com/OpenSimulationInterface/osi-sensor-model-packaging</a>.</p> +<p>The FmuHandler has the following additional (optional) parameters:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Key</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>Init_<em>var_name</em></p></td> +<td><p>string</p></td> +<td><p><em>var_name</em> references an FMU variable (as defined in FMU’s modelDescription.xml) to which a specific OSI message is sent during initialization Allowed values: <cite>GroundTruth</cite></p></td> +</tr> +<tr class="row-odd"><td><p>Input_<em>var_name</em></p></td> +<td><p>string</p></td> +<td><p><em>var_name</em> references an FMU variable (as defined in FMU’s modelDescription.xml) to which a specific OSI message is sent Allowed values: <cite>SensorView</cite>, <cite>SensorViewConfig</cite>, <cite>SensorData</cite>, <cite>TrafficCommand</cite></p></td> +</tr> +<tr class="row-even"><td><p>Output_<em>var_name</em></p></td> +<td><p>string</p></td> +<td><p><em>var_name</em> references an FMU variable (as defined in FMU’s modelDescription.xml) from which a specific OSI message is received Allowed values: <cite>SensorViewConfigRequest</cite>, <cite>SensorData</cite>, <cite>TrafficUpdate</cite></p></td> +</tr> +<tr class="row-odd"><td><p>Parameter_<em>var_name</em></p></td> +<td><p>any</p></td> +<td><p>The value of the parameter is assigned to the FMU variable <em>var_name</em></p></td> +</tr> +<tr class="row-even"><td><p>Parameter_<em>transformation</em>[<em>mapping</em> ]_<em>name</em></p></td> +<td><p>string/string/any*</p></td> +<td><p>Same as Parameter_<em>name</em> but with an preceding <em>transformation</em> according to a <em>mapping</em>. <br> Currently, only mappings between the same types are supported. <br> *;When using <cite>TransformList</cite> as <em>transformation</em>, the type of the data is expected to be a string and the string must be a comma separated list of values. <br> <br> Allowed values: <br> <em>transformation</em>: <cite>Transform</cite>, <cite>TransformList</cite> <br> <em>mapping</em>: <cite>ScenarioName>Id</cite> <br> <br> Example: <cite>Parameter_TransformList[ScenarioName>Id]_*name*</cite></p></td> +</tr> +<tr class="row-odd"><td><p>WriteJson_<em>var_name</em></p></td> +<td><p>bool</p></td> +<td><p>If true the osi message specified by <em>var_name</em> is written to a json file</p></td> +</tr> +<tr class="row-even"><td><p>WriteTrace_<em>var_name</em></p></td> +<td><p>bool</p></td> +<td><p>If true the osi message specified by <em>var_name</em> is written to the trace file</p></td> +</tr> +<tr class="row-odd"><td><p>EnforceDoubleBuffering</p></td> +<td><p>bool</p></td> +<td><p>If true the wrapper will throw an error if FMU doesn’t use double buffering. Defaults to false.</p></td> +</tr> +</tbody> +</table> +<p>The type of OSI messages the FmuHandler sends and receives is defined by its parameters. Only messages for which an FMU variable is given in the configuration are sent/received. +An additional parameter defines whether the message should be logged as JSON file for every agent and every timestep (see table above).</p> +<p>Currently these messages are supported:</p> +<ul class="simple"> +<li><p>SensorView: SensorView generated from the GroundTruth with this agent is host vehicle.</p></li> +<li><p>SensorViewConfig, SensorViewConfigRequest: Configuration of a sensor according to OSMP.</p></li> +<li><p>TrafficCommand: Trajectory from <a class="reference external" href="https://www.asam.net/standards/detail/openscenario/">OpenSCENARIO</a>, that will be converted into a TrafficCommand.</p></li> +<li><p>SensorData: Output of a sensor. Can be input and/or output of an FMU. Received SensorData is forwarded to other components as SensorDataSignal.</p></li> +<li><p>TrafficUpdate: Will be converted to a DynamicsSignal, AccelerationSignal, SteeringSignal or LongitudinalSignal. If the update is empty, the signal will have ComponentState::Disabled. If it is only partially filled, the missing values for the DynamicsSignal will be set to the current state.</p></li> +<li><p>GroundTruth: Will be used as groundtruth information for everything that exists in the simulation world.</p></li> +</ul> +<p><strong>FmuVariables</strong></p> +<p>FmuVariables can have different variability and causality.</p> +<ul class="simple"> +<li><p>There are the following causalities: Input, Output, Parameter and CalculatedParameter</p></li> +<li><p>Input or outputs can have the variability constant, fixed, discrete or continuous</p></li> +<li><p>Parameter or CalculatedParameter can have the variability constant, fixed or tunable</p></li> +</ul> +<p>In openPASS we have the initialization phase, which is only called once. In that phase first readValues is called. +Then parameter values are synchronized between different config files. The following priority is used for the synchronization:</p> +<p>modelDescription < systemConfig < SSP config.</p> +<p>Afterwards still in the initialization phase writeValues is called. +During the whole simulation in openPASS all the trigger functions are called each time step. +For the FMU component we call WriteValues before trigger and readValues afterwards. +For the first two time steps we have the following calls for read- and writeValues:</p> +<blockquote> +<div><ol class="arabic simple"> +<li><p>ReadValues (Init)</p></li> +<li><p>WriteValues (Init)</p></li> +<li><p>WriteValues</p></li> +<li><p>Trigger</p></li> +<li><p>ReadValues</p></li> +<li><p>WriteValues</p></li> +<li><p>Trigger</p></li> +<li><p>ReadValues</p></li> +</ol> +</div></blockquote> +<p>Depending on them, FmuVariables are written/read to/from the FMU on different occasions, which is shown in the following table.</p> +<table class="docutils align-default" id="id1"> +<caption><span class="caption-text">Write- and ReadValues depending on variability and causality</span><a class="headerlink" href="#id1" title="Link to this table">ïƒ</a></caption> +<colgroup> +<col style="width: 20.0%" /> +<col style="width: 20.0%" /> +<col style="width: 20.0%" /> +<col style="width: 20.0%" /> +<col style="width: 20.0%" /> +</colgroup> +<thead> +<tr class="row-odd"><th class="head stub"></th> +<th class="head"><p>ReadValues - Init</p></th> +<th class="head"><p>WriteValues - Init</p></th> +<th class="head"><p>WriteValues - Trigger</p></th> +<th class="head"><p>ReadValues - Trigger</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><th class="stub"><p>Input - fixed</p></th> +<td><p>x</p></td> +<td><p>x</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><th class="stub"><p>Input - discrete or continuous</p></th> +<td><p>x</p></td> +<td><p>x</p></td> +<td><p>x</p></td> +<td></td> +</tr> +<tr class="row-even"><th class="stub"><p>Output - fixed</p></th> +<td><p>x</p></td> +<td></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><th class="stub"><p>Output - discrete or continuous</p></th> +<td><p>x</p></td> +<td></td> +<td></td> +<td><p>x</p></td> +</tr> +<tr class="row-even"><th class="stub"><p>Parameter - fixed</p></th> +<td><p>x</p></td> +<td><p>x</p></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><th class="stub"><p>Parameter - tunable</p></th> +<td><p>x</p></td> +<td><p>x</p></td> +<td><p>x</p></td> +<td></td> +</tr> +<tr class="row-even"><th class="stub"><p>CalculatedParameter - fixed</p></th> +<td><p>x</p></td> +<td></td> +<td></td> +<td></td> +</tr> +<tr class="row-odd"><th class="stub"><p>CalculatedParameter - tunable</p></th> +<td><p>x</p></td> +<td></td> +<td></td> +<td><p>x</p></td> +</tr> +</tbody> +</table> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>For alle kinds of Input, Output, Parameter and CalculatedParameter there exists the variablity “constantâ€. +All constant values are only read into openPASS once at the initialization phase. +Never will these values be written onto the FMU.</p> +</div> +</section> +<section id="sensorgeometric2d"> +<span id="components-geometric2d"></span><h2>SensorGeometric2D<a class="headerlink" href="#sensorgeometric2d" title="Link to this heading">ïƒ</a></h2> +<p>This sensor is selected, when a sensor is parameterized as ProfileGroup “Geometric2Dâ€.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Parameter</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>DetectionRange</p></td> +<td><p>Double</p></td> +<td><p>m</p></td> +<td><p>Detection range</p></td> +</tr> +<tr class="row-odd"><td><p>EnableVisualObstruction</p></td> +<td><p>Bool</p></td> +<td></td> +<td><p>Activates 2D sensor obstruction calculation</p></td> +</tr> +<tr class="row-even"><td><p>FailureProbability</p></td> +<td><p>Double</p></td> +<td></td> +<td><p>Probability object is not detected although it is visible</p></td> +</tr> +<tr class="row-odd"><td><p>Latency</p></td> +<td><p>Double</p></td> +<td><p>s</p></td> +<td><p>Delay the sensor output</p></td> +</tr> +<tr class="row-even"><td><p>DetectionDelayTime</p></td> +<td><p>Double</p></td> +<td><p>s</p></td> +<td><p>Time an object needs to be in detection range before it is detected (optional)</p></td> +</tr> +<tr class="row-odd"><td><p>MaxDropOutTime</p></td> +<td><p>Double</p></td> +<td><p>s</p></td> +<td><p>Time after which delay for undetected object starts anew (optional)</p></td> +</tr> +<tr class="row-even"><td><p>OpeningAngleH</p></td> +<td><p>Double</p></td> +<td><p>rad</p></td> +<td><p>Horizontal opening angle</p></td> +</tr> +<tr class="row-odd"><td><p>RequiredPercentageOfVisibleArea</p></td> +<td><p>Double</p></td> +<td></td> +<td><p>Required percentage of an object within the sensor cone to trigger a detection</p></td> +</tr> +</tbody> +</table> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"Geometric2D"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Standard"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"DetectionRange"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"300"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Bool</span><span class="w"> </span><span class="na">Key=</span><span class="s">"EnableVisualObstruction"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"false"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FailureProbability"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><NormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Latency"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">Mean=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">SD=</span><span class="s">"0.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"OpeningAngleH"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.35"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"RequiredPercentageOfVisibleArea"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0.001"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"DetectionDelayTime"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"MaxDropOutTime"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Profile></span> +<span class="nt"></ProfileGroup></span> +</pre></div> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Sensors also need a mounting position, defined w.r.t. the coordinate system of the vehicle (center of rear axis). +See also <a class="reference internal" href="../../configs/profilescatalog.html#profilescatalog-systemprofiles"><span class="std std-ref">SystemProfiles</span></a>.</p> +</div> +</section> +<section id="receivercar2x"> +<h2>ReceiverCar2X<a class="headerlink" href="#receivercar2x" title="Link to this heading">ïƒ</a></h2> +<p>This type is selected, when a sensor is parameterized as ProfileGroup “ReceiverCar2Xâ€.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Parameter</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>FailureProbability</p></td> +<td><p>Double</p></td> +<td></td> +<td><p>Probability object is not detected although it is visible</p></td> +</tr> +<tr class="row-odd"><td><p>Latency</p></td> +<td><p>Double</p></td> +<td><p>s</p></td> +<td><p>Sensor latency</p></td> +</tr> +<tr class="row-even"><td><p>Sensitivity</p></td> +<td><p>Double</p></td> +<td><p>W/m²</p></td> +<td><p>Sensitivity of the sensor</p></td> +</tr> +</tbody> +</table> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"ReceiverCar2X"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"Standard"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><NormalDistribution</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Latency"</span><span class="w"> </span><span class="na">Mean=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">SD=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">Min=</span><span class="s">"0.0"</span><span class="w"> </span><span class="na">Max=</span><span class="s">"0.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"FailureProbability"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"><Double</span><span class="w"> </span><span class="na">Key=</span><span class="s">"Sensitivity"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"1e-5"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Profile></span> +<span class="nt"></ProfileGroup></span> +</pre></div> +</div> +<p>The moving object is detected if the received SignalStrength is greater than the Sensitivity of the ReceiverCar2X .</p> +<p>The received SignalStrength is calculated by <img class="math" src="../../../_images/math/58936aa7043ecf62ec13166d1c340a6d7369c8fc.png" alt="ss_{\text{received}} = \frac {ss_{\text{sender}}} {4 \cdot pi \cdot d \cdot d}"/>, where the symbols meanings are:</p> +<table class="docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Symbol</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p><img class="math" src="../../../_images/math/9d60d7b2311a5ab7cdaddaa12d7afcea0d61e610.png" alt="ss_{\text{received}}"/></p></td> +<td><p>Received strength of the signal [1/m²]</p></td> +</tr> +<tr class="row-odd"><td><p><img class="math" src="../../../_images/math/b4e3a410356817edeee8a7f41f7a577e2c269c48.png" alt="ss_{\text{sender}}"/></p></td> +<td><p>Sent strength of the signal [1/m²]</p></td> +</tr> +<tr class="row-even"><td><p><img class="math" src="../../../_images/math/badad346f6fbe2e237af99bfbd9a93a4da53a3da.png" alt="d"/></p></td> +<td><p>Distance between the receiver agent and sender [m]</p></td> +</tr> +</tbody> +</table> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>Sensors also need a mounting position, defined w.r.t. the coordinate system of the vehicle (center of rear axis). +See also <a class="reference internal" href="../../configs/profilescatalog.html#profilescatalog-systemprofiles"><span class="std std-ref">SystemProfiles</span></a>.</p> +</div> +</section> +<section id="ssp"> +<h2>SSP<a class="headerlink" href="#ssp" title="Link to this heading">ïƒ</a></h2> +<p>A SSP can be added as vehicle component. It’s a blackbox of one or multiple FMUs.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Parameter</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>SspPath</p></td> +<td><p>String</p></td> +<td><p>path</p></td> +<td><p>config relative path to ssp archive</p></td> +</tr> +</tbody> +</table> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><ProfileGroup</span><span class="w"> </span><span class="na">Type=</span><span class="s">"SSP1"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><Profile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"SSP"</span><span class="nt">></span> +<span class="w"> </span><span class="nt"><String</span><span class="w"> </span><span class="na">Key=</span><span class="s">"SspPath"</span><span class="w"> </span><span class="na">Value=</span><span class="s">"ConnectionTest.ssp"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></Profile></span> +<span class="nt"></ProfileGroup></span> +</pre></div> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>To add the ssp component to a system profile do the following: +See also <a class="reference internal" href="../../configs/profilescatalog.html#profilescatalog-systemprofiles"><span class="std std-ref">SystemProfiles</span></a>.</p> +</div> +<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="w"> </span><span class="nt"><SystemProfile</span><span class="w"> </span><span class="na">Name=</span><span class="s">"EgoVehicle"</span><span class="w"> </span><span class="na">Probability=</span><span class="s">"1.0"</span><span class="nt">/></span> +<span class="w"> </span><span class="nt"></SystemProfiles></span> +</pre></div> +</div> +</section> +<section id="vehicledynamics"> +<h2>VehicleDynamics<a class="headerlink" href="#vehicledynamics" title="Link to this heading">ïƒ</a></h2> +<p>Components of this group can be used to model the vehicle dynamics. The vehicle dynamics model has a modular design. If necessary, the individual components can be replaced by the user with their own models. The vehicle dynamics model consists of six components listed below:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Component</p></th> +<th class="head"><p>Short Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p><a class="reference internal" href="#components-steeringsystem"><span class="std std-ref">ActionSteeringSystem</span></a></p></td> +<td><p>The steering model transfers the driver’s input into the vehicle’s wheel angle</p></td> +</tr> +<tr class="row-odd"><td><p><a class="reference internal" href="#components-powertrain"><span class="std std-ref">ActionPowertrain</span></a></p></td> +<td><p>The powertrain model converts the accelerator pedal position into wheel drive torques, under consideration of the selected gear</p></td> +</tr> +<tr class="row-even"><td><p><a class="reference internal" href="#components-brakesystem"><span class="std std-ref">ActionBrakeSystem</span></a></p></td> +<td><p>The brake model converts the brake pedal position into wheel brake torques</p></td> +</tr> +<tr class="row-odd"><td><p><a class="reference internal" href="#components-tiremodel"><span class="std std-ref">DynamicsTireModel</span></a></p></td> +<td><p>The tire model converts the predetermined drive and braking torques of the tires into tire longitudinal and lateral forces, under consideration of the wheel angles</p></td> +</tr> +<tr class="row-even"><td><p><a class="reference internal" href="#components-motionmodel"><span class="std std-ref">DynamicsMotionModel</span></a></p></td> +<td><p>The motion model calculates the translational and rotational vehicle movement with the calculated tire forces</p></td> +</tr> +<tr class="row-odd"><td><p><a class="reference internal" href="#components-chassismodel"><span class="std std-ref">DynamicsChassis</span></a></p></td> +<td><p>The chassis model determines the dynamic wheel loads via the vehicle’s longitudinal and lateral acceleration</p></td> +</tr> +</tbody> +</table> +<p>The following figure gives an overview of the driving dynamics components and their signals:</p> +<img alt="|op| Vehicle dynamics overview" src="../../../_images/VehicleDynamicsOverview.svg" /><section id="actionsteeringsystem"> +<span id="components-steeringsystem"></span><h3>ActionSteeringSystem<a class="headerlink" href="#actionsteeringsystem" title="Link to this heading">ïƒ</a></h3> +<p>The steering model obtains the “SteeringRatio†property from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> and uses it to calculate the steering angle of the front wheels. +Both wheels are turned at the same angle. The following parameter can be used to set a static toe and the steering elasticity:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>StaticToe</p></td> +<td><p>VectorDouble</p></td> +<td><p>rad</p></td> +<td><p>Static toe of the wheels (A positive value corresponds to a toe-in; one static toe per axis)</p></td> +</tr> +<tr class="row-odd"><td><p>Elasticity</p></td> +<td><p>VectorDouble</p></td> +<td><p>rad/Nm</p></td> +<td><p>Steering Elasticity (one elasticity per axis)</p></td> +</tr> +<tr class="row-even"><td><p>Caster</p></td> +<td><p>VectorDouble</p></td> +<td><p>m</p></td> +<td><p>Overall Caster of steering system</p></td> +</tr> +</tbody> +</table> +</section> +<section id="actionpowertrain"> +<span id="components-powertrain"></span><h3>ActionPowertrain<a class="headerlink" href="#actionpowertrain" title="Link to this heading">ïƒ</a></h3> +<p>The powertrain model contains an engine model and a gear model. The type of the powertrain can be set using the following parameters:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>TypeDrivetrain</p></td> +<td><p>String</p></td> +<td></td> +<td><p>Type of drivetrain; A selection can be made between front-wheel drive (FWD), rear-wheel drive (RWD) and all-wheel drive (AWD)</p></td> +</tr> +<tr class="row-odd"><td><p>FrontRatioAWD</p></td> +<td><p>Double</p></td> +<td></td> +<td><p>Distribution of the drive torque to the front axle in the case of all-wheel drive (AWD); Range 0-1</p></td> +</tr> +</tbody> +</table> +<p>The wheel speed is converted into an engine speed [Hz] according to the axle ratio and the transmission ratio of the selected gear. +The axle ratio and gear ratios are obtained from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> (“AxleRatio†& “GearRatioâ€). The average value of the powered wheels is used for the determination of the engine speed.</p> +<div class="math"> +<p><img src="../../../_images/math/340d7e571b3feafaa7e510b6c7d1328b1f4c64ad.png" alt="\omega_{engine} = \omega_{wheels,avg} \cdot i_{axle} \cdot i_{gear,selected}"/></p> +</div><p>The maximum possible engine torque [Nm] is limited by the engine power [W] or the maximum engine torque [Nm]. +The engine power and the maximum engine torque are obtained from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> (“MaximumEnginePower†& “MaximumEngineTorqueâ€).</p> +<div class="math"> +<p><img src="../../../_images/math/bb9c6cf90a7cce5208d424db5de2b83f0ef1fddb.png" alt="M_{engine,max,current} = \begin{cases} + \frac{P_{engine,max}}{\omega_{engine}} & \text{ if } \frac{P_{engine,max}}{\omega_{engine}} < M_{engine,max} \\ + M_{engine,max} & \text{ if } \frac{P_{engine,max}}{\omega_{engine}} >= M_{engine,max} + \end{cases}"/></p> +</div><p>When 98% of the maximum speed of the motor is reached (“MaximumEngineSpeed†in the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a>), the engine torque is linearly reduced to 0.</p> +<p>The maximum engine torque is scaled via the accelerator pedal position (input). This value is calculated back to the total wheel drive torque via the gear ratio.</p> +<div class="math"> +<p><img src="../../../_images/math/1f81befb8ab4e6d3af9e6e11361477a156ea9836.png" alt="M_{wheels,current} = M_{engine,max,current} \cdot position_{accelerator pedal} \cdot i_{axle} \cdot i_{gear,selected}"/></p> +</div><p>The wheel total drive torque is evenly distributed to the wheels of an axle according to the definition of the drive type. +With all-wheel drive, the entire wheel drive torque is distributed statically over the defined ratio.</p> +</section> +<section id="actionbrakesystem"> +<span id="components-brakesystem"></span><h3>ActionBrakeSystem<a class="headerlink" href="#actionbrakesystem" title="Link to this heading">ïƒ</a></h3> +<p>The brake model is a linearized model. The brake pedal position is used as input. As output, the model returns the braking torques of the wheels as a vector. +The model considers a response time [ms] and linear factors [m/s³] for the increase and decrease of the braking force.The distribution of braking force between the front and rear axles can be defined statically.</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>FrontAxlePercentage</p></td> +<td><p>Double</p></td> +<td></td> +<td><p>Distribution of the brake torque to the front axle in the case of all-wheel drive (AWD); Range 0-1</p></td> +</tr> +<tr class="row-odd"><td><p>BrakeDecelerationInclineRate</p></td> +<td><p>Double</p></td> +<td><p>m/s³</p></td> +<td><p>Linear Rate of braking force increase</p></td> +</tr> +<tr class="row-even"><td><p>BrakeDecelerationDeclineRate</p></td> +<td><p>Double</p></td> +<td><p>m/s³</p></td> +<td><p>Linear Rate of braking force decrease</p></td> +</tr> +<tr class="row-odd"><td><p>BrakeResponseTimeMs</p></td> +<td><p>Double</p></td> +<td><p>ms</p></td> +<td><p>Brake response time</p></td> +</tr> +</tbody> +</table> +<p>The maximum braking force of the system is determined from the maximum possible deceleration and the mass of the vehicle and is scaled by the brake pedal position (Input). +The maximum possible deceleration and the vehicle mass are obtained from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> (“maxDeceleration†& “massâ€).</p> +<div class="math"> +<p><img src="../../../_images/math/bc08e6aac48aefa03313665a4a532f6a9c5ecd63.png" alt="F_{brake,max} = a_{deceleration,max} \cdot m_{vehicle} \cdot position_{brake pedal}"/></p> +</div><p>When the brake is applied, a deceleration is calculated after the response time has elapsed. Then the braking force is built up linearly until the maximum or requested braking force has been reached.</p> +<div class="math"> +<p><img src="../../../_images/math/f1aece6474c2a5f6a6db0e37b59055fb90810d92.png" alt="F_{brake,current} = rate_{incline} \cdot (t_{brake} - t_{response})"/></p> +</div><p>When the brake is released, the braking force is dissipated with the decline rate until it has dropped to zero. After that, the response time builds up again. +The braking force is divided among the axles according to the parameter “FrontAxlePercentageâ€. Another input allows you to request a prefill that reduces the response time without braking</p> +</section> +<section id="dynamicschassis"> +<span id="components-chassismodel"></span><h3>DynamicsChassis<a class="headerlink" href="#dynamicschassis" title="Link to this heading">ïƒ</a></h3> +<p>The chassis model determines the vertical forces of the four wheels from the longitudinal and lateral acceleration of the vehicle. Constant spring and damper rates are taken into account, which can be defined by the following parameters per axis:</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>SpringCoefficient</p></td> +<td><p>VectorDouble</p></td> +<td><p>N/m</p></td> +<td><p>Constant spring coefficient for each axis</p></td> +</tr> +<tr class="row-odd"><td><p>DamperCoefficient</p></td> +<td><p>VectorDouble</p></td> +<td><p>Ns/m</p></td> +<td><p>Constant damper coefficient for each axis</p></td> +</tr> +</tbody> +</table> +</section> +<section id="dynamicstiremodel"> +<span id="components-tiremodel"></span><h3>DynamicsTireModel<a class="headerlink" href="#dynamicstiremodel" title="Link to this heading">ïƒ</a></h3> +<p>The tire model is freely configurable and includes a degressive behaviour. The tire forces are modeled according to Rill using the TMEasy model. The following parameters can be set for the tire model per axis :</p> +<table class="tight-table docutils align-default"> +<thead> +<tr class="row-odd"><th class="head"><p>Attribute</p></th> +<th class="head"><p>Type</p></th> +<th class="head"><p>Unit</p></th> +<th class="head"><p>Description</p></th> +</tr> +</thead> +<tbody> +<tr class="row-even"><td><p>MuTireMaxXFRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Normalized scaling factor for maximum longitudinal force at reference vertical force</p></td> +</tr> +<tr class="row-odd"><td><p>MuTireMaxX2FRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Normalized scaling factor for maximum longitudinal force at double reference vertical force</p></td> +</tr> +<tr class="row-even"><td><p>MuTireSlideXFRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Normalized scaling factor for sliding longitudinal force at reference vertical force</p></td> +</tr> +<tr class="row-odd"><td><p>MuTireSlideX2FRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Normalized scaling factor for sliding longitudinal force at double reference vertical force</p></td> +</tr> +<tr class="row-even"><td><p>SlipTireMaxXFRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Longitudinal slip at maximum longitudinal force at reference vertical force</p></td> +</tr> +<tr class="row-odd"><td><p>SlipTireMaxX2FRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Longitudinal slip at maximum longitudinal force at double reference vertical force</p></td> +</tr> +<tr class="row-even"><td><p>SlipTireSlideXFRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Longitudinal slip at sliding longitudinal force at reference vertical force</p></td> +</tr> +<tr class="row-odd"><td><p>SlipTireSlideX2FRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Longitudinal slip at sliding longitudinal force at double reference vertical force</p></td> +</tr> +<tr class="row-even"><td><p>F0pXFRef</p></td> +<td><p>VectorDouble</p></td> +<td><p>N</p></td> +<td><p>Initial slope of longitudinal force at reference force</p></td> +</tr> +<tr class="row-odd"><td><p>F0pX2FRef</p></td> +<td><p>VectorDouble</p></td> +<td><p>N</p></td> +<td><p>Initial slope of longitudinal force at double reference force</p></td> +</tr> +<tr class="row-even"><td><p>MuTireMaxYFRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Normalized scaling factor for maximum lateral force at reference vertical force</p></td> +</tr> +<tr class="row-odd"><td><p>MuTireMaxY2FRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Normalized scaling factor for maximum lateral force at double reference vertical force</p></td> +</tr> +<tr class="row-even"><td><p>MuTireSlideYFRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Normalized scaling factor for sliding lateral force at reference vertical force</p></td> +</tr> +<tr class="row-odd"><td><p>MuTireSlideY2FRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Normalized scaling factor for sliding lateral force at double reference vertical force</p></td> +</tr> +<tr class="row-even"><td><p>SlipTireMaxYFRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Lateral slip at maximum lateral force at reference vertical force</p></td> +</tr> +<tr class="row-odd"><td><p>SlipTireMaxY2FRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Lateral slip at maximum lateral force at double reference vertical force</p></td> +</tr> +<tr class="row-even"><td><p>SlipTireSlideYFRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Lateral slip at sliding lateral force at reference vertical force</p></td> +</tr> +<tr class="row-odd"><td><p>SlipTireSlideY2FRef</p></td> +<td><p>VectorDouble</p></td> +<td></td> +<td><p>Lateral slip at sliding lateral force at double reference vertical force</p></td> +</tr> +<tr class="row-even"><td><p>F0pYFRef</p></td> +<td><p>VectorDouble</p></td> +<td><p>N</p></td> +<td><p>Initial slope of lateral force at reference force</p></td> +</tr> +<tr class="row-odd"><td><p>F0pY2FRef</p></td> +<td><p>VectorDouble</p></td> +<td><p>N</p></td> +<td><p>Initial slope of lateral force at double reference force</p></td> +</tr> +<tr class="row-even"><td><p>FRef</p></td> +<td><p>VectorDouble</p></td> +<td><p>N</p></td> +<td><p>Vertical reference force for the tire parameters</p></td> +</tr> +<tr class="row-odd"><td><p>FRefNormalized</p></td> +<td><p>VectorBool</p></td> +<td></td> +<td><p>Should the reference force be scaled with the static vertical tire force?</p></td> +</tr> +<tr class="row-even"><td><p>Inertia</p></td> +<td><p>VectorDouble</p></td> +<td><p>kgm²</p></td> +<td><p>Inertia of tire</p></td> +</tr> +<tr class="row-odd"><td><p>PneumaticTrail</p></td> +<td><p>VectorDouble</p></td> +<td><p>m</p></td> +<td><p>Pneumatic trail of tire</p></td> +</tr> +</tbody> +</table> +<p>The normalized factors refer to the reference vertical force or to the double reference vertical force +The input variables used by the model are tire drive and braking torques as well as the wheel angles and vertical wheel forces. All data is provided as vectors. +The model determines tire forces in the longitudinal and lateral directions as well as the wheel self aligning torques. The wheel self aligning torque is formed from the product of the tire side force and the pneumatic trail. +A linear interpolation is performed between the values for the reference force and the double reference force. If no degressive tire behavior is desired, the parameters for the double reference force must be set identically to the values for the reference force.</p> +<p>All forces are scaled with the coefficient of friction from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> (“FrictionCoefficientâ€).</p> +<p>All further information about the model can be found in the following sources:</p> +<p><a class="reference external" href="https://www.tmeasy.de/">https://www.tmeasy.de/</a></p> +<p>Rill, Georg. (2013). TMeasy – A Handling Tire Model based on a three-dimensional slip approach.</p> +</section> +<section id="dynamicsmotionmodel"> +<span id="components-motionmodel"></span><h3>DynamicsMotionModel<a class="headerlink" href="#dynamicsmotionmodel" title="Link to this heading">ïƒ</a></h3> +<p>The motion model converts the tire forces (input) into a translational and rotational movement of the vehicle. The air resistance of the vehicle is taken into account. For the dynamic calculation, the center of gravity position is taken from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> (“XPositionCOGâ€,â€YPositionCOGâ€), +which indicates the distance of the center of gravity to the center of the rear axle. If this data is not given, the center of gravity is positioned on half wheelbase. For air resistance, the properties “AirDragCoefficient†& “FrontSurface†from the <a class="reference internal" href="../../configs/scenario.html#scenario-vehiclemodels"><span class="std std-ref">VehicleCatalog</span></a> are used.</p> +<p>For the equations of motion, see relevant vehicle dynamics books such as:</p> +<p>Kücükay, Ferit (2022), “Grundlagen der Fahrzeugtechnikâ€, page 1067 ff</p> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="spawner.html" class="btn btn-neutral float-left" title="Spawner" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../../../advanced_topics/20_simulator_advanced.html" class="btn btn-neutral float-right" title="Simulator" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/tutorials/10_scenario_simulation.html b/content/html/user_guide/tutorials/10_scenario_simulation.html index 10f9fa485584982883a2867a8e4595944a2f6e21..7e647396f0f2517e300ad0c76f28c481679f3529 100644 --- a/content/html/user_guide/tutorials/10_scenario_simulation.html +++ b/content/html/user_guide/tutorials/10_scenario_simulation.html @@ -1,278 +1,276 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Scenario-based simulation — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="PCM Simulation" href="20_pcm_simulation.html" /> - <link rel="prev" title="Tutorials" href="../20_tutorials.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../20_tutorials.html">Tutorials</a><ul class="current"> -<li class="toctree-l2 current"><a class="current reference internal" href="#">Scenario-based simulation</a></li> -<li class="toctree-l2"><a class="reference internal" href="20_pcm_simulation.html">PCM Simulation</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../20_tutorials.html">Tutorials</a></li> - <li class="breadcrumb-item active">Scenario-based simulation</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/user_guide/tutorials/10_scenario_simulation.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="scenario-based-simulation"> -<span id="id1"></span><h1>Scenario-based simulation<a class="headerlink" href="#scenario-based-simulation" title="Link to this heading">ïƒ</a></h1> -<p>This guide describes how to execute an exemplary simulation with openPASS.</p> -<p>The simulation runs a scenario which is set up for triggering an AEB (Autonomous Emergency Break) system. -The scenario contains two agents: The ego agent and a scenario agent. -The ego vehicle is equipped with an AEB system (the system under test). -The scenario agent performs a cut-in and triggers as a result the AEB system of the ego agent. -To force this exact maneuver, the scenario agent is set up to follow a predefined trajectory.</p> -<div class="admonition-todo admonition" id="id2"> -<p class="admonition-title">Todo</p> -<p>Update this paragraph for the new react GUI.</p> -</div> -<p>The GUI is not yet capable of configuring and executing a scenario based simulation as this is currently work in progress. -Thus, an existing simulation configuration is used and the simulation is started manually.</p> -<p><strong>Step-by-step instructions</strong></p> -<ol class="arabic"> -<li><p>Navigate into the <strong>openPASS</strong> install directory (e.g. <code class="docutils literal notranslate"><span class="pre">C:\openPASS\bin\core</span></code>)</p></li> -<li><p>The install directory should look like the following</p> -<blockquote> -<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span>openPASS-Install-Dir -└── configs <-- this directory will be created in the next step -└── examples <-- if non existent, it can be copied from the openPASS checkout repository (see note) -│ ├── Common -│ └── Configurations -└── doc -└── examples -└── lib -│ ... -└── opSimulation.exe -</pre></div> -</div> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The folder <code class="docutils literal notranslate"><span class="pre">examples</span></code> might not be existent right after the installation. In this case one can find it in the checkout repository of openPASS under <code class="docutils literal notranslate"><span class="pre">deps/os/sim/contrib</span></code>. From there one can copy it into the installation folder.</p> -</div> -</div></blockquote> -</li> -<li><p>Create a new folder named “configs†for the configuration files within the <strong>openPASS</strong> install directory</p></li> -<li><p>Copy configuration files</p> -<blockquote> -<div><p>Simulations for <strong>openPASS</strong> are fully configured through configuration files. This is where the user defines the traffic scenario to be simulated by openPASS. -Examples for <strong>openPASS</strong> configuration files are located in the directory <code class="docutils literal notranslate"><span class="pre">examples</span></code> and are divided into two groups: <em>default configurations</em> and <em>specific configurations</em>.</p> -<ol class="loweralpha"> -<li><p>The <em>default configuration</em> files located under <code class="docutils literal notranslate"><span class="pre">examples/Common</span></code> contain the basis for any simulation. They represent the minimum input required, therefore:</p> -<blockquote> -<div><ol class="lowerroman simple"> -<li><p>Copy all files from the directory <code class="docutils literal notranslate"><span class="pre">examples/Common</span></code> to the previously created folder <code class="docutils literal notranslate"><span class="pre">configs</span></code>.</p></li> -</ol> -</div></blockquote> -</li> -<li><p>The <em>specific configuration</em> files located under <code class="docutils literal notranslate"><span class="pre">examples/Configurations</span></code> complement the default configuration files. Examples are provided for different simulations.</p> -<blockquote> -<div><ol class="lowerroman simple"> -<li><p>Ensure all files from directory <code class="docutils literal notranslate"><span class="pre">examples/Common</span></code> have been copied to <code class="docutils literal notranslate"><span class="pre">configs</span></code> (this has been done in the previous step). Repeat this step every time another simulation is chosen.</p></li> -<li><p>Navigate to the directory <code class="docutils literal notranslate"><span class="pre">examples/Configurations</span></code>. Here, all folders contain special pre-configured simulations (which either can be used as demo cases or as end-to-end test cases primarily used for development).</p></li> -<li><p>Copy all files from the directory specifying the specific scenario you want to simulate (in our case all files from directory <code class="docutils literal notranslate"><span class="pre">examples/Configurations/AEB_CutIn</span></code>) to the directory <code class="docutils literal notranslate"><span class="pre">configs</span></code>. Overwrite existing files when prompted.</p></li> -</ol> -</div></blockquote> -</li> -</ol> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>A detailed description of the various configuration files can be found under see <a class="reference internal" href="../30_configs_in_depth.html#configs-in-depth"><span class="std std-ref">Configs in Depth</span></a>.</p> -</div> -</div></blockquote> -</li> -<li><p>Learn how to modify configuration files</p> -<blockquote> -<div><p>If one wants to edit the configurations (e.g. experiment set-up or parameters of specific scenario) placed under <code class="docutils literal notranslate"><span class="pre">configs</span></code>, one can do so by changing any of the following files:</p> -<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>configs -├── PedestrianModelsCatalog.xosc -├── ProfilesCatalog.xml -├── Scenario.xosc -├── SceneryConfiguration.xodr -├── simulationConfig.xml -├── systemConfigBlueprint.xml -└── VehicleModelsCatalog.xosc -</pre></div> -</div> -</div></blockquote> -<p>As an example, modifications of the configuration files that describe an AEB cut-in scenario are given. -The following list describes some relevant adjustments that may be useful.</p> -<blockquote> -<div><ol class="loweralpha"> -<li><p><code class="docutils literal notranslate"><span class="pre">ProfilesCatalog.xml</span></code>:</p> -<blockquote> -<div><ul class="simple"> -<li><p>The AEB system and sensor parameters, e.g. „TTC“, „DetectionRange“, can be adjusted.</p></li> -<li><p>The spawner parameters, such as the traffic volume or the velocity of the surrounding traffic, can be modified in the existing spawner profiles.</p></li> -</ul> -</div></blockquote> -</li> -<li><p><code class="docutils literal notranslate"><span class="pre">Scenario.xosc</span></code>:</p> -<blockquote> -<div><ul class="simple"> -<li><p>The scenario set-up contains the initial positions und velocities of the ego and scenario agent.</p></li> -<li><p>The trajectory that defines the cut-in maneuver of the scenario agent is defined and editable here.</p></li> -<li><p>The overall simulation time, which determines the end condition of the simulation in seconds, can be adjusted.</p></li> -</ul> -</div></blockquote> -</li> -<li><p><code class="docutils literal notranslate"><span class="pre">simulationConfig.xml</span></code>:</p> -<blockquote> -<div><ul class="simple"> -<li><p>The number of invocations can be changed in case more than one run is desired to be simulated. This will incorporate stochastic variation (i.e. initial constellation of surrounding traffic)</p></li> -<li><p>If surrounding traffic is not desired in the experiment, the spawner libraries “SpawnPointPreRunCommon†and “SpawnPointRuntimeCommon†can be deactivated by removing the corresponding sections. Only the “SpawnPointScenario†is mandatory to spawn the ego and scenario agent. More information on the functionality of spawners can be found in <a class="reference internal" href="../sim_user_guide/components/spawner.html#components-spawner"><span class="std std-ref">Spawner</span></a>.</p></li> -<li><p>The output format can be modified by setting the parameter “LoggingCyclicsToCsv†to true.</p></li> -</ul> -</div></blockquote> -</li> -</ol> -</div></blockquote> -</li> -<li><p>Start the simulation by double-clicking <code class="docutils literal notranslate"><span class="pre">opSimulation.exe</span></code> or from the console by calling the executable.</p></li> -<li><p>Once the simulation is successfully completed, the following results can be found in the directory <code class="docutils literal notranslate"><span class="pre">results</span></code>:</p> -<blockquote> -<div><ul class="simple"> -<li><p><code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>: Contains general information about the experiment and an overview on all agents from the simulation. Further, an event log is contained. If the csv-output is set to false in the <code class="docutils literal notranslate"><span class="pre">simulationConfig.xml</span></code>, the <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code> will also include the „cyclics†(state in each time step) of the simulation.</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">Cyclics_Run_xxx.csv</span></code>: In case the csv-output is activated, the „cyclics†of each run in the simulation are logged to a separated csv-file. This file is missing, if “cyclics†are written directly to the <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code> (i.e. when “LoggingCyclicsToCsv†is set to false).</p></li> -<li><p><code class="docutils literal notranslate"><span class="pre">Repository_Run_xxx.csv</span></code>: Overview of the agents and objects from the simulation as well as some details on scenery components like lane markings, guard rails, etc.</p></li> -</ul> -<div class="admonition note"> -<p class="admonition-title">Note</p> -<p>The outputs do not contain the <code class="docutils literal notranslate"><span class="pre">SceneryConfiguration.xodr</span></code>, i.e. the static environment given in the scenery file in configs. In order to make the world around the simulation results available, we need to copy <code class="docutils literal notranslate"><span class="pre">SceneryConfiguration.xodr</span></code> file from <code class="docutils literal notranslate"><span class="pre">configs</span></code> to <code class="docutils literal notranslate"><span class="pre">results</span></code>.</p> -</div> -</div></blockquote> -</li> -</ol> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../20_tutorials.html" class="btn btn-neutral float-left" title="Tutorials" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="20_pcm_simulation.html" class="btn btn-neutral float-right" title="PCM Simulation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Scenario-based simulation — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="PCM Simulation" href="20_pcm_simulation.html" /> + <link rel="prev" title="Tutorials" href="../20_tutorials.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../20_tutorials.html">Tutorials</a><ul class="current"> +<li class="toctree-l2 current"><a class="current reference internal" href="#">Scenario-based simulation</a></li> +<li class="toctree-l2"><a class="reference internal" href="20_pcm_simulation.html">PCM Simulation</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../20_tutorials.html">Tutorials</a></li> + <li class="breadcrumb-item active">Scenario-based simulation</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/user_guide/tutorials/10_scenario_simulation.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="scenario-based-simulation"> +<span id="id1"></span><h1>Scenario-based simulation<a class="headerlink" href="#scenario-based-simulation" title="Link to this heading">ïƒ</a></h1> +<p>This guide describes how to execute an exemplary simulation with openPASS.</p> +<p>The simulation runs a scenario which is set up for triggering an AEB (Autonomous Emergency Break) system. +The scenario contains two agents: The ego agent and a scenario agent. +The ego vehicle is equipped with an AEB system (the system under test). +The scenario agent performs a cut-in and triggers as a result the AEB system of the ego agent. +To force this exact maneuver, the scenario agent is set up to follow a predefined trajectory.</p> +<p>The opGUI is not yet capable of configuring and executing a scenario based simulation as this is currently work in progress. +Thus, an existing simulation configuration is used and the simulation is started manually.</p> +<p><strong>Step-by-step instructions</strong></p> +<ol class="arabic"> +<li><p>Navigate into the <strong>openPASS</strong> install directory (e.g. <code class="docutils literal notranslate"><span class="pre">C:\openPASS\bin\core</span></code>)</p></li> +<li><p>The install directory should look like the following</p> +<blockquote> +<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span>openPASS-Install-Dir +└── configs <-- this directory will be created in the next step +└── examples <-- if non existent, it can be copied from the openPASS checkout repository (see note) +│ ├── Common +│ └── Configurations +└── doc +└── examples +└── lib +│ ... +└── opSimulation.exe +</pre></div> +</div> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The folder <code class="docutils literal notranslate"><span class="pre">examples</span></code> might not be existent right after the installation. In this case one can find it in the checkout repository of openPASS under <code class="docutils literal notranslate"><span class="pre">deps/os/sim/contrib</span></code>. From there one can copy it into the installation folder.</p> +</div> +</div></blockquote> +</li> +<li><p>Create a new folder named “configs†for the configuration files within the <strong>openPASS</strong> install directory</p></li> +<li><p>Copy configuration files</p> +<blockquote> +<div><p>Simulations for <strong>openPASS</strong> are fully configured through configuration files. This is where the user defines the traffic scenario to be simulated by openPASS. +Examples for <strong>openPASS</strong> configuration files are located in the directory <code class="docutils literal notranslate"><span class="pre">examples</span></code> and are divided into two groups: <em>default configurations</em> and <em>specific configurations</em>.</p> +<ol class="loweralpha"> +<li><p>The <em>default configuration</em> files located under <code class="docutils literal notranslate"><span class="pre">examples/Common</span></code> contain the basis for any simulation. They represent the minimum input required, therefore:</p> +<blockquote> +<div><ol class="lowerroman simple"> +<li><p>Copy all files from the directory <code class="docutils literal notranslate"><span class="pre">examples/Common</span></code> to the previously created folder <code class="docutils literal notranslate"><span class="pre">configs</span></code>.</p></li> +</ol> +</div></blockquote> +</li> +<li><p>The <em>specific configuration</em> files located under <code class="docutils literal notranslate"><span class="pre">examples/Configurations</span></code> complement the default configuration files. Examples are provided for different simulations.</p> +<blockquote> +<div><ol class="lowerroman simple"> +<li><p>Ensure all files from directory <code class="docutils literal notranslate"><span class="pre">examples/Common</span></code> have been copied to <code class="docutils literal notranslate"><span class="pre">configs</span></code> (this has been done in the previous step). Repeat this step every time another simulation is chosen.</p></li> +<li><p>Navigate to the directory <code class="docutils literal notranslate"><span class="pre">examples/Configurations</span></code>. Here, all folders contain special pre-configured simulations (which either can be used as demo cases or as end-to-end test cases primarily used for development).</p></li> +<li><p>Copy all files from the directory specifying the specific scenario you want to simulate (in our case all files from directory <code class="docutils literal notranslate"><span class="pre">examples/Configurations/AEB_CutIn</span></code>) to the directory <code class="docutils literal notranslate"><span class="pre">configs</span></code>. Overwrite existing files when prompted. The catalogs for vehicles or pedestrian parameters must be stored in a child folder <code class="docutils literal notranslate"><span class="pre">Vehicles</span></code>.</p></li> +</ol> +</div></blockquote> +</li> +</ol> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>A detailed description of the various configuration files can be found under see <a class="reference internal" href="../30_configs_in_depth.html#configs-in-depth"><span class="std std-ref">Configs in Depth</span></a>.</p> +</div> +</div></blockquote> +</li> +<li><p>Learn how to modify configuration files</p> +<blockquote> +<div><p>If one wants to edit the configurations (e.g. experiment set-up or parameters of specific scenario) placed under <code class="docutils literal notranslate"><span class="pre">configs</span></code>, one can do so by changing any of the following files:</p> +<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>configs +├── Vehicles +│ ├── VehicleModelsCatalog.xosc +│ └── PedestrianModelsCatalog.xosc +├── ProfilesCatalog.xml +├── Scenario.xosc +├── SceneryConfiguration.xodr +├── simulationConfig.xml +└── systemConfigBlueprint.xml +</pre></div> +</div> +</div></blockquote> +<p>As an example, modifications of the configuration files that describe an AEB cut-in scenario are given. +The following list describes some relevant adjustments that may be useful.</p> +<blockquote> +<div><ol class="loweralpha"> +<li><p><code class="docutils literal notranslate"><span class="pre">ProfilesCatalog.xml</span></code>:</p> +<blockquote> +<div><ul class="simple"> +<li><p>The AEB system and sensor parameters, e.g. „TTC“, „DetectionRange“, can be adjusted.</p></li> +<li><p>The spawner parameters, such as the traffic volume or the velocity of the surrounding traffic, can be modified in the existing spawner profiles.</p></li> +</ul> +</div></blockquote> +</li> +<li><p><code class="docutils literal notranslate"><span class="pre">Scenario.xosc</span></code>:</p> +<blockquote> +<div><ul class="simple"> +<li><p>The scenario set-up contains the initial positions und velocities of the ego and scenario agent.</p></li> +<li><p>The trajectory that defines the cut-in maneuver of the scenario agent is defined and editable here.</p></li> +<li><p>The overall simulation time, which determines the end condition of the simulation in seconds, can be adjusted.</p></li> +</ul> +</div></blockquote> +</li> +<li><p><code class="docutils literal notranslate"><span class="pre">simulationConfig.xml</span></code>:</p> +<blockquote> +<div><ul class="simple"> +<li><p>The number of invocations can be changed in case more than one run is desired to be simulated. This will incorporate stochastic variation (i.e. initial constellation of surrounding traffic)</p></li> +<li><p>If surrounding traffic is not desired in the experiment, the spawner libraries “SpawnPointPreRunCommon†and “SpawnPointRuntimeCommon†can be deactivated by removing the corresponding sections. Only the “SpawnPointScenario†is mandatory to spawn the ego and scenario agent. More information on the functionality of spawners can be found in <a class="reference internal" href="../sim_user_guide/components/spawner.html#components-spawner"><span class="std std-ref">Spawner</span></a>.</p></li> +<li><p>The output format can be modified by setting the parameter “LoggingCyclicsToCsv†to true.</p></li> +</ul> +</div></blockquote> +</li> +</ol> +</div></blockquote> +</li> +<li><p>Start the simulation by double-clicking <code class="docutils literal notranslate"><span class="pre">opSimulation.exe</span></code> or from the console by calling the executable.</p></li> +<li><p>Once the simulation is successfully completed, the following results can be found in the directory <code class="docutils literal notranslate"><span class="pre">results</span></code>:</p> +<blockquote> +<div><ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code>: Contains general information about the experiment and an overview on all agents from the simulation. Further, an event log is contained. If the csv-output is set to false in the <code class="docutils literal notranslate"><span class="pre">simulationConfig.xml</span></code>, the <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code> will also include the „cyclics†(state in each time step) of the simulation.</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">Cyclics_Run_xxx.csv</span></code>: In case the csv-output is activated, the „cyclics†of each run in the simulation are logged to a separated csv-file. This file is missing, if “cyclics†are written directly to the <code class="docutils literal notranslate"><span class="pre">simulationOutput.xml</span></code> (i.e. when “LoggingCyclicsToCsv†is set to false).</p></li> +<li><p><code class="docutils literal notranslate"><span class="pre">Repository_Run_xxx.csv</span></code>: Overview of the agents and objects from the simulation as well as some details on scenery components like lane markings, guard rails, etc.</p></li> +</ul> +<div class="admonition note"> +<p class="admonition-title">Note</p> +<p>The outputs do not contain the <code class="docutils literal notranslate"><span class="pre">SceneryConfiguration.xodr</span></code>, i.e. the static environment given in the scenery file in configs. In order to make the world around the simulation results available, we need to copy <code class="docutils literal notranslate"><span class="pre">SceneryConfiguration.xodr</span></code> file from <code class="docutils literal notranslate"><span class="pre">configs</span></code> to <code class="docutils literal notranslate"><span class="pre">results</span></code>.</p> +</div> +</div></blockquote> +</li> +</ol> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../20_tutorials.html" class="btn btn-neutral float-left" title="Tutorials" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="20_pcm_simulation.html" class="btn btn-neutral float-right" title="PCM Simulation" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file diff --git a/content/html/user_guide/tutorials/20_pcm_simulation.html b/content/html/user_guide/tutorials/20_pcm_simulation.html index b1a3f542a5175cee3c740264cda8fa0369832b01..7d32fe4207e945b9cf97035f1c7c4b35bf21b91f 100644 --- a/content/html/user_guide/tutorials/20_pcm_simulation.html +++ b/content/html/user_guide/tutorials/20_pcm_simulation.html @@ -1,156 +1,157 @@ -<!DOCTYPE html> -<html class="writer-html5" lang="en" > -<head> - <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> - - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>PCM Simulation — openPASS Documentation</title> - <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" /> - <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> - <link rel="shortcut icon" href="../../_static/openPASS.ico"/> - <!--[if lt IE 9]> - <script src="../../_static/js/html5shiv.min.js"></script> - <![endif]--> - - <script src="../../_static/jquery.js?v=5d32c60e"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> - <script src="../../_static/documentation_options.js?v=afa6e5cd"></script> - <script src="../../_static/doctools.js?v=888ff710"></script> - <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> - <script src="../../_static/js/theme.js"></script> - <link rel="index" title="Index" href="../../genindex.html" /> - <link rel="search" title="Search" href="../../search.html" /> - <link rel="next" title="Configs in Depth" href="../30_configs_in_depth.html" /> - <link rel="prev" title="Scenario-based simulation" href="10_scenario_simulation.html" /> -</head> - -<body class="wy-body-for-nav"> - <div class="wy-grid-for-nav"> - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search" > - - - - <a href="../../index.html" class="icon icon-home"> - openPASS - <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> - </a> - <div class="version"> - 1.1.0 - </div> -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> - <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> -<ul class="current"> -<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> -<li class="toctree-l1 current"><a class="reference internal" href="../20_tutorials.html">Tutorials</a><ul class="current"> -<li class="toctree-l2"><a class="reference internal" href="10_scenario_simulation.html">Scenario-based simulation</a></li> -<li class="toctree-l2 current"><a class="current reference internal" href="#">PCM Simulation</a></li> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> -<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> -</ul> -<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> -<ul> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> -<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> -</ul> - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="../../index.html">openPASS</a> - </nav> - - <div class="wy-nav-content"> - <div class="rst-content"> - <div role="navigation" aria-label="Page navigation"> - <ul class="wy-breadcrumbs"> - <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> - <li class="breadcrumb-item"><a href="../20_tutorials.html">Tutorials</a></li> - <li class="breadcrumb-item active">PCM Simulation</li> - <li class="wy-breadcrumbs-aside"> - <a href="../../_sources/user_guide/tutorials/20_pcm_simulation.rst.txt" rel="nofollow"> View page source</a> - </li> - </ul> - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <section id="pcm-simulation"> -<span id="pcm-simulation-guide"></span><h1>PCM Simulation<a class="headerlink" href="#pcm-simulation" title="Link to this heading">ïƒ</a></h1> -<div class="admonition-todo admonition" id="id1"> -<p class="admonition-title">Todo</p> -<p>Write tutorial for PCM simulation</p> -</div> -</section> - - - </div> - </div> - <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="10_scenario_simulation.html" class="btn btn-neutral float-left" title="Scenario-based simulation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="../30_configs_in_depth.html" class="btn btn-neutral float-right" title="Configs in Depth" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> - </div> - - <hr/> - - <div role="contentinfo"> - <p>© Copyright 2024 openPASS Working Group.</p> - </div> - - Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a - <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> - provided by <a href="https://readthedocs.org">Read the Docs</a>. - - -</footer> - </div> - </div> - </section> - </div> - <script> - jQuery(function () { - SphinxRtdTheme.Navigation.enable(true); - }); - </script> - -</body> +<!DOCTYPE html> +<html class="writer-html5" lang="en" data-content_root="../../"> +<head> + <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>PCM Simulation — openPASS Documentation</title> + <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=b86133f3" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" /> + <link rel="stylesheet" type="text/css" href="../../_static/css/custom.css?v=4ad39fc2" /> + + + <link rel="shortcut icon" href="../../_static/openPASS.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=6efca38a"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> + <link rel="next" title="Configs in Depth" href="../30_configs_in_depth.html" /> + <link rel="prev" title="Scenario-based simulation" href="10_scenario_simulation.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + + + <a href="../../index.html" class="icon icon-home"> + openPASS + <img src="../../_static/openPASS.png" class="logo" alt="Logo"/> + </a> + <div class="version"> + 1.2.0 + </div> +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Installation Guide</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/10_getting_started.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/15_system_requirements.html">System Requirements</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/20_install_prerequisites.html">Installing Prerequisites</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/30_install_openpass.html">Installing openPASS</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/50_further_guidance.html">Further Guidance</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../installation_guide/60_conan.html">Building with Conan</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">User Guides</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../10_overview.html">Overview</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../20_tutorials.html">Tutorials</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="10_scenario_simulation.html">Scenario-based simulation</a></li> +<li class="toctree-l2 current"><a class="current reference internal" href="#">PCM Simulation</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../30_configs_in_depth.html">Configs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../40_outputs_in_depth.html">Outputs in Depth</a></li> +<li class="toctree-l1"><a class="reference internal" href="../50_scenario_simulation.html">Simulator</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Advanced topics</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Developer Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/10_ide_support.html">IDE Support</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/20_documentation.html">Documentation Concept</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../developer_information/30_coding_conventions.html">Coding Guidelines</a></li> +</ul> +<p class="caption" role="heading"><span class="caption-text">Other Information</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/10_external_dependencies.html">External Dependencies</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/20_glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/30_gui_plugins.html">GUI Plugins</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../other_information/40_license.html">License</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">openPASS</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../20_tutorials.html">Tutorials</a></li> + <li class="breadcrumb-item active">PCM Simulation</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/user_guide/tutorials/20_pcm_simulation.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="pcm-simulation"> +<span id="pcm-simulation-guide"></span><h1>PCM Simulation<a class="headerlink" href="#pcm-simulation" title="Link to this heading">ïƒ</a></h1> +<div class="admonition-todo admonition" id="id1"> +<p class="admonition-title">Todo</p> +<p>Include link and explaination to opGUI documentation how to run PCM simulations</p> +</div> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="10_scenario_simulation.html" class="btn btn-neutral float-left" title="Scenario-based simulation" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../30_configs_in_depth.html" class="btn btn-neutral float-right" title="Configs in Depth" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2025 openPASS Working Group.</p> + </div> + + Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a + <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> + provided by <a href="https://readthedocs.org">Read the Docs</a>. + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> </html> \ No newline at end of file